1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- import subprocess
- import tempfile
- import unittest
- from dataladmetadatamodel.datasettree import DatasetTree
- from dataladmetadatamodel.metadatapath import MetadataPath
- from dataladmetadatamodel.uuidset import (
- UUIDSet,
- VersionList,
- )
- from dataladmetadatamodel.versionlist import VersionRecord
- from .utils import (
- assert_uuid_sets_equal,
- create_dataset_tree,
- get_uuid
- )
- uuid_0 = get_uuid(0)
- uuid_1 = get_uuid(1)
- uuid_2 = get_uuid(2)
- class TestUUIDSet(unittest.TestCase):
- def test_basic(self):
- UUIDSet()
- def test_copy_from_memory(self):
- with \
- tempfile.TemporaryDirectory() as original_dir, \
- tempfile.TemporaryDirectory() as copy_dir:
- subprocess.run(["git", "init", original_dir])
- subprocess.run(["git", "init", copy_dir])
- uuid_set = UUIDSet(initial_set={
- uuid_0: VersionList(initial_set={
- "v0": VersionRecord(
- "1.2",
- MetadataPath("path0"),
- create_dataset_tree()
- )
- }),
- uuid_1: VersionList(initial_set={
- "v0.0": VersionRecord(
- "1.3",
- MetadataPath("path0.0"),
- create_dataset_tree()
- )
- })
- })
- copied_uuid_set = uuid_set.deepcopy(new_destination=copy_dir)
- copied_uuid_set.read_in()
- assert_uuid_sets_equal(self, uuid_set, copied_uuid_set)
- def test_copy_from_backend(self):
- with \
- tempfile.TemporaryDirectory() as original_dir, \
- tempfile.TemporaryDirectory() as copy_dir:
- subprocess.run(["git", "init", original_dir])
- subprocess.run(["git", "init", copy_dir])
- uuid_set = UUIDSet(initial_set={
- uuid_0: VersionList(initial_set={
- "v0": VersionRecord(
- "1.2",
- MetadataPath("path0"),
- create_dataset_tree()
- )
- }),
- uuid_1: VersionList(initial_set={
- "v0.0": VersionRecord(
- "1.3",
- MetadataPath("path0.0"),
- create_dataset_tree()
- )
- })
- })
- uuid_set.write_out(original_dir)
- uuid_set_copy = uuid_set.deepcopy(new_destination=copy_dir)
- # assert that the purged uuid-sets are equal
- uuid_set.purge()
- assert_uuid_sets_equal(self, uuid_set, uuid_set_copy)
- # load both and compare the uuid set level
- uuid_set.read_in()
- uuid_set_copy.read_in()
- assert_uuid_sets_equal(self, uuid_set, uuid_set_copy)
- if __name__ == '__main__':
- unittest.main()
|