Add ability to specify starting dir for bok-choy tests
This commit is contained in:
@@ -26,6 +26,7 @@ __test__ = False # do not collect
|
|||||||
('testsonly', 'o', 'Assume servers are running and execute tests only'),
|
('testsonly', 'o', 'Assume servers are running and execute tests only'),
|
||||||
('extra_args=', 'e', 'adds as extra args to the test command'),
|
('extra_args=', 'e', 'adds as extra args to the test command'),
|
||||||
('default_store=', 's', 'Default modulestore'),
|
('default_store=', 's', 'Default modulestore'),
|
||||||
|
('test_dir=', 'd', 'Directory for finding tests (relative to common/test/acceptance)'),
|
||||||
make_option("--verbose", action="store_const", const=2, dest="verbosity"),
|
make_option("--verbose", action="store_const", const=2, dest="verbosity"),
|
||||||
make_option("-q", "--quiet", action="store_const", const=0, dest="verbosity"),
|
make_option("-q", "--quiet", action="store_const", const=0, dest="verbosity"),
|
||||||
make_option("-v", "--verbosity", action="count", dest="verbosity"),
|
make_option("-v", "--verbosity", action="count", dest="verbosity"),
|
||||||
@@ -64,7 +65,7 @@ def test_bokchoy(options):
|
|||||||
'verbosity': getattr(options, 'verbosity', 2),
|
'verbosity': getattr(options, 'verbosity', 2),
|
||||||
'extra_args': getattr(options, 'extra_args', ''),
|
'extra_args': getattr(options, 'extra_args', ''),
|
||||||
'pdb': getattr(options, 'pdb', False),
|
'pdb': getattr(options, 'pdb', False),
|
||||||
'test_dir': 'tests',
|
'test_dir': getattr(options, 'test_dir', 'tests'),
|
||||||
}
|
}
|
||||||
run_bokchoy(**opts)
|
run_bokchoy(**opts)
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
|
"""
|
||||||
|
Tests for the bok-choy paver commands themselves.
|
||||||
|
Run just this test with: paver test_lib -t pavelib/paver_tests/test_paver_bok_choy_cmds.py
|
||||||
|
"""
|
||||||
import os
|
import os
|
||||||
import unittest
|
import unittest
|
||||||
from pavelib.utils.test.suites import BokChoyTestSuite
|
from pavelib.utils.test.suites import BokChoyTestSuite
|
||||||
@@ -8,57 +11,78 @@ REPO_DIR = os.getcwd()
|
|||||||
|
|
||||||
class TestPaverBokChoyCmd(unittest.TestCase):
|
class TestPaverBokChoyCmd(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def _expected_command(self, name, store=None):
|
||||||
super(TestPaverBokChoyCmd, self).setUp()
|
"""
|
||||||
self.request = BokChoyTestSuite('')
|
Returns the command that is expected to be run for the given test spec
|
||||||
|
and store.
|
||||||
def _expected_command(self, expected_text_append, expected_default_store=None):
|
"""
|
||||||
if expected_text_append:
|
|
||||||
expected_text_append = "/" + expected_text_append
|
|
||||||
shard = os.environ.get('SHARD')
|
shard = os.environ.get('SHARD')
|
||||||
expected_statement = (
|
expected_statement = (
|
||||||
"DEFAULT_STORE={default_store} "
|
"DEFAULT_STORE={default_store} "
|
||||||
"SCREENSHOT_DIR='{repo_dir}/test_root/log{shard_str}' "
|
"SCREENSHOT_DIR='{repo_dir}/test_root/log{shard_str}' "
|
||||||
"BOK_CHOY_HAR_DIR='{repo_dir}/test_root/log{shard_str}/hars' "
|
"BOK_CHOY_HAR_DIR='{repo_dir}/test_root/log{shard_str}/hars' "
|
||||||
"SELENIUM_DRIVER_LOG_DIR='{repo_dir}/test_root/log{shard_str}' "
|
"SELENIUM_DRIVER_LOG_DIR='{repo_dir}/test_root/log{shard_str}' "
|
||||||
"nosetests {repo_dir}/common/test/acceptance/tests{exp_text} "
|
"nosetests {repo_dir}/common/test/acceptance/{exp_text} "
|
||||||
"--with-xunit "
|
"--with-xunit "
|
||||||
"--xunit-file={repo_dir}/reports/bok_choy{shard_str}/xunit.xml "
|
"--xunit-file={repo_dir}/reports/bok_choy{shard_str}/xunit.xml "
|
||||||
"--verbosity=2 "
|
"--verbosity=2 "
|
||||||
).format(
|
).format(
|
||||||
default_store=expected_default_store,
|
default_store=store,
|
||||||
repo_dir=REPO_DIR,
|
repo_dir=REPO_DIR,
|
||||||
exp_text=expected_text_append,
|
|
||||||
shard_str='/shard_' + shard if shard else '',
|
shard_str='/shard_' + shard if shard else '',
|
||||||
|
exp_text=name,
|
||||||
)
|
)
|
||||||
return expected_statement.strip()
|
return expected_statement
|
||||||
|
|
||||||
def test_default_bokchoy(self):
|
def test_default(self):
|
||||||
self.assertEqual(self.request.cmd.strip(), self._expected_command(''))
|
suite = BokChoyTestSuite('')
|
||||||
|
name = 'tests'
|
||||||
|
self.assertEqual(suite.cmd, self._expected_command(name=name))
|
||||||
|
|
||||||
def test_suite_request_bokchoy(self):
|
def test_suite_spec(self):
|
||||||
self.request.test_spec = "test_foo.py"
|
spec = 'test_foo.py'
|
||||||
self.assertEqual(self.request.cmd.strip(), self._expected_command(self.request.test_spec))
|
suite = BokChoyTestSuite('', test_spec=spec)
|
||||||
|
name = 'tests/{}'.format(spec)
|
||||||
|
self.assertEqual(suite.cmd, self._expected_command(name=name))
|
||||||
|
|
||||||
def test_class_request_bokchoy(self):
|
def test_class_spec(self):
|
||||||
self.request.test_spec = "test_foo.py:FooTest"
|
spec = 'test_foo.py:FooTest'
|
||||||
self.assertEqual(self.request.cmd.strip(), self._expected_command(self.request.test_spec))
|
suite = BokChoyTestSuite('', test_spec=spec)
|
||||||
|
name = 'tests/{}'.format(spec)
|
||||||
|
self.assertEqual(suite.cmd, self._expected_command(name=name))
|
||||||
|
|
||||||
def test_case_request_bokchoy(self):
|
def test_testcase_spec(self):
|
||||||
self.request.test_spec = "test_foo.py:FooTest.test_bar"
|
spec = 'test_foo.py:FooTest.test_bar'
|
||||||
self.assertEqual(self.request.cmd.strip(), self._expected_command(self.request.test_spec))
|
suite = BokChoyTestSuite('', test_spec=spec)
|
||||||
|
name = 'tests/{}'.format(spec)
|
||||||
|
self.assertEqual(suite.cmd, self._expected_command(name=name))
|
||||||
|
|
||||||
def test_default_bokchoy_with_draft_default_store(self):
|
def test_spec_with_draft_default_store(self):
|
||||||
self.request.test_spec = "test_foo.py"
|
spec = 'test_foo.py'
|
||||||
self.request.default_store = "draft"
|
suite = BokChoyTestSuite('', test_spec=spec, default_store='draft')
|
||||||
self.assertEqual(self.request.cmd.strip(), self._expected_command(self.request.test_spec, "draft"))
|
name = 'tests/{}'.format(spec)
|
||||||
|
self.assertEqual(
|
||||||
|
suite.cmd,
|
||||||
|
self._expected_command(name=name, store='draft')
|
||||||
|
)
|
||||||
|
|
||||||
def test_default_bokchoy_with_invalid_default_store(self):
|
def test_invalid_default_store(self):
|
||||||
# the cmd will dumbly compose whatever we pass in for the default_store
|
# the cmd will dumbly compose whatever we pass in for the default_store
|
||||||
self.request.test_spec = "test_foo.py"
|
suite = BokChoyTestSuite('', default_store='invalid')
|
||||||
self.request.default_store = "invalid"
|
name = 'tests'
|
||||||
self.assertEqual(self.request.cmd.strip(), self._expected_command(self.request.test_spec, "invalid"))
|
self.assertEqual(
|
||||||
|
suite.cmd,
|
||||||
|
self._expected_command(name=name, store='invalid')
|
||||||
|
)
|
||||||
|
|
||||||
def test_serversonly(self):
|
def test_serversonly(self):
|
||||||
self.request.serversonly = True
|
suite = BokChoyTestSuite('', serversonly=True)
|
||||||
self.assertEqual(self.request.cmd.strip(), "")
|
self.assertEqual(suite.cmd, "")
|
||||||
|
|
||||||
|
def test_test_dir(self):
|
||||||
|
test_dir = 'foo'
|
||||||
|
suite = BokChoyTestSuite('', test_dir=test_dir)
|
||||||
|
self.assertEqual(
|
||||||
|
suite.cmd,
|
||||||
|
self._expected_command(name=test_dir)
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user