def setUp(self): self.remote_directory = "vos:drusk/OSSOS/tests" self.remote_context = VOSpaceWorkingContext(self.remote_directory) self.sync_manager = SynchronizationManager(self.remote_context)
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")
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()
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")