def test_list_tests_requests_concurrency_instances(self): # testr list-tests is non-parallel, so needs 1 instance. # testr run triggering list-tests will want to run parallel on all, so # avoid latency by asking for whatever concurrency is up front. # This covers the case for non-listing runs as well, as the code path # is common. self.dirty() ui = UI(options=[('concurrency', 2), ('parallel', True)]) ui.here = self.tempdir cmd = run.run(ui) ui.set_command(cmd) ui.proc_outputs = [_b('returned\ninstances\n')] command = self.useFixture(TestCommand(ui, None)) self.set_config( '[DEFAULT]\ntest_command=foo $LISTOPT $IDLIST\ntest_id_list_default=whoo yea\n' 'test_list_option=--list\n' 'instance_provision=provision -c $INSTANCE_COUNT\n' 'instance_execute=quux $INSTANCE_ID -- $COMMAND\n') fixture = self.useFixture(command.get_run_command(test_ids=['1'])) fixture.list_tests() self.assertEqual(set([_b('returned'), _b('instances')]), command._instances) self.assertEqual(set([]), command._allocated_instances) self.assertThat( ui.outputs, MatchesAny( Equals([ ('values', [('running', 'provision -c 2')]), ('popen', ('provision -c 2', ), { 'shell': True, 'stdout': -1 }), ('communicate', ), ('values', [('running', 'quux instances -- foo --list whoo yea')]), ('popen', ('quux instances -- foo --list whoo yea', ), { 'shell': True, 'stdin': -1, 'stdout': -1 }), ('communicate', ) ]), Equals([('values', [('running', 'provision -c 2')]), ('popen', ('provision -c 2', ), { 'shell': True, 'stdout': -1 }), ('communicate', ), ('values', [('running', 'quux returned -- foo --list whoo yea')]), ('popen', ('quux returned -- foo --list whoo yea', ), { 'shell': True, 'stdin': -1, 'stdout': -1 }), ('communicate', )])))
def test_TestCommand_get_run_command_outside_setUp_fails(self): self.dirty() ui = UI() ui.here = self.tempdir command = TestCommand(ui, None) self.set_config('[DEFAULT]\ntest_command=foo\n') self.assertThat(command.get_run_command, raises(TypeError)) command.setUp() command.cleanUp() self.assertThat(command.get_run_command, raises(TypeError))
def test_TestCommand_is_a_fixture(self): ui = UI() ui.here = self.tempdir command = TestCommand(ui, None) command.setUp() command.cleanUp()
def test_takes_ui(self): ui = UI() ui.here = self.tempdir command = TestCommand(ui, None) self.assertEqual(command.ui, ui)
def get_test_ui_and_cmd(self, options=(), args=(), repository=None): self.dirty() ui = UI(options=options, args=args) ui.here = self.tempdir return ui, self.useFixture(TestCommand(ui, repository))
def __init__(self, ui, repo): TestCommand.__init__(self, ui, repo) self.oldschool = True