def _runner(self, expected_ret, test=False, check=False, add=False, add_assertion=False): mock_check = MagicMock(return_value=check) mock_add = MagicMock(return_value=add) with patch.dict(ipset.__opts__, {"test": test}): with patch.dict(ipset.__salt__, { "ipset.check": mock_check, "ipset.add": mock_add }): actual_ret = ipset.present(self.fake_name, self.fake_entries, set_name=self.fake_name) mock_check.assert_has_calls( [call(self.fake_name, e, "ipv4") for e in self.fake_entries], any_order=True) if add_assertion: expected_calls = [ call(self.fake_name, e, "ipv4", set_name=self.fake_name) for e in self.fake_entries ] if add is not True: # if the add fails, then it will only get called once. expected_calls = expected_calls[:1] mock_add.assert_has_calls(expected_calls, any_order=True) else: self.assertTrue(mock_add.call_count == 0) self.assertDictEqual(actual_ret, expected_ret)
def test_missing_entry(self): ret = {'name': self.fake_name, 'result': False, 'comment': 'ipset entry must be specified', 'changes': {}} mock = MagicMock(return_value=True) with patch.dict(ipset.__salt__, {'ipset.check': mock}): self.assertDictEqual(ipset.present(self.fake_name), ret)
def test_missing_entry(self): ret = { "name": self.fake_name, "result": False, "comment": "ipset entry must be specified", "changes": {}, } mock = MagicMock(return_value=True) with patch.dict(ipset.__salt__, {"ipset.check": mock}): self.assertDictEqual(ipset.present(self.fake_name), ret)
def test_present(self): ''' Test to append a entry to a set ''' name = 'salt' entry = ['192.168.0.3', '192.168.1.3'] ret = {'name': name, 'result': False, 'comment': '', 'changes': {}} mock = MagicMock(return_value=True) with patch.dict(ipset.__salt__, {'ipset.check': mock}): comt = ('ipset entry must be specified') ret.update({'comment': comt}) self.assertDictEqual(ipset.present(name), ret) comt = ('entry for 192.168.0.3 already in set (salt) for ipv4\n' 'entry for 192.168.1.3 already in set (salt) for ipv4\n') # with patch.dict(ipset.__opts__, {'test': True}): ret.update({'comment': comt, 'result': True}) self.assertDictEqual(ipset.present(name, entry, set_name='salt'), ret)
def _runner(self, expected_ret, test=False, check=False, add=False, add_assertion=False): mock_check = MagicMock(return_value=check) mock_add = MagicMock(return_value=add) with patch.dict(ipset.__opts__, {'test': test}): with patch.dict(ipset.__salt__, {'ipset.check': mock_check, 'ipset.add': mock_add}): actual_ret = ipset.present(self.fake_name, self.fake_entries, set_name=self.fake_name) mock_check.assert_has_calls([call(self.fake_name, e, 'ipv4') for e in self.fake_entries], any_order=True) if add_assertion: expected_calls = [call(self.fake_name, e, 'ipv4', set_name=self.fake_name) for e in self.fake_entries] if add is not True: # if the add fails, then it will only get called once. expected_calls = expected_calls[:1] mock_add.assert_has_calls(expected_calls, any_order=True) else: mock_add.assert_not_called() self.assertDictEqual(actual_ret, expected_ret)