def test_remove_file_group_rmdir(self): with copy_of_directory( assets.path_to('SBB0000F29300010000/data')) as tempdir: workspace = Workspace(self.resolver, directory=tempdir) self.assertTrue(exists(join(tempdir, 'OCR-D-IMG'))) workspace.remove_file_group('OCR-D-IMG', recursive=True) self.assertFalse(exists(join(tempdir, 'OCR-D-IMG')))
def test_workspace_remove_groups_unforce(workspace_directory): """Remove groups by pattern recursive""" # arrange original_data = ET.parse(os.path.join(workspace_directory, 'mets.xml')).getroot() alto_groups = original_data.findall( './/{http://www.loc.gov/METS/}fileGrp[@USE="OCR-D-GT-ALTO"]') assert len(alto_groups) == 1 altos = alto_groups[0].findall('.//{http://www.loc.gov/METS/}file') assert len(altos) == 2 # act resolver = Resolver() workspace = Workspace(resolver, workspace_directory) workspace.remove_file_group('//OCR-D-GT.*', recursive=True) workspace.save_mets() # assert written_data = ET.parse(os.path.join(workspace_directory, 'mets.xml')).getroot() assert written_data is not None groups_new = written_data.findall( './/{http://www.loc.gov/METS/}fileGrp[@USE="OCR-D-GT-ALTO"]') assert not groups_new
def test_remove_file_group_force(self): with copy_of_directory( assets.path_to('SBB0000F29300010000/data')) as tempdir: workspace = Workspace(self.resolver, directory=tempdir) with self.assertRaisesRegex(Exception, "No such fileGrp"): # raise error unless force workspace.remove_file_group('I DO NOT EXIST') # no error workspace.remove_file_group('I DO NOT EXIST', force=True)
def test_workspace_remove_group_not_found(workspace_directory): """Group identified by name not found raises exception""" resolver = Resolver() workspace = Workspace(resolver, workspace_directory) with pytest.raises(Exception) as exc: workspace.remove_file_group('FOO-BAR') assert "No such fileGrp" in str(exc)
def test_workspace_remove_single_group_recursive(workspace_directory): """Remove single group recursive by name succeeds""" # arrange resolver = Resolver() workspace = Workspace(resolver, workspace_directory) files = workspace.mets.find_files(fileGrp='OCR-D-GT-ALTO') assert len(files) == 2 # act workspace.remove_file_group('OCR-D-GT-ALTO', recursive=True) # assert files = workspace.mets.find_files(fileGrp='OCR-D-GT-ALTO') assert len(files) == 0
def test_remove_file_group_force(self): with copy_of_directory(assets.path_to('SBB0000F29300010000/data')) as tempdir: workspace = Workspace(self.resolver, directory=tempdir) with self.assertRaisesRegex(Exception, "No such fileGrp"): # should fail workspace.remove_file_group('I DO NOT EXIST') # should succeed workspace.remove_file_group('I DO NOT EXIST', force=True) # should also succeed workspace.overwrite_mode = True workspace.remove_file_group('I DO NOT EXIST', force=False)