def test_store_and_retrieve_item_metadata(tmp_dir_fixture): # NOQA from dtoolcore.storagebroker import DiskStorageBroker destination_path = os.path.join(tmp_dir_fixture, 'my_proto_dataset') storagebroker = DiskStorageBroker(destination_path) storagebroker.create_structure() handle = 'dummy' # Here we add two set of metadata with different keys storagebroker.add_item_metadata(handle=handle, key='foo', value='bar') storagebroker.add_item_metadata(handle=handle, key='key', value={ 'subkey': 'subval', 'morekey': 'moreval' }) # Test metadata retrieval (we get back both sets of metadata) metadata = storagebroker.get_item_metadata(handle) assert metadata == { 'foo': 'bar', 'key': { 'subkey': 'subval', 'morekey': 'moreval' } }
def test_post_freeze_hook(tmp_dir_fixture): # NOQA from dtoolcore.storagebroker import DiskStorageBroker destination_path = os.path.join(tmp_dir_fixture, 'my_proto_dataset') storagebroker = DiskStorageBroker(destination_path) storagebroker.create_structure() # The below should not raise an OSError because the .dtool/tmp_fragments # directory has not been created. storagebroker.post_freeze_hook() handle = 'dummy' storagebroker.add_item_metadata(handle, key='foo', value='bar') assert os.path.isdir(storagebroker._metadata_fragments_abspath) storagebroker.post_freeze_hook() assert not os.path.isdir(storagebroker._metadata_fragments_abspath)