Пример #1
0
 def setUp(self):
     self.remote_directory = "vos:drusk/OSSOS/tests"
     self.remote_context = VOSpaceWorkingContext(self.remote_directory)
     self.sync_manager = SynchronizationManager(self.remote_context)
Пример #2
0
class SynchronizationManagerTest(unittest.TestCase):
    def setUp(self):
        self.remote_directory = "vos:drusk/OSSOS/tests"
        self.remote_context = VOSpaceWorkingContext(self.remote_directory)
        self.sync_manager = SynchronizationManager(self.remote_context)

    def test_get_remote_uri(self):
        assert_that(self.sync_manager.get_remote_uri(FILE1),
                    equal_to("vos:drusk/OSSOS/tests/123.measure3.mpc"))

    @patch("threading.Thread")
    def test_added_file_synced_immediately_when_sync_enabled(self, ThreadMock):
        self.sync_manager.enable_sync()
        self.sync_manager.add_syncable_file(FILE1)

        ThreadMock.assert_called_once_with(
            target=self.sync_manager.do_synchronize, args=(FILE1, ))

        assert_that(self.sync_manager.syncable_files, has_length(0))

    @patch("threading.Thread")
    def test_add_files_not_synced_until_sync_enabled(self, ThreadMock):
        self.sync_manager.disable_sync()
        self.sync_manager.add_syncable_file(FILE1)
        self.sync_manager.add_syncable_file(FILE2)
        self.sync_manager.add_syncable_file(FILE3)

        assert_that(self.sync_manager.syncable_files,
                    contains(FILE1, FILE2, FILE3))
        assert_that(ThreadMock.call_count, equal_to(0))

        self.sync_manager.enable_sync()

        expected_calls = [
            call(target=self.sync_manager.do_synchronize, args=(FILE1, )),
            call(target=self.sync_manager.do_synchronize, args=(FILE2, )),
            call(target=self.sync_manager.do_synchronize, args=(FILE3, ))
        ]

        assert_that(ThreadMock.call_args_list, contains(*expected_calls))

        assert_that(self.sync_manager.syncable_files, has_length(0))

    @patch("daomop.gui.sync.storage")
    def test_do_synchronize_copies_correct_paths(self, storage_mock):
        self.sync_manager.do_synchronize(FILE1)
        storage_mock.copy.assert_called_once_with(
            FILE1, "vos:drusk/OSSOS/tests/123.measure3.mpc")
Пример #3
0
 def setUp(self):
     self.remote_directory = "vos:drusk/OSSOS/tests"
     self.remote_context = VOSpaceWorkingContext(self.remote_directory)
     self.sync_manager = SynchronizationManager(self.remote_context)
Пример #4
0
    def __init__(self,
                 working_directory,
                 output_directory,
                 dry_run=False,
                 debug=False,
                 name_filter=None,
                 user_id=None):
        self.dry_run = dry_run
        self.user_id = user_id
        logger.info("Input directory set to: %s" % working_directory)
        logger.info("Output directory set to: %s" % output_directory)

        working_context = context.get_context(working_directory,
                                              userid=self.user_id)
        output_context = context.get_context(output_directory,
                                             userid=self.user_id)

        if dry_run and working_context.is_remote():
            sys.stdout.write("A dry run can only be done on local files.\n")
            sys.exit(0)

        if output_context.is_remote():
            sys.stdout.write("The output directory must be local.\n")
            sys.exit(0)

        image_manager = self._create_image_manager()

        progress_manager = working_context.get_progress_manager()
        builder = self._create_workunit_builder(working_context,
                                                output_context,
                                                progress_manager)

        workunit_provider = WorkUnitProvider(
            self.input_suffix,
            working_context,
            progress_manager,
            builder,
            randomize=self.should_randomize_workunits,
            name_filter=name_filter)

        prefetching_workunit_provider = PreFetchingWorkUnitProvider(
            workunit_provider, config.read("PREFETCH.NUMBER"), image_manager)

        if working_context.is_remote():
            synchronization_manager = SynchronizationManager(working_context,
                                                             sync_enabled=True)
        else:
            synchronization_manager = None

        model = TransAckValidationModel(prefetching_workunit_provider,
                                        image_manager, synchronization_manager)
        logger.debug("Created model.")

        view = self._create_view(model, debug=debug)

        logger.debug("Created view.")
        model.start_work()

        self.model = model
        self.view = view
        self.controller = view.controller

        self.controller.display_current_image()

        if not synchronization_manager:
            self.view.disable_sync_menu()

        self.view.show()
Пример #5
0
class SynchronizationManagerTest(unittest.TestCase):
    def setUp(self):
        self.remote_directory = "vos:drusk/OSSOS/tests"
        self.remote_context = VOSpaceWorkingContext(self.remote_directory)
        self.sync_manager = SynchronizationManager(self.remote_context)

    def test_get_remote_uri(self):
        assert_that(self.sync_manager.get_remote_uri(FILE1),
                    equal_to("vos:drusk/OSSOS/tests/123.measure3.mpc"))

    @patch("threading.Thread")
    def test_added_file_synced_immediately_when_sync_enabled(self, ThreadMock):
        self.sync_manager.enable_sync()
        self.sync_manager.add_syncable_file(FILE1)

        ThreadMock.assert_called_once_with(
            target=self.sync_manager.do_synchronize,
            args=(FILE1, ))

        assert_that(self.sync_manager.syncable_files, has_length(0))

    @patch("threading.Thread")
    def test_add_files_not_synced_until_sync_enabled(self, ThreadMock):
        self.sync_manager.disable_sync()
        self.sync_manager.add_syncable_file(FILE1)
        self.sync_manager.add_syncable_file(FILE2)
        self.sync_manager.add_syncable_file(FILE3)

        assert_that(self.sync_manager.syncable_files,
                    contains(FILE1, FILE2, FILE3))
        assert_that(ThreadMock.call_count, equal_to(0))

        self.sync_manager.enable_sync()

        expected_calls = [
            call(target=self.sync_manager.do_synchronize, args=(FILE1, )),
            call(target=self.sync_manager.do_synchronize, args=(FILE2, )),
            call(target=self.sync_manager.do_synchronize, args=(FILE3, ))]

        assert_that(ThreadMock.call_args_list, contains(*expected_calls))

        assert_that(self.sync_manager.syncable_files, has_length(0))

    @patch("ossos.gui.sync.storage")
    def test_do_synchronize_copies_correct_paths(self, storage_mock):
        self.sync_manager.do_synchronize(FILE1)
        storage_mock.copy.assert_called_once_with(
            FILE1, "vos:drusk/OSSOS/tests/123.measure3.mpc")