def setUp(self): super(WorkUnitTest, self).setUp() self.workunit = RealsWorkUnit(self.testfile, self.data, self.progress_manager, self.output_context) self.writer = Mock(spec=MPCWriter) self.workunit.get_writer = Mock(return_value=self.writer)
def test_get_output_filename_not_dry_run(self): self.workunit = RealsWorkUnit(self.testfile, self.data, self.progress_manager, self.output_context, dry_run=False) source = self.data.get_sources()[0] provisional_name = "ABCD123" source.set_provisional_name(provisional_name) assert_that(self.workunit.get_output_filename(source), equal_to("1584431p15.measure3.reals.astrom.ABCD123.mpc"))
def use_reals_workunit(self): self.workunit = RealsWorkUnit("file", self.data, self.progress_manager, self.output_context) self.model.add_workunit(self.workunit) assert_that(self.model.get_current_reading(), equal_to(self.sources[0].get_reading(0)))
class WorkUnitTest(AbstractWorkUnitTest): def get_input_file(self): return "data/1584431p15.measure3.reals.astrom" def setUp(self): super(WorkUnitTest, self).setUp() self.workunit = RealsWorkUnit(self.testfile, self.data, self.progress_manager, self.output_context) self.writer = Mock(spec=MPCWriter) self.workunit.get_writer = Mock(return_value=self.writer) def test_initialization(self): assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_source_count(), equal_to(3)) assert_that(self.workunit.get_obs_count(), equal_to(3)) def test_next_source_previous_source(self): assert_that(self.workunit.get_current_source_number(), equal_to(0)) self.workunit.next_source() assert_that(self.workunit.get_current_source_number(), equal_to(1)) self.workunit.previous_source() assert_that(self.workunit.get_current_source_number(), equal_to(0)) def test_next_source_wrap(self): assert_that(self.workunit.get_current_source_number(), equal_to(0)) self.workunit.next_source() assert_that(self.workunit.get_current_source_number(), equal_to(1)) self.workunit.next_source() assert_that(self.workunit.get_current_source_number(), equal_to(2)) self.workunit.next_source() assert_that(self.workunit.get_current_source_number(), equal_to(0)) def test_next_obs(self): assert_that(self.workunit.get_current_obs_number(), equal_to(0)) self.workunit.next_obs() assert_that(self.workunit.get_current_obs_number(), equal_to(1)) self.workunit.next_obs() assert_that(self.workunit.get_current_obs_number(), equal_to(2)) self.workunit.next_obs() assert_that(self.workunit.get_current_obs_number(), equal_to(0)) def test_previous_source_wrap(self): assert_that(self.workunit.get_current_source_number(), equal_to(0)) self.workunit.previous_source() assert_that(self.workunit.get_current_source_number(), equal_to(2)) self.workunit.previous_source() assert_that(self.workunit.get_current_source_number(), equal_to(1)) self.workunit.previous_source() assert_that(self.workunit.get_current_source_number(), equal_to(0)) def test_previous_obs(self): assert_that(self.workunit.get_current_obs_number(), equal_to(0)) self.workunit.previous_obs() assert_that(self.workunit.get_current_obs_number(), equal_to(2)) self.workunit.previous_obs() assert_that(self.workunit.get_current_obs_number(), equal_to(1)) self.workunit.previous_obs() assert_that(self.workunit.get_current_obs_number(), equal_to(0)) def test_next_source_resets_obs(self): assert_that(self.workunit.get_current_obs_number(), equal_to(0)) self.workunit.next_obs() assert_that(self.workunit.get_current_obs_number(), equal_to(1)) self.workunit.next_source() assert_that(self.workunit.get_current_obs_number(), equal_to(0)) self.workunit.next_obs() assert_that(self.workunit.get_current_obs_number(), equal_to(1))
class RealsWorkUnitTest(AbstractWorkUnitTest): def get_input_file(self): return "data/1584431p15.measure3.reals.astrom" def setUp(self): super(RealsWorkUnitTest, self).setUp() self.workunit = RealsWorkUnit(self.testfile, self.data, self.progress_manager, self.output_context) self.writer = Mock(spec=MPCWriter) self.workunit.get_writer = Mock(return_value=self.writer) def test_next_vettable_item_no_validation(self): assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(0)) self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(1)) self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(2)) self.workunit.next_item() # Should have looped back to first observation of the same source # because we haven't finished processing it. assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(0)) def test_next_vettable_item_after_validate_last(self): assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(0)) self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(1)) self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(2)) self.workunit.accept_current_item() self.workunit.next_item() # Should have looped back to first observation of the same source # because we haven't finished processing it. assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(0)) self.workunit.accept_current_item() self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(1)) self.workunit.accept_current_item() self.workunit.next_item() # We already validated the last reading, so we should be jumping # straight to the second source now. assert_that(self.workunit.get_current_source_number(), equal_to(1)) assert_that(self.workunit.get_current_obs_number(), equal_to(0)) self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(1)) assert_that(self.workunit.get_current_obs_number(), equal_to(1)) def test_next_vettable_item_jump_over_processed(self): assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(0)) self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(1)) self.workunit.reject_current_item() self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(2)) self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(0)) self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(2)) def test_accept_current_item(self): first_source = self.data.get_sources()[0] first_item = first_source.get_reading(0) second_item = first_source.get_reading(1) assert_that(self.workunit.is_item_processed(first_item), equal_to(False)) assert_that(self.workunit.is_item_processed(second_item), equal_to(False)) self.workunit.accept_current_item() assert_that(self.workunit.is_item_processed(first_item), equal_to(True)) assert_that(self.workunit.is_item_processed(second_item), equal_to(False)) self.workunit.next_item() self.workunit.accept_current_item() assert_that(self.workunit.is_item_processed(first_item), equal_to(True)) assert_that(self.workunit.is_item_processed(second_item), equal_to(True)) def test_reject_current_item(self): first_source = self.data.get_sources()[0] first_item = first_source.get_reading(0) second_item = first_source.get_reading(1) assert_that(self.workunit.is_item_processed(first_item), equal_to(False)) assert_that(self.workunit.is_item_processed(second_item), equal_to(False)) self.workunit.reject_current_item() assert_that(self.workunit.is_item_processed(first_item), equal_to(True)) assert_that(self.workunit.is_item_processed(second_item), equal_to(False)) self.workunit.next_item() self.workunit.reject_current_item() assert_that(self.workunit.is_item_processed(first_item), equal_to(True)) assert_that(self.workunit.is_item_processed(second_item), equal_to(True)) def test_get_current_item_index(self): for index in range(8): assert_that(self.workunit.get_current_item_index(), equal_to(index)) self.workunit.accept_current_item() self.workunit.next_item() assert_that(self.workunit.get_current_item_index(), equal_to(8)) def test_get_unprocessed_sources(self): sources = self.data.get_sources() assert_that(self.workunit.get_unprocessed_sources(), contains_inanyorder(*sources)) self.workunit.accept_current_item() assert_that(self.workunit.get_unprocessed_sources(), contains_inanyorder(*sources)) self.workunit.next_item() self.workunit.accept_current_item() self.workunit.next_item() self.workunit.accept_current_item() assert_that(self.workunit.get_unprocessed_sources(), contains_inanyorder(sources[1], sources[2])) self.workunit.next_item() self.workunit.reject_current_item() self.workunit.next_item() self.workunit.accept_current_item() self.workunit.next_item() self.workunit.accept_current_item() assert_that(self.workunit.get_unprocessed_sources(), contains_inanyorder(sources[2])) self.workunit.next_item() self.workunit.accept_current_item() self.workunit.next_item() self.workunit.accept_current_item() self.workunit.next_item() self.workunit.accept_current_item() assert_that(self.workunit.get_unprocessed_sources(), has_length(0)) def test_finish_workunit_unlocks_file(self): num_items = 9 while num_items > 1: self.workunit.accept_current_item() self.workunit.next_item() num_items -= 1 assert_that(self.progress_manager.unlock.called, equal_to(False)) self.workunit.accept_current_item() self.progress_manager.unlock.assert_called_once_with(self.testfile, do_async=True) def test_flush_only_after_source_finished(self): assert_that(self.writer.flush.called, equal_to(False)) self.workunit.accept_current_item() self.workunit.next_item() assert_that(self.writer.flush.called, equal_to(False)) self.workunit.reject_current_item() self.workunit.next_item() assert_that(self.writer.flush.called, equal_to(False)) self.workunit.accept_current_item() assert_that(self.writer.flush.call_count, equal_to(1)) def test_get_output_filename_dry_run(self): self.workunit = RealsWorkUnit(self.testfile, self.data, self.progress_manager, self.output_context, dry_run=True) source = self.data.get_sources()[0] provisional_name = "ABCD123" source.set_provisional_name(provisional_name) assert_that(self.workunit.get_output_filename(source), equal_to("1584431p15.measure3.reals.astrom.ABCD123.mpc")) def test_get_output_filename_not_dry_run(self): self.workunit = RealsWorkUnit(self.testfile, self.data, self.progress_manager, self.output_context, dry_run=False) source = self.data.get_sources()[0] provisional_name = "ABCD123" source.set_provisional_name(provisional_name) assert_that(self.workunit.get_output_filename(source), equal_to("1584431p15.measure3.reals.astrom.ABCD123.mpc"))
class RealsWorkUnitTest(AbstractWorkUnitTest): def get_input_file(self): return "data/1584431p15.measure3.reals.astrom" def setUp(self): super(RealsWorkUnitTest, self).setUp() self.workunit = RealsWorkUnit(self.testfile, self.data, self.progress_manager, self.output_context) self.writer = Mock(spec=MPCWriter) self.workunit.get_writer = Mock(return_value=self.writer) def test_next_vettable_item_no_validation(self): assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(0)) self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(1)) self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(2)) self.workunit.next_item() # Should have looped back to first observation of the same source # because we haven't finished processing it. assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(0)) def test_next_vettable_item_after_validate_last(self): assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(0)) self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(1)) self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(2)) self.workunit.accept_current_item() self.workunit.next_item() # Should have looped back to first observation of the same source # because we haven't finished processing it. assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(0)) self.workunit.accept_current_item() self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(1)) self.workunit.accept_current_item() self.workunit.next_item() # We already validated the last reading, so we should be jumping # straight to the second source now. assert_that(self.workunit.get_current_source_number(), equal_to(1)) assert_that(self.workunit.get_current_obs_number(), equal_to(0)) self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(1)) assert_that(self.workunit.get_current_obs_number(), equal_to(1)) def test_next_vettable_item_jump_over_processed(self): assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(0)) self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(1)) self.workunit.reject_current_item() self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(2)) self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(0)) self.workunit.next_item() assert_that(self.workunit.get_current_source_number(), equal_to(0)) assert_that(self.workunit.get_current_obs_number(), equal_to(2)) def test_accept_current_item(self): first_source = self.data.get_sources()[0] first_item = first_source.get_reading(0) second_item = first_source.get_reading(1) assert_that(self.workunit.is_item_processed(first_item), equal_to(False)) assert_that(self.workunit.is_item_processed(second_item), equal_to(False)) self.workunit.accept_current_item() assert_that(self.workunit.is_item_processed(first_item), equal_to(True)) assert_that(self.workunit.is_item_processed(second_item), equal_to(False)) self.workunit.next_item() self.workunit.accept_current_item() assert_that(self.workunit.is_item_processed(first_item), equal_to(True)) assert_that(self.workunit.is_item_processed(second_item), equal_to(True)) def test_reject_current_item(self): first_source = self.data.get_sources()[0] first_item = first_source.get_reading(0) second_item = first_source.get_reading(1) assert_that(self.workunit.is_item_processed(first_item), equal_to(False)) assert_that(self.workunit.is_item_processed(second_item), equal_to(False)) self.workunit.reject_current_item() assert_that(self.workunit.is_item_processed(first_item), equal_to(True)) assert_that(self.workunit.is_item_processed(second_item), equal_to(False)) self.workunit.next_item() self.workunit.reject_current_item() assert_that(self.workunit.is_item_processed(first_item), equal_to(True)) assert_that(self.workunit.is_item_processed(second_item), equal_to(True)) def test_get_current_item_index(self): for index in range(8): assert_that(self.workunit.get_current_item_index(), equal_to(index)) self.workunit.accept_current_item() self.workunit.next_item() assert_that(self.workunit.get_current_item_index(), equal_to(8)) def test_get_unprocessed_sources(self): sources = self.data.get_sources() assert_that(self.workunit.get_unprocessed_sources(), contains_inanyorder(*sources)) self.workunit.accept_current_item() assert_that(self.workunit.get_unprocessed_sources(), contains_inanyorder(*sources)) self.workunit.next_item() self.workunit.accept_current_item() self.workunit.next_item() self.workunit.accept_current_item() assert_that(self.workunit.get_unprocessed_sources(), contains_inanyorder(sources[1], sources[2])) self.workunit.next_item() self.workunit.reject_current_item() self.workunit.next_item() self.workunit.accept_current_item() self.workunit.next_item() self.workunit.accept_current_item() assert_that(self.workunit.get_unprocessed_sources(), contains_inanyorder(sources[2])) self.workunit.next_item() self.workunit.accept_current_item() self.workunit.next_item() self.workunit.accept_current_item() self.workunit.next_item() self.workunit.accept_current_item() assert_that(self.workunit.get_unprocessed_sources(), has_length(0)) def test_finish_workunit_unlocks_file(self): num_items = 9 while num_items > 1: self.workunit.accept_current_item() self.workunit.next_item() num_items -= 1 assert_that(self.progress_manager.unlock.called, equal_to(False)) self.workunit.accept_current_item() self.progress_manager.unlock.assert_called_once_with( self.testfile, async=True) def test_flush_only_after_source_finished(self): assert_that(self.writer.flush.called, equal_to(False)) self.workunit.accept_current_item() self.workunit.next_item() assert_that(self.writer.flush.called, equal_to(False)) self.workunit.reject_current_item() self.workunit.next_item() assert_that(self.writer.flush.called, equal_to(False)) self.workunit.accept_current_item() assert_that(self.writer.flush.call_count, equal_to(1)) def test_get_output_filename_dry_run(self): self.workunit = RealsWorkUnit(self.testfile, self.data, self.progress_manager, self.output_context, dry_run=True) source = self.data.get_sources()[0] provisional_name = "ABCD123" source.set_provisional_name(provisional_name) assert_that(self.workunit.get_output_filename(source), equal_to("1584431p15.measure3.reals.astrom.ABCD123.mpc")) def test_get_output_filename_not_dry_run(self): self.workunit = RealsWorkUnit(self.testfile, self.data, self.progress_manager, self.output_context, dry_run=False) source = self.data.get_sources()[0] provisional_name = "ABCD123" source.set_provisional_name(provisional_name) assert_that(self.workunit.get_output_filename(source), equal_to("1584431p15.measure3.reals.astrom.ABCD123.mpc"))