From 31a6cde05289894579fad328ed104bb5bedb46c9 Mon Sep 17 00:00:00 2001 From: Kui Shi Date: Sat, 19 Oct 2013 15:46:20 +0800 Subject: [PATCH] Include troveclient/compat/tests in testr All tests should be included in testr. In test_common.py, the testr command line will be read for parsing, finally emit error message: run.py: error: no such option: -t we should mock the sys.argv in setUp(). The analysis is here -------------------- troveclient/compat/common.py: CommandsBase 254 def _parse_options(self, parser): 255 opts, args = parser.parse_args() <-- 1. no arg is passed /usr/lib/python2.7/optparse.py 1361 def _get_args(self, args): 1362 if args is None: 1363 return sys.argv[1:] <-- 3. cmdline(testr command) is read 1364 else: 1365 return args[:] 1367 def parse_args(self, args=None, values=None): ... 1381 rargs = self._get_args(args) <-- 2. args is None Close-Bug #1241845 Change-Id: I092db96d1b6bb31c41e6ba4c5fc9606e3f8ac087 --- .testr.conf | 2 +- test-requirements.txt | 2 ++ troveclient/compat/tests/__init__.py | 0 troveclient/compat/tests/test_common.py | 9 +++++++++ 4 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 troveclient/compat/tests/__init__.py diff --git a/.testr.conf b/.testr.conf index d45a93ae..888f7de0 100644 --- a/.testr.conf +++ b/.testr.conf @@ -2,7 +2,7 @@ test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \ OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \ OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \ - ${PYTHON:-python} -m subunit.run discover -t ./ ./troveclient/tests $LISTOPT $IDOPTION + ${PYTHON:-python} -m subunit.run discover -t ./ ./ $LISTOPT $IDOPTION test_id_option=--load-list $IDFILE test_list_option=--list diff --git a/test-requirements.txt b/test-requirements.txt index a944dd19..89bf1fef 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4,3 +4,5 @@ sphinx>=1.1.2 testrepository>=0.0.17 testtools>=0.9.32 mock>=1.0 +httplib2 +lxml>=2.3 diff --git a/troveclient/compat/tests/__init__.py b/troveclient/compat/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/troveclient/compat/tests/test_common.py b/troveclient/compat/tests/test_common.py index cfa2c2ac..fcf721e1 100644 --- a/troveclient/compat/tests/test_common.py +++ b/troveclient/compat/tests/test_common.py @@ -147,12 +147,15 @@ class CommandsBaseTest(TestCase): super(CommandsBaseTest, self).setUp() self.orig_sys_exit = sys.exit sys.exit = Mock(return_value=None) + self.orig_sys_argv = sys.argv + sys.argv = ['fakecmd'] parser = common.CliOptions().create_optparser(False) self.cmd_base = common.CommandsBase(parser) def tearDown(self): super(CommandsBaseTest, self).tearDown() sys.exit = self.orig_sys_exit + sys.argv = self.orig_sys_argv def test___init__(self): self.assertNotEqual(None, self.cmd_base) @@ -266,12 +269,15 @@ class AuthTest(TestCase): super(AuthTest, self).setUp() self.orig_sys_exit = sys.exit sys.exit = Mock(return_value=None) + self.orig_sys_argv = sys.argv + sys.argv = ['fakecmd'] self.parser = common.CliOptions().create_optparser(False) self.auth = common.Auth(self.parser) def tearDown(self): super(AuthTest, self).tearDown() sys.exit = self.orig_sys_exit + sys.argv = self.orig_sys_argv def test___init__(self): self.assertEqual(None, self.auth.dbaas) @@ -304,10 +310,13 @@ class AuthedCommandsBaseTest(TestCase): super(AuthedCommandsBaseTest, self).setUp() self.orig_sys_exit = sys.exit sys.exit = Mock(return_value=None) + self.orig_sys_argv = sys.argv + sys.argv = ['fakecmd'] def tearDown(self): super(AuthedCommandsBaseTest, self).tearDown() sys.exit = self.orig_sys_exit + self.orig_sys_argv = sys.argv def test___init__(self): parser = common.CliOptions().create_optparser(False)