def test_init_no_args_no_questions_no_output(self): ui = UI() cmd = init.init(ui) calls = [] cmd.repository_factory = RecordingRepositoryFactory(calls, memory.RepositoryFactory()) cmd.execute() self.assertEqual([('initialise', ui.here)], calls)
def test_load_initialises_repo_if_doesnt_exist_and_init_forced(self): ui = UI([('subunit', _b(''))], options=[('force_init', True)]) cmd = load.load(ui) ui.set_command(cmd) calls = [] cmd.repository_factory = RecordingRepositoryFactory( calls, memory.RepositoryFactory()) del calls[:] cmd.execute() self.assertEqual([('open', ui.here), ('initialise', ui.here)], calls)
def test_load_errors_if_repo_doesnt_exist(self): ui = UI([('subunit', _b(''))]) cmd = load.load(ui) ui.set_command(cmd) calls = [] cmd.repository_factory = RecordingRepositoryFactory( calls, memory.RepositoryFactory()) del calls[:] cmd.execute() self.assertEqual([('open', ui.here)], calls) self.assertEqual([('error', Wildcard)], ui.outputs) self.assertThat(ui.outputs[0][1], MatchesException(RepositoryNotFound('memory:')))
def test_load_loads_subunit_stream_to_default_repository(self): ui = UI([('subunit', _b(''))]) cmd = load.load(ui) ui.set_command(cmd) calls = [] cmd.repository_factory = RecordingRepositoryFactory( calls, memory.RepositoryFactory()) repo = cmd.repository_factory.initialise(ui.here) del calls[:] cmd.execute() # Right repo self.assertEqual([('open', ui.here)], calls) # Stream consumed self.assertFalse('subunit' in ui.input_streams) # Results loaded self.assertEqual(1, repo.count())
def test_load_loads_named_file_if_given(self): datafile = NamedTemporaryFile() self.addCleanup(datafile.close) ui = UI([('subunit', _b(''))], args=[datafile.name]) cmd = load.load(ui) ui.set_command(cmd) calls = [] cmd.repository_factory = RecordingRepositoryFactory( calls, memory.RepositoryFactory()) repo = cmd.repository_factory.initialise(ui.here) del calls[:] self.assertEqual(0, cmd.execute()) # Right repo self.assertEqual([('open', ui.here)], calls) # Stream not consumed - otherwise CLI would block when someone runs # 'testr load foo'. XXX: Be nice if we could declare that the argument, # which is a path, is to be an input stream. self.assertTrue('subunit' in ui.input_streams) # Results loaded self.assertEqual(1, repo.count())