def test_draft_version_metadata_computed(draft_version: Version): original_metadata = {'schemaVersion': settings.DANDI_SCHEMA_VERSION} draft_version.metadata = original_metadata # Save the version to add computed properties to the metadata draft_version.save() expected_metadata = { **original_metadata, 'manifestLocation': [ f'{settings.DANDI_API_URL}/api/dandisets/{draft_version.dandiset.identifier}/versions/draft/assets/' # noqa: E501 ], 'name': draft_version.name, 'identifier': f'DANDI:{draft_version.dandiset.identifier}', 'version': draft_version.version, 'id': f'DANDI:{draft_version.dandiset.identifier}/{draft_version.version}', 'url': ( f'{settings.DANDI_WEB_APP_URL}/dandiset/' f'{draft_version.dandiset.identifier}/{draft_version.version}' ), 'repository': settings.DANDI_WEB_APP_URL, 'dateCreated': draft_version.dandiset.created.isoformat(), '@context': f'https://raw.githubusercontent.com/dandi/schema/master/releases/{settings.DANDI_SCHEMA_VERSION}/context.json', # noqa: E501 'assetsSummary': { 'numberOfBytes': 0, 'numberOfFiles': 0, 'schemaKey': 'AssetsSummary', }, } expected_metadata['citation'] = draft_version.citation(expected_metadata) assert draft_version.metadata == expected_metadata
def test_published_version_metadata_computed(published_version: Version): original_metadata = {'schemaVersion': settings.DANDI_SCHEMA_VERSION} published_version.metadata = original_metadata # Save the version to add computed properties to the metadata published_version.save() expected_metadata = { **original_metadata, 'manifestLocation': [ ( f'http://{settings.MINIO_STORAGE_ENDPOINT}/test-dandiapi-dandisets' f'/test-prefix/dandisets/{published_version.dandiset.identifier}' f'/{published_version.version}/assets.yaml' ) ], 'name': published_version.name, 'identifier': f'DANDI:{published_version.dandiset.identifier}', 'version': published_version.version, 'id': f'DANDI:{published_version.dandiset.identifier}/{published_version.version}', 'doi': f'10.80507/dandi.{published_version.dandiset.identifier}/{published_version.version}', # noqa: E501 'url': ( f'{settings.DANDI_WEB_APP_URL}/dandiset/' f'{published_version.dandiset.identifier}/{published_version.version}' ), 'repository': settings.DANDI_WEB_APP_URL, 'dateCreated': published_version.dandiset.created.isoformat(), '@context': f'https://raw.githubusercontent.com/dandi/schema/master/releases/{settings.DANDI_SCHEMA_VERSION}/context.json', # noqa: E501 'assetsSummary': { 'numberOfBytes': 0, 'numberOfFiles': 0, 'schemaKey': 'AssetsSummary', }, } expected_metadata['citation'] = published_version.citation(expected_metadata) assert published_version.metadata == expected_metadata