From 9bec4d6bbab599bee72256c7e09fe214cb849a1b Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Tue, 5 Feb 2013 12:13:20 -0500 Subject: abstracted similar digit range classes in POSIXUsers/GroupPatterns into Bcfg2.Utils --- .../Testlib/TestClient/TestTools/TestPOSIXUsers.py | 38 ++++------------------ 1 file changed, 6 insertions(+), 32 deletions(-) (limited to 'testsuite/Testsrc/Testlib/TestClient') diff --git a/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIXUsers.py b/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIXUsers.py index bcf6cf133..8ab279a50 100644 --- a/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIXUsers.py +++ b/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIXUsers.py @@ -6,6 +6,7 @@ import subprocess from mock import Mock, MagicMock, patch import Bcfg2.Client.Tools from Bcfg2.Client.Tools.POSIXUsers import * +from Bcfg2.Utils import PackedDigitRange # add all parent testsuite directories to sys.path to allow (most) # relative imports in python 2.4 @@ -19,33 +20,6 @@ while path != "/": from common import * -class TestIDRangeSet(Bcfg2TestCase): - def test_ranges(self): - # test cases. tuples of (ranges, included numbers, excluded - # numbers) - # tuples of (range description, numbers that are included, - # numebrs that are excluded) - tests = [(["0-3"], ["0", 1, "2", 3], [4]), - (["1"], [1], [0, "2"]), - (["10-11"], [10, 11], [0, 1]), - (["9-9"], [9], [8, 10]), - (["0-100"], [0, 10, 99, 100], []), - (["1", "3", "5"], [1, 3, 5], [0, 2, 4, 6]), - (["1-5", "7"], [1, 3, 5, 7], [0, 6, 8]), - (["1-5", 7, "9-11"], [1, 3, 5, 7, 9, 11], [0, 6, 8, 12]), - (["852-855", "321-497", 763], [852, 855, 321, 400, 497, 763], - [851, 320, 766, 999]), - (["0-"], [0, 1, 100, 100000], []), - ([1, "5-10", "1000-"], [1, 5, 10, 1000, 10000000], - [4, 11, 999])] - for ranges, inc, exc in tests: - rng = IDRangeSet(*ranges) - for test in inc: - self.assertIn(test, rng) - for test in exc: - self.assertNotIn(test, rng) - - class TestExecutor(Bcfg2TestCase): test_obj = Executor @@ -177,19 +151,19 @@ class TestPOSIXUsers(Bcfg2TestCase): def test__in_managed_range(self): users = self.get_obj() - users._whitelist = dict(POSIXGroup=IDRangeSet("1-10")) - users._blacklist = dict(POSIXGroup=IDRangeSet("8-100")) + users._whitelist = dict(POSIXGroup=PackedDigitRange("1-10")) + users._blacklist = dict(POSIXGroup=PackedDigitRange("8-100")) self.assertTrue(users._in_managed_range("POSIXGroup", "9")) users._whitelist = dict(POSIXGroup=None) - users._blacklist = dict(POSIXGroup=IDRangeSet("8-100")) + users._blacklist = dict(POSIXGroup=PackedDigitRange("8-100")) self.assertFalse(users._in_managed_range("POSIXGroup", "9")) users._whitelist = dict(POSIXGroup=None) - users._blacklist = dict(POSIXGroup=IDRangeSet("100-")) + users._blacklist = dict(POSIXGroup=PackedDigitRange("100-")) self.assertTrue(users._in_managed_range("POSIXGroup", "9")) - users._whitelist = dict(POSIXGroup=IDRangeSet("1-10")) + users._whitelist = dict(POSIXGroup=PackedDigitRange("1-10")) users._blacklist = dict(POSIXGroup=None) self.assertFalse(users._in_managed_range("POSIXGroup", "25")) -- cgit v1.2.3-1-g7c22 From 3a0618331e009439ce6b9c664915669884cd4aed Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Tue, 12 Feb 2013 16:02:24 -0500 Subject: better Executor class for client tools --- .../Testlib/TestClient/TestTools/TestPOSIXUsers.py | 84 +++------------------- 1 file changed, 9 insertions(+), 75 deletions(-) (limited to 'testsuite/Testsrc/Testlib/TestClient') diff --git a/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIXUsers.py b/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIXUsers.py index 8ab279a50..582f0ac99 100644 --- a/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIXUsers.py +++ b/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIXUsers.py @@ -20,78 +20,6 @@ while path != "/": from common import * -class TestExecutor(Bcfg2TestCase): - test_obj = Executor - - def get_obj(self, logger=None): - if not logger: - def print_msg(msg): - print(msg) - logger = Mock() - logger.error = Mock(side_effect=print_msg) - logger.warning = Mock(side_effect=print_msg) - logger.info = Mock(side_effect=print_msg) - logger.debug = Mock(side_effect=print_msg) - return self.test_obj(logger) - - @patch("subprocess.Popen") - def test_run(self, mock_Popen): - exc = self.get_obj() - cmd = ["/bin/test", "-a", "foo"] - proc = Mock() - proc.wait = Mock() - proc.wait.return_value = 0 - proc.communicate = Mock() - proc.communicate.return_value = (MagicMock(), MagicMock()) - mock_Popen.return_value = proc - - self.assertTrue(exc.run(cmd)) - args = mock_Popen.call_args - self.assertEqual(args[0][0], cmd) - self.assertEqual(args[1]['shell'], False) - self.assertEqual(args[1]['stdin'], subprocess.PIPE) - self.assertEqual(args[1]['stdout'], subprocess.PIPE) - self.assertEqual(args[1]['stderr'], subprocess.PIPE) - proc.communicate.assert_called_with() - proc.wait.assert_called_with() - self.assertEqual(proc.communicate.return_value, - (exc.stdout, exc.stderr)) - self.assertEqual(proc.wait.return_value, - exc.retval) - - mock_Popen.reset_mock() - inputdata = "foo\n\nbar" - self.assertTrue(exc.run(cmd, inputdata=inputdata, shell=True)) - args = mock_Popen.call_args - self.assertEqual(args[0][0], cmd) - self.assertEqual(args[1]['shell'], True) - self.assertEqual(args[1]['stdin'], subprocess.PIPE) - self.assertEqual(args[1]['stdout'], subprocess.PIPE) - self.assertEqual(args[1]['stderr'], subprocess.PIPE) - proc.communicate.assert_called_with(inputdata) - proc.wait.assert_called_with() - self.assertEqual(proc.communicate.return_value, - (exc.stdout, exc.stderr)) - self.assertEqual(proc.wait.return_value, - exc.retval) - - mock_Popen.reset_mock() - proc.wait.return_value = 1 - self.assertRaises(ExecutionError, exc.run, cmd) - args = mock_Popen.call_args - self.assertEqual(args[0][0], cmd) - self.assertEqual(args[1]['shell'], False) - self.assertEqual(args[1]['stdin'], subprocess.PIPE) - self.assertEqual(args[1]['stdout'], subprocess.PIPE) - self.assertEqual(args[1]['stderr'], subprocess.PIPE) - proc.communicate.assert_called_with() - proc.wait.assert_called_with() - self.assertEqual(proc.communicate.return_value, - (exc.stdout, exc.stderr)) - self.assertEqual(proc.wait.return_value, - exc.retval) - - class TestPOSIXUsers(Bcfg2TestCase): test_obj = POSIXUsers @@ -419,6 +347,10 @@ class TestPOSIXUsers(Bcfg2TestCase): setter.reset_mock() users.modified = [] + cmd_rv = Mock() + cmd_rv.success = True + users.cmd.run.return_value = cmd_rv + reset() entry = lxml.etree.Element("POSIXUser", name="test2") self.assertTrue(users._install(entry)) @@ -438,7 +370,7 @@ class TestPOSIXUsers(Bcfg2TestCase): self.assertIn(entry, users.modified) reset() - users.cmd.run.side_effect = ExecutionError(None) + cmd_rv.success = False self.assertFalse(users._install(entry)) users.set_defaults[entry.tag].assert_called_with(entry) users._get_cmd.assert_called_with("mod", @@ -536,19 +468,21 @@ class TestPOSIXUsers(Bcfg2TestCase): users = self.get_obj() users._get_cmd = Mock() users.cmd = Mock() + cmd_rv = Mock() + cmd_rv.success = True + users.cmd.run.return_value = cmd_rv def reset(): users._get_cmd.reset_mock() users.cmd.reset_mock() - entry = lxml.etree.Element("POSIXUser", name="test2") self.assertTrue(users._remove(entry)) users._get_cmd.assert_called_with("del", entry) users.cmd.run.assert_called_with(users._get_cmd.return_value) reset() - users.cmd.run.side_effect = ExecutionError(None) + cmd_rv.success = False self.assertFalse(users._remove(entry)) users._get_cmd.assert_called_with("del", entry) users.cmd.run.assert_called_with(users._get_cmd.return_value) -- cgit v1.2.3-1-g7c22 From f91163abed4aa739f7f8b772eabb403f01b94a88 Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Wed, 13 Feb 2013 16:08:08 -0500 Subject: extended usage of Executor class, added client-side timeout options --- testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIX/Test__init.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'testsuite/Testsrc/Testlib/TestClient') diff --git a/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIX/Test__init.py b/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIX/Test__init.py index 4048be7ca..bf7f1eecc 100644 --- a/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIX/Test__init.py +++ b/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIX/Test__init.py @@ -37,6 +37,8 @@ def get_posix_object(logger=None, setup=None, config=None): logger.debug = Mock(side_effect=print_msg) if not setup: setup = MagicMock() + if 'command_timeout' not in setup: + setup['command_timeout'] = None return Bcfg2.Client.Tools.POSIX.POSIX(logger, setup, config) -- cgit v1.2.3-1-g7c22 From 4b339bf61244714661fc73a192296ca37b12ab9f Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Wed, 20 Feb 2013 10:38:57 -0500 Subject: fixed unit tests for merge --- .../Testlib/TestClient/TestTools/Test_init.py | 25 +++++++++++----------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'testsuite/Testsrc/Testlib/TestClient') diff --git a/testsuite/Testsrc/Testlib/TestClient/TestTools/Test_init.py b/testsuite/Testsrc/Testlib/TestClient/TestTools/Test_init.py index 19f76f2f1..6fdafa2ab 100644 --- a/testsuite/Testsrc/Testlib/TestClient/TestTools/Test_init.py +++ b/testsuite/Testsrc/Testlib/TestClient/TestTools/Test_init.py @@ -399,9 +399,9 @@ class TestPkgTool(TestTool): def run(cmd): if "foo" in cmd: # fail when installing all packages, and when installing foo - return (1, '') + return False # succeed otherwise - return (0, '') + return True pt.VerifyPackage.side_effect = lambda p, m: p.get("name") == "bar" @@ -480,7 +480,7 @@ class TestSvcTool(TestTool): st.cmd = MagicMock() service = lxml.etree.Element("Service", name="foo", type="test") self.assertEqual(st.start_service(service), - st.cmd.run.return_value[0]) + st.cmd.run.return_value) st.get_svc_command.assert_called_with(service, "start") st.cmd.run.assert_called_with(st.get_svc_command.return_value) @@ -490,7 +490,7 @@ class TestSvcTool(TestTool): st.cmd = MagicMock() service = lxml.etree.Element("Service", name="foo", type="test") self.assertEqual(st.stop_service(service), - st.cmd.run.return_value[0]) + st.cmd.run.return_value) st.get_svc_command.assert_called_with(service, "stop") st.cmd.run.assert_called_with(st.get_svc_command.return_value) @@ -505,14 +505,14 @@ class TestSvcTool(TestTool): service = lxml.etree.Element("Service", name="foo", type="test") self.assertEqual(st.restart_service(service), - st.cmd.run.return_value[0]) + st.cmd.run.return_value) st.get_svc_command.assert_called_with(service, "restart") st.cmd.run.assert_called_with(st.get_svc_command.return_value) reset() service.set('target', 'reload') self.assertEqual(st.restart_service(service), - st.cmd.run.return_value[0]) + st.cmd.run.return_value) st.get_svc_command.assert_called_with(service, "reload") st.cmd.run.assert_called_with(st.get_svc_command.return_value) @@ -526,14 +526,14 @@ class TestSvcTool(TestTool): st.get_svc_command.reset_mock() st.cmd.reset_mock() - st.cmd.run.return_value = (0, '') - self.assertEqual(st.check_service(service), True) + self.assertEqual(st.check_service(service), + st.cmd.run.return_value) st.get_svc_command.assert_called_with(service, "status") st.cmd.run.assert_called_with(st.get_svc_command.return_value) reset() - st.cmd.run.return_value = (11, '') - self.assertEqual(st.check_service(service), False) + self.assertEqual(st.check_service(service), + st.cmd.run.return_value) st.get_svc_command.assert_called_with(service, "status") st.cmd.run.assert_called_with(st.get_svc_command.return_value) @@ -556,10 +556,9 @@ class TestSvcTool(TestTool): st.handlesEntry = Mock() st.handlesEntry.side_effect = lambda e: e.tag == "Service" st.stop_service = Mock() - st.stop_service.return_value = 0 + st.stop_service.return_value = True st.restart_service = Mock() - st.restart_service.side_effect = lambda e: \ - int(e.get("name") == "failed") + st.restart_service.side_effect = lambda e: e.get("name") != "failed" def reset(): st.handlesEntry.reset_mock() -- cgit v1.2.3-1-g7c22 From acb1dde9ba48b04d1ceb701ce849e96cef3d0070 Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Thu, 21 Feb 2013 08:47:59 -0500 Subject: removed in-place modification of "states" dict in client tools --- .../TestClient/TestTools/TestPOSIX/Test__init.py | 11 ----- .../Testlib/TestClient/TestTools/TestPOSIXUsers.py | 12 +++--- .../Testlib/TestClient/TestTools/Test_init.py | 48 +++++++++------------- 3 files changed, 24 insertions(+), 47 deletions(-) (limited to 'testsuite/Testsrc/Testlib/TestClient') diff --git a/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIX/Test__init.py b/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIX/Test__init.py index f01082e86..c2c6c5d4c 100644 --- a/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIX/Test__init.py +++ b/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIX/Test__init.py @@ -49,7 +49,6 @@ class TestPOSIX(TestTool): mock_canVerify.assert_called_with(posix, entry) # next, test fully_specified failure - posix.logger.error.reset_mock() mock_canVerify.reset_mock() mock_canVerify.return_value = True mock_fully_spec = Mock() @@ -59,17 +58,14 @@ class TestPOSIX(TestTool): self.assertFalse(posix.canVerify(entry)) mock_canVerify.assert_called_with(posix, entry) mock_fully_spec.assert_called_with(entry) - self.assertTrue(posix.logger.error.called) # finally, test success - posix.logger.error.reset_mock() mock_canVerify.reset_mock() mock_fully_spec.reset_mock() mock_fully_spec.return_value = True self.assertTrue(posix.canVerify(entry)) mock_canVerify.assert_called_with(posix, entry) mock_fully_spec.assert_called_with(entry) - self.assertFalse(posix.logger.error.called) @patch("Bcfg2.Client.Tools.Tool.canInstall") def test_canInstall(self, mock_canInstall): @@ -82,7 +78,6 @@ class TestPOSIX(TestTool): mock_canInstall.assert_called_with(posix, entry) # next, test fully_specified failure - posix.logger.error.reset_mock() mock_canInstall.reset_mock() mock_canInstall.return_value = True mock_fully_spec = Mock() @@ -92,17 +87,14 @@ class TestPOSIX(TestTool): self.assertFalse(posix.canInstall(entry)) mock_canInstall.assert_called_with(posix, entry) mock_fully_spec.assert_called_with(entry) - self.assertTrue(posix.logger.error.called) # finally, test success - posix.logger.error.reset_mock() mock_canInstall.reset_mock() mock_fully_spec.reset_mock() mock_fully_spec.return_value = True self.assertTrue(posix.canInstall(entry)) mock_canInstall.assert_called_with(posix, entry) mock_fully_spec.assert_called_with(entry) - self.assertFalse(posix.logger.error.called) def test_InstallPath(self): posix = self.get_obj() @@ -152,7 +144,6 @@ class TestPOSIX(TestTool): def inner(mock_listdir): mock_listdir.side_effect = OSError posix._prune_old_backups(entry) - self.assertTrue(posix.logger.error.called) self.assertFalse(mock_remove.called) mock_listdir.assert_called_with(setup['ppath']) @@ -170,7 +161,6 @@ class TestPOSIX(TestTool): mock_listdir.reset_mock() mock_remove.reset_mock() mock_remove.side_effect = OSError - posix.logger.error.reset_mock() # test to ensure that we call os.remove() for all files that # need to be removed even if we get an error posix._prune_old_backups(entry) @@ -178,7 +168,6 @@ class TestPOSIX(TestTool): self.assertItemsEqual(mock_remove.call_args_list, [call(os.path.join(setup['ppath'], p)) for p in remove]) - self.assertTrue(posix.logger.error.called) inner() diff --git a/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIXUsers.py b/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIXUsers.py index 4fcd63a60..211c39732 100644 --- a/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIXUsers.py +++ b/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIXUsers.py @@ -24,11 +24,11 @@ from TestTools.Test_init import TestTool class TestPOSIXUsers(TestTool): test_obj = POSIXUsers - def get_obj(self, logger=None, setup=None, config=None): + def get_obj(self, setup=None, config=None): if setup is None: setup = MagicMock() setup.__getitem__.return_value = [] - return TestTool.get_obj(self, logger, setup, config) + return TestTool.get_obj(self, setup, config) @patch("pwd.getpwall") @patch("grp.getgrall") @@ -134,10 +134,9 @@ class TestPOSIXUsers(TestTool): users.set_defaults['POSIXUser'] = Mock() users.set_defaults['POSIXUser'].side_effect = lambda e: e - states = dict() - self.assertEqual(users.Inventory(states), + self.assertEqual(users.Inventory(), mock_Inventory.return_value) - mock_Inventory.assert_called_with(users, states, config.getchildren()) + mock_Inventory.assert_called_with(users, config.getchildren()) lxml.etree.SubElement(orig_bundle, "POSIXGroup", name="test") self.assertXMLEqual(orig_bundle, bundle) @@ -301,9 +300,8 @@ class TestPOSIXUsers(TestTool): entries = [lxml.etree.Element("POSIXUser", name="test"), lxml.etree.Element("POSIXGroup", name="test"), lxml.etree.Element("POSIXUser", name="test2")] - states = dict() - users.Install(entries, states) + states = users.Install(entries) self.assertItemsEqual(entries, states.keys()) for state in states.values(): self.assertEqual(state, users._install.return_value) diff --git a/testsuite/Testsrc/Testlib/TestClient/TestTools/Test_init.py b/testsuite/Testsrc/Testlib/TestClient/TestTools/Test_init.py index 6fdafa2ab..063257863 100644 --- a/testsuite/Testsrc/Testlib/TestClient/TestTools/Test_init.py +++ b/testsuite/Testsrc/Testlib/TestClient/TestTools/Test_init.py @@ -21,24 +21,23 @@ from common import * class TestTool(Bcfg2TestCase): test_obj = Tool - def get_obj(self, logger=None, setup=None, config=None): + def get_obj(self, setup=None, config=None): if config is None: config = lxml.etree.Element("Configuration") - if not logger: - def print_msg(msg): - print(msg) - logger = Mock() - logger.error = Mock(side_effect=print_msg) - logger.warning = Mock(side_effect=print_msg) - logger.info = Mock(side_effect=print_msg) - logger.debug = Mock(side_effect=print_msg) if not setup: setup = MagicMock() if 'command_timeout' not in setup: setup['command_timeout'] = None + execs = self.test_obj.__execs__ self.test_obj.__execs__ = [] - rv = self.test_obj(logger, setup, config) + + @patch("Bcfg2.Options.get_option_parser") + def inner(mock_option_parser): + mock_option_parser.return_value = setup + return self.test_obj(config) + + rv = inner() self.test_obj.__execs__ = execs return rv @@ -166,14 +165,12 @@ class TestTool(Bcfg2TestCase): self.assertItemsEqual(states, expected_states) self.assertEqual(t.extra, t.FindExtra.return_value) - actual_states = dict() - t.Inventory(actual_states, structures=[bundle1, bundle2]) + actual_states = t.Inventory(structures=[bundle1, bundle2]) perform_assertions(actual_states) reset() - actual_states = dict() t.config = config - t.Inventory(actual_states) + actual_states = t.Inventory() perform_assertions(actual_states) def test_Install(self): @@ -199,9 +196,8 @@ class TestTool(Bcfg2TestCase): expected_states.update(dict([(e, t.InstallService.return_value) for e in entries if e.tag == "Service"])) - actual_states = dict() t.modified = [] - t.Install(entries, actual_states) + actual_states = t.Install(entries) self.assertItemsEqual(t.InstallPath.call_args_list, [call(e) for e in entries if e.tag == "Path"]) self.assertItemsEqual(t.InstallPackage.call_args_list, @@ -385,8 +381,7 @@ class TestPkgTool(TestTool): # test single-pass install success reset() pt.cmd.run.return_value = (0, '') - states = dict([(p, False) for p in packages]) - pt.Install(packages, states) + states = pt.Install(packages) pt._get_package_command.assert_called_with(packages) pt.cmd.run.assert_called_with([p.get("name") for p in packages]) self.assertItemsEqual(states, @@ -406,8 +401,7 @@ class TestPkgTool(TestTool): pt.VerifyPackage.side_effect = lambda p, m: p.get("name") == "bar" pt.cmd.run.side_effect = run - states = dict([(p, False) for p in packages]) - pt.Install(packages, states) + states = pt.Install(packages) pt._get_package_command.assert_any_call(packages) for pkg in packages: pt.VerifyPackage.assert_any_call(pkg, []) @@ -592,8 +586,7 @@ class TestSvcTool(TestTool): # test in non-interactive mode reset() - states = dict() - st.BundleUpdated(bundle, states) + states = st.BundleUpdated(bundle) self.assertItemsEqual(st.handlesEntry.call_args_list, [call(e) for e in entries]) st.stop_service.assert_called_with(stop) @@ -606,8 +599,7 @@ class TestSvcTool(TestTool): reset() mock_prompt.side_effect = lambda p: "interactive2" not in p st.setup['interactive'] = True - states = dict() - st.BundleUpdated(bundle, states) + states = st.BundleUpdated(bundle) self.assertItemsEqual(st.handlesEntry.call_args_list, [call(e) for e in entries]) st.stop_service.assert_called_with(stop) @@ -621,8 +613,7 @@ class TestSvcTool(TestTool): reset() st.setup['interactive'] = False st.setup['servicemode'] = 'build' - states = dict() - st.BundleUpdated(bundle, states) + states = st.BundleUpdated(bundle) self.assertItemsEqual(st.handlesEntry.call_args_list, [call(e) for e in entries]) self.assertItemsEqual(st.stop_service.call_args_list, @@ -638,10 +629,9 @@ class TestSvcTool(TestTool): services = install + [lxml.etree.Element("Service", type="test", name="bar", install="false")] st = self.get_obj() - states = Mock() - self.assertEqual(st.Install(services, states), + self.assertEqual(st.Install(services), mock_Install.return_value) - mock_Install.assert_called_with(st, install, states) + mock_Install.assert_called_with(st, install) def test_InstallService(self): st = self.get_obj() -- cgit v1.2.3-1-g7c22