Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
ansible
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
ansible
Commits
48d62fd9
Commit
48d62fd9
authored
May 14, 2015
by
James Cammarata
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Cleaning up VariableManager tests (v2)
parent
a0509cda
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
33 additions
and
17 deletions
+33
-17
lib/ansible/vars/__init__.py
+5
-4
test/units/vars/test_variable_manager.py
+28
-13
No files found.
lib/ansible/vars/__init__.py
View file @
48d62fd9
...
...
@@ -72,7 +72,8 @@ class VariableManager:
''' ensures a clean copy of the extra_vars are made '''
return
self
.
_extra_vars
.
copy
()
def
set_extra_vars
(
self
,
value
):
@extra_vars.setter
def
extra_vars
(
self
,
value
):
''' ensures a clean copy of the extra_vars are used to set the value '''
assert
isinstance
(
value
,
MutableMapping
)
self
.
_extra_vars
=
value
.
copy
()
...
...
@@ -123,7 +124,7 @@ class VariableManager:
return
result
def
get_vars
(
self
,
loader
,
play
=
None
,
host
=
None
,
task
=
None
):
def
get_vars
(
self
,
loader
,
play
=
None
,
host
=
None
,
task
=
None
,
use_cache
=
True
):
'''
Returns the variables, with optional "context" given via the parameters
for the play, host, and task (which could possibly result in different
...
...
@@ -145,7 +146,7 @@ class VariableManager:
debug
(
"in VariableManager get_vars()"
)
cache_entry
=
self
.
_get_cache_entry
(
play
=
play
,
host
=
host
,
task
=
task
)
if
cache_entry
in
CACHED_VARS
:
if
cache_entry
in
CACHED_VARS
and
use_cache
:
debug
(
"vars are cached, returning them now"
)
return
CACHED_VARS
[
cache_entry
]
...
...
@@ -229,7 +230,7 @@ class VariableManager:
# the 'omit' value alows params to be left out if the variable they are based on is undefined
all_vars
[
'omit'
]
=
self
.
_omit_token
CACHED_VARS
[
cache_entry
]
=
all_vars
#
CACHED_VARS[cache_entry] = all_vars
debug
(
"done with get_vars()"
)
return
all_vars
...
...
test/units/vars/test_variable_manager.py
View file @
48d62fd9
...
...
@@ -38,7 +38,11 @@ class TestVariableManager(unittest.TestCase):
fake_loader
=
DictDataLoader
({})
v
=
VariableManager
()
self
.
assertEqual
(
v
.
get_vars
(
loader
=
fake_loader
),
dict
())
vars
=
v
.
get_vars
(
loader
=
fake_loader
,
use_cache
=
False
)
if
'omit'
in
vars
:
del
vars
[
'omit'
]
self
.
assertEqual
(
vars
,
dict
())
self
.
assertEqual
(
v
.
_merge_dicts
(
...
...
@@ -59,11 +63,14 @@ class TestVariableManager(unittest.TestCase):
extra_vars
=
dict
(
a
=
1
,
b
=
2
,
c
=
3
)
v
=
VariableManager
()
v
.
set_extra_vars
(
extra_vars
)
v
.
extra_vars
=
extra_vars
vars
=
v
.
get_vars
(
loader
=
fake_loader
,
use_cache
=
False
)
for
(
key
,
val
)
in
extra_vars
.
iteritems
():
self
.
assertEqual
(
v
.
get_vars
(
loader
=
fake_loader
)
.
get
(
key
),
val
)
self
.
assertIsNot
(
v
.
extra_vars
.
get
(
key
),
val
)
self
.
assertEqual
(
vars
.
get
(
key
),
val
)
self
.
assertIsNot
(
v
.
extra_vars
,
extra_vars
)
def
test_variable_manager_host_vars_file
(
self
):
fake_loader
=
DictDataLoader
({
...
...
@@ -82,30 +89,38 @@ class TestVariableManager(unittest.TestCase):
mock_host
.
get_vars
.
return_value
=
dict
()
mock_host
.
get_groups
.
return_value
=
()
self
.
assertEqual
(
v
.
get_vars
(
loader
=
fake_loader
,
host
=
mock_host
)
.
get
(
"foo"
),
"bar"
)
self
.
assertEqual
(
v
.
get_vars
(
loader
=
fake_loader
,
host
=
mock_host
,
use_cache
=
False
)
.
get
(
"foo"
),
"bar"
)
def
test_variable_manager_group_vars_file
(
self
):
fake_loader
=
DictDataLoader
({
"group_vars/
somegroup
.yml"
:
"""
"group_vars/
all
.yml"
:
"""
foo: bar
"""
,
"group_vars/somegroup.yml"
:
"""
bam: baz
"""
})
v
=
VariableManager
()
v
.
add_group_vars_file
(
"group_vars/all.yml"
,
loader
=
fake_loader
)
v
.
add_group_vars_file
(
"group_vars/somegroup.yml"
,
loader
=
fake_loader
)
self
.
assertIn
(
"somegroup"
,
v
.
_group_vars_files
)
self
.
assertEqual
(
v
.
_group_vars_files
[
"somegroup"
],
dict
(
foo
=
"bar"
))
self
.
assertEqual
(
v
.
_group_vars_files
[
"all"
],
dict
(
foo
=
"bar"
))
self
.
assertEqual
(
v
.
_group_vars_files
[
"somegroup"
],
dict
(
bam
=
"baz"
))
mock_group
=
MagicMock
()
mock_group
.
name
.
return_value
=
"somegroup"
mock_group
.
name
=
"somegroup"
mock_group
.
get_ancestors
.
return_value
=
()
mock_group
.
get_vars
.
return_value
=
dict
()
mock_host
=
MagicMock
()
mock_host
.
get_name
.
return_value
=
"hostname1"
mock_host
.
get_vars
.
return_value
=
dict
()
mock_host
.
get_groups
.
return_value
=
(
mock_group
)
mock_host
.
get_groups
.
return_value
=
(
mock_group
,
)
self
.
assertEqual
(
v
.
get_vars
(
loader
=
fake_loader
,
host
=
mock_host
)
.
get
(
"foo"
),
"bar"
)
vars
=
v
.
get_vars
(
loader
=
fake_loader
,
host
=
mock_host
,
use_cache
=
False
)
self
.
assertEqual
(
vars
.
get
(
"foo"
),
"bar"
)
self
.
assertEqual
(
vars
.
get
(
"bam"
),
"baz"
)
def
test_variable_manager_play_vars
(
self
):
fake_loader
=
DictDataLoader
({})
...
...
@@ -116,7 +131,7 @@ class TestVariableManager(unittest.TestCase):
mock_play
.
get_vars_files
.
return_value
=
[]
v
=
VariableManager
()
self
.
assertEqual
(
v
.
get_vars
(
loader
=
fake_loader
,
play
=
mock_play
)
.
get
(
"foo"
),
"bar"
)
self
.
assertEqual
(
v
.
get_vars
(
loader
=
fake_loader
,
play
=
mock_play
,
use_cache
=
False
)
.
get
(
"foo"
),
"bar"
)
def
test_variable_manager_play_vars_files
(
self
):
fake_loader
=
DictDataLoader
({
...
...
@@ -131,7 +146,7 @@ class TestVariableManager(unittest.TestCase):
mock_play
.
get_vars_files
.
return_value
=
[
'/path/to/somefile.yml'
]
v
=
VariableManager
()
self
.
assertEqual
(
v
.
get_vars
(
loader
=
fake_loader
,
play
=
mock_play
)
.
get
(
"foo"
),
"bar"
)
self
.
assertEqual
(
v
.
get_vars
(
loader
=
fake_loader
,
play
=
mock_play
,
use_cache
=
False
)
.
get
(
"foo"
),
"bar"
)
def
test_variable_manager_task_vars
(
self
):
fake_loader
=
DictDataLoader
({})
...
...
@@ -141,5 +156,5 @@ class TestVariableManager(unittest.TestCase):
mock_task
.
get_vars
.
return_value
=
dict
(
foo
=
"bar"
)
v
=
VariableManager
()
self
.
assertEqual
(
v
.
get_vars
(
loader
=
fake_loader
,
task
=
mock_task
)
.
get
(
"foo"
),
"bar"
)
self
.
assertEqual
(
v
.
get_vars
(
loader
=
fake_loader
,
task
=
mock_task
,
use_cache
=
False
)
.
get
(
"foo"
),
"bar"
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment