예제 #1
0
 def test_rename_file_group(self):
     with copy_of_directory(assets.path_to('kant_aufklaerung_1784-page-region-line-word_glyph/data')) as tempdir:
         workspace = Workspace(self.resolver, directory=tempdir)
         with pushd_popd(tempdir):
             pcgts_before = page_from_file(next(workspace.mets.find_files(ID='OCR-D-GT-SEG-WORD_0001')))
             assert pcgts_before.get_Page().imageFilename == 'OCR-D-IMG/OCR-D-IMG_0001.tif'
             # from os import system
             # print(system('find'))
             workspace.rename_file_group('OCR-D-IMG', 'FOOBAR')
             # print(system('find'))
             pcgts_after = page_from_file(next(workspace.mets.find_files(ID='OCR-D-GT-SEG-WORD_0001')))
             assert pcgts_after.get_Page().imageFilename == 'FOOBAR/OCR-D-IMG_0001.tif'
             assert Path('FOOBAR/OCR-D-IMG_0001.tif').exists()
             assert not Path('OCR-D-IMG/OCR-D-IMG_0001.tif').exists()
예제 #2
0
def test_rename_file_group(tmp_path):
    # arrange
    copytree(
        assets.path_to(
            'kant_aufklaerung_1784-page-region-line-word_glyph/data'),
        str(tmp_path))
    workspace = Workspace(Resolver(), directory=str(tmp_path))

    # before act
    # TODO clear semantics
    # requires rather odd additional path-setting because root path from
    # workspace is not propagated - works only if called inside workspace
    # which can be achieved with pushd_popd functionalities
    ocrd_file = next(workspace.mets.find_files(ID='OCR-D-GT-SEG-WORD_0001'))
    relative_name = ocrd_file.local_filename
    ocrd_file.local_filename = join(tmp_path, relative_name)
    pcgts_before = page_from_file(ocrd_file)
    # before assert
    assert pcgts_before.get_Page(
    ).imageFilename == 'OCR-D-IMG/OCR-D-IMG_0001.tif'

    # act
    workspace.rename_file_group('OCR-D-IMG', 'FOOBAR')
    next_ocrd_file = next(
        workspace.mets.find_files(ID='OCR-D-GT-SEG-WORD_0001'))
    next_ocrd_file.local_filename = join(tmp_path, relative_name)
    pcgts_after = page_from_file(next_ocrd_file)

    # assert
    assert pcgts_after.get_Page().imageFilename == 'FOOBAR/FOOBAR_0001.tif'
    assert Path(tmp_path / 'FOOBAR/FOOBAR_0001.tif').exists()
    assert not Path('OCR-D-IMG/OCR-D-IMG_0001.tif').exists()
    assert workspace.mets.get_physical_pages(
        for_fileIds=['OCR-D-IMG_0001']) == [None]
    assert workspace.mets.get_physical_pages(for_fileIds=['FOOBAR_0001']) == [
        'phys_0001'
    ]