예제 #1
0
    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)
예제 #2
0
    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"))
예제 #3
0
파일: test_workload.py 프로젝트: OSSOS/MOP
    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)
예제 #4
0
 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)))
예제 #5
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))
예제 #6
0
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"))
예제 #7
0
파일: test_workload.py 프로젝트: OSSOS/MOP
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))
예제 #8
0
파일: test_workload.py 프로젝트: OSSOS/MOP
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"))