def test_get_modified_attributes_for_empty_lists_diff(self):
     ''' validate modified attributes for empty lists with diff '''
     current = {'snapmirror_label': [], 'state': 'present'}
     desired = {'snapmirror_label': [], 'state': 'present'}
     my_obj = na_helper()
     result = my_obj.get_modified_attributes(current, desired, True)
     assert result == {}
 def test_get_modified_attributes_for_no_change(self):
     ''' validate modified attributes for same data in current and desired '''
     current = {'name': 'test'}
     desired = {'name': 'test'}
     my_obj = na_helper()
     result = my_obj.get_modified_attributes(current, desired)
     assert result == {}
 def test_get_modified_attributes_for_list_diff(self):
     ''' validate modified attributes for list diff '''
     current = {'name': ['test', 'abcd'], 'state': 'present'}
     desired = {'name': ['abcd', 'abc'], 'state': 'present'}
     my_obj = na_helper()
     result = my_obj.get_modified_attributes(current, desired, True)
     assert result == {'name': ['abc']}
 def test_get_modified_attributes_for_intersecting_list_of_dicts(self):
     ''' validate modified attributes for list diff '''
     current = {
         'address_blocks': [{
             'start': '10.10.10.23',
             'size': 5
         }, {
             'start': '10.10.10.30',
             'size': 5
         }]
     }
     desired = {
         'address_blocks': [{
             'start': '10.10.10.23',
             'size': 5
         }, {
             'start': '10.10.10.30',
             'size': 5
         }, {
             'start': '10.20.10.40',
             'size': 5
         }]
     }
     my_obj = na_helper()
     result = my_obj.get_modified_attributes(current, desired, True)
     assert result == {
         'address_blocks': [{
             'start': '10.20.10.40',
             'size': 5
         }]
     }
Beispiel #5
0
 def test_filter_list_dict_list(self):
     ''' simple list return simple list '''
     my_obj = na_helper()
     arg = [
         None, [1, None, 3],
         dict(a=None, b=[7, None, 9], c=None, d=dict(u=None, v=10)), None, 5
     ]
     expected = [[1, 3], dict(b=[7, 9], d=dict(v=10)), 5]
     result = my_obj.filter_out_none_entries(arg)
     assert expected == result
Beispiel #6
0
 def test_get_modified_attributes_for_an_empty_current_list_diff(self):
     ''' validate modified attributes for an empty current list with diff'''
     current = {'snapmirror_label': [], 'state': 'present'}
     desired = {
         'snapmirror_label': ['daily', 'weekly', 'monthly'],
         'state': 'present'
     }
     my_obj = na_helper()
     result = my_obj.get_modified_attributes(current, desired, True)
     assert result == {'snapmirror_label': ['daily', 'weekly', 'monthly']}
Beispiel #7
0
 def test_filter_typeerror_on_str(self):
     ''' empty list return empty list '''
     my_obj = na_helper()
     arg = ""
     with pytest.raises(TypeError) as exc:
         my_obj.filter_out_none_entries(arg)
     msg = "unexpected type <class 'str'>"
     if sys.version_info < (3, 0):
         # the assert fails on 2.x
         return
     assert exc.value.args[0] == msg
Beispiel #8
0
 def test_filter_dict_list_dict(self):
     ''' simple dict return simple dict '''
     my_obj = na_helper()
     arg = dict(a=None,
                b=[dict(u=1, v=None, w=2), 5, None,
                   dict(x=6, y=None)],
                c=dict(),
                d=2,
                e=3)
     expected = dict(b=[dict(u=1, w=2), 5, dict(x=6)], d=2, e=3)
     result = my_obj.filter_out_none_entries(arg)
     assert expected == result
Beispiel #9
0
 def test_get_modified_attributes_for_current_list_with_duplicates(self):
     ''' validate modified attributes for current list with duplicates '''
     current = {
         'schedule':
         ['hourly', 'daily', 'daily', 'weekly', 'monthly', 'daily'],
         'state': 'present'
     }
     desired = {
         'schedule': ['daily', 'daily', 'weekly', 'monthly'],
         'state': 'present'
     }
     my_obj = na_helper()
     result = my_obj.get_modified_attributes(current, desired, False)
     assert result == {'schedule': ['daily', 'daily', 'weekly', 'monthly']}
Beispiel #10
0
    def test_required_is_not_set_to_none(self):
        ''' if a key is present, without a value, Ansible sets it to None '''
        my_obj = na_helper()
        my_module = MockModule()
        print(my_module.argument_spec)
        with pytest.raises(AnsibleFailJson) as exc:
            my_obj.check_and_set_parameters(my_module)
        msg = 'required_param requires a value, got: None'
        assert exc.value.args[0]['msg'] == msg

        # force a value different than None
        my_module.params['required_param'] = 1
        my_params = my_obj.check_and_set_parameters(my_module)
        assert set(my_params.keys()) == set(
            ['required_param', 'feature_flags'])
Beispiel #11
0
 def test_get_modified_attributes_equal_lists_with_duplicates_diff(self):
     ''' validate modified attributes for equal lists with duplicates with diff '''
     current = {
         'schedule':
         ['hourly', 'daily', 'daily', 'weekly', 'monthly', 'daily'],
         'state': 'present'
     }
     desired = {
         'schedule':
         ['hourly', 'daily', 'daily', 'weekly', 'monthly', 'daily'],
         'state': 'present'
     }
     my_obj = na_helper()
     result = my_obj.get_modified_attributes(current, desired, True)
     assert result == {}
Beispiel #12
0
    def test_get_caller(self):
        my_obj = na_helper()
        fname = my_obj.get_caller(1)
        assert fname == 'test_get_caller'

        def one(depth):
            return my_obj.get_caller(depth)

        assert one(1) == 'one'

        def two():
            return one(2)

        assert two() == 'two'

        def three():
            return two(), one(3)

        assert three() == ('two', 'test_get_caller')
Beispiel #13
0
 def test_filter_empty_list(self):
     ''' empty list return empty list '''
     my_obj = na_helper()
     arg = list()
     result = my_obj.filter_out_none_entries(arg)
     assert arg == result