def test_success_export_then_import_different_users(
            self, mock_config_file):
        inv_manager = InventoryManager(mock_config_file[0])
        ds = inv_manager.create_dataset('unittester', 'unittester',
                                        'unittest-zip', 'gigantum_object_v1')

        with tempfile.TemporaryDirectory() as tempd:
            path = ZipExporter.export_dataset(ds.root_dir, tempd)
            newds = ZipExporter.import_dataset(path, "unittester2",
                                               "unittester2",
                                               mock_config_file[0])
            assert not os.path.exists(path)
            assert 'unittester2' == InventoryManager(
                mock_config_file[0]).query_owner(newds)
            assert newds.is_repo_clean
            assert newds.active_branch == 'master'

            # Now try with same user as exporter
            path2 = ZipExporter.export_dataset(ds.root_dir, tempd)
            shutil.rmtree(ds.root_dir)
            lb2 = ZipExporter.import_dataset(path2, "unittester", "unittester",
                                             mock_config_file[0])
            assert 'unittester' == InventoryManager(
                mock_config_file[0]).query_owner(lb2)
            assert lb2.is_repo_clean
            assert lb2.active_branch == 'master'
Ejemplo n.º 2
0
def export_dataset_as_zip(dataset_path: str, ds_export_directory: str) -> str:
    """Return path to archive file of exported dataset. """
    p = os.getpid()
    logger = LMLogger.get_logger()
    logger.info(f"(Job {p}) Starting export_dataset_as_zip({dataset_path})")

    try:
        ds = InventoryManager().load_dataset_from_directory(dataset_path)
        with ds.lock():
            path = ZipExporter.export_dataset(ds.root_dir, ds_export_directory)
        return path
    except Exception as e:
        logger.exception(f"(Job {p}) Error on export_dataset_as_zip: {e}")
        raise
 def test_fail_export_garbled_export(self):
     # Test giving a path that doesn't exist
     with pytest.raises(ZipWorkflowException):
         ZipExporter.export_dataset('/not/a/real/path', '.')
 def test_fail_export_not_a_dataset(self):
     # Pass in a valid directory, but one that is not an LB
     with pytest.raises(ZipWorkflowException):
         ZipExporter.export_dataset('/var', '.')