Skip to content

Commit

Permalink
update test
Browse files Browse the repository at this point in the history
  • Loading branch information
cutoffthetop committed Jan 29, 2025
1 parent 429e895 commit 047764a
Show file tree
Hide file tree
Showing 15 changed files with 23 additions and 190 deletions.
4 changes: 2 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changes

- BREAKING: reduce Filter classes to a single list field of `FilterField` items

### Deprecated

### Removed

### Fixed

- reduce Filter classes to a single list field of `FilterField` items

### Security

## [0.49.0] - 2025-01-29
Expand Down
2 changes: 1 addition & 1 deletion mex/common/models/access_platform.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,4 +207,4 @@ class AccessPlatformFilter(_Stem, BaseFilter):
entityType: Annotated[
Literal["AccessPlatformFilter"], Field(alias="$type", frozen=True)
] = "AccessPlatformFilter"
fields: list[FilterField] = []
fields: Annotated[list[FilterField], Field(title="fields")] = []
2 changes: 1 addition & 1 deletion mex/common/models/activity.py
Original file line number Diff line number Diff line change
Expand Up @@ -240,4 +240,4 @@ class ActivityFilter(_Stem, BaseFilter):
entityType: Annotated[
Literal["ActivityFilter"], Field(alias="$type", frozen=True)
] = "ActivityFilter"
fields: list[FilterField] = []
fields: Annotated[list[FilterField], Field(title="fields")] = []
2 changes: 1 addition & 1 deletion mex/common/models/bibliographic_resource.py
Original file line number Diff line number Diff line change
Expand Up @@ -374,4 +374,4 @@ class BibliographicResourceFilter(_Stem, BaseFilter):
entityType: Annotated[
Literal["BibliographicResourceFilter"], Field(alias="$type", frozen=True)
] = "BibliographicResourceFilter"
fields: list[FilterField] = []
fields: Annotated[list[FilterField], Field(title="fields")] = []
2 changes: 1 addition & 1 deletion mex/common/models/consent.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,4 +173,4 @@ class ConsentFilter(_Stem, BaseFilter):
entityType: Annotated[
Literal["ConsentFilter"], Field(alias="$type", frozen=True)
] = "ConsentFilter"
fields: list[FilterField] = []
fields: Annotated[list[FilterField], Field(title="fields")] = []
2 changes: 1 addition & 1 deletion mex/common/models/contact_point.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,4 +147,4 @@ class ContactPointFilter(_Stem, BaseFilter):
entityType: Annotated[
Literal["ContactPointFilter"], Field(alias="$type", frozen=True)
] = "ContactPointFilter"
fields: list[FilterField] = []
fields: Annotated[list[FilterField], Field(title="fields")] = []
12 changes: 1 addition & 11 deletions mex/common/models/distribution.py
Original file line number Diff line number Diff line change
Expand Up @@ -218,14 +218,4 @@ class DistributionFilter(_Stem, BaseFilter):
entityType: Annotated[
Literal["DistributionFilter"], Field(alias="$type", frozen=True)
] = "DistributionFilter"
hadPrimarySource: list[FilterField] = []
identifierInPrimarySource: list[FilterField] = []
accessRestriction: list[FilterField] = []
accessService: list[FilterField] = []
accessURL: list[FilterField] = []
downloadURL: list[FilterField] = []
issued: list[FilterField] = []
license: list[FilterField] = []
mediaType: list[FilterField] = []
modified: list[FilterField] = []
title: list[FilterField] = []
fields: Annotated[list[FilterField], Field(title="fields")] = []
12 changes: 1 addition & 11 deletions mex/common/models/organization.py
Original file line number Diff line number Diff line change
Expand Up @@ -226,14 +226,4 @@ class OrganizationFilter(_Stem, BaseFilter):
entityType: Annotated[
Literal["OrganizationFilter"], Field(alias="$type", frozen=True)
] = "OrganizationFilter"
hadPrimarySource: list[FilterField] = []
identifierInPrimarySource: list[FilterField] = []
alternativeName: list[FilterField] = []
geprisId: list[FilterField] = []
gndId: list[FilterField] = []
isniId: list[FilterField] = []
officialName: list[FilterField] = []
rorId: list[FilterField] = []
shortName: list[FilterField] = []
viafId: list[FilterField] = []
wikidataId: list[FilterField] = []
fields: Annotated[list[FilterField], Field(title="fields")] = []
10 changes: 1 addition & 9 deletions mex/common/models/organizational_unit.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,12 +184,4 @@ class OrganizationalUnitFilter(_Stem, BaseFilter):
entityType: Annotated[
Literal["OrganizationalUnitFilter"], Field(alias="$type", frozen=True)
] = "OrganizationalUnitFilter"
hadPrimarySource: list[FilterField] = []
identifierInPrimarySource: list[FilterField] = []
alternativeName: list[FilterField] = []
email: list[FilterField] = []
name: list[FilterField] = []
parentUnit: list[FilterField] = []
shortName: list[FilterField] = []
unitOf: list[FilterField] = []
website: list[FilterField] = []
fields: Annotated[list[FilterField], Field(title="fields")] = []
11 changes: 1 addition & 10 deletions mex/common/models/person.py
Original file line number Diff line number Diff line change
Expand Up @@ -199,13 +199,4 @@ class PersonFilter(_Stem, BaseFilter):
entityType: Annotated[
Literal["PersonFilter"], Field(alias="$type", frozen=True)
] = "PersonFilter"
hadPrimarySource: list[FilterField] = []
identifierInPrimarySource: list[FilterField] = []
affiliation: list[FilterField] = []
email: list[FilterField] = []
familyName: list[FilterField] = []
fullName: list[FilterField] = []
givenName: list[FilterField] = []
isniId: list[FilterField] = []
memberOf: list[FilterField] = []
orcidId: list[FilterField] = []
fields: Annotated[list[FilterField], Field(title="fields")] = []
11 changes: 1 addition & 10 deletions mex/common/models/primary_source.py
Original file line number Diff line number Diff line change
Expand Up @@ -188,13 +188,4 @@ class PrimarySourceFilter(_Stem, BaseFilter):
entityType: Annotated[
Literal["PrimarySourceFilter"], Field(alias="$type", frozen=True)
] = "PrimarySourceFilter"
hadPrimarySource: list[FilterField] = []
identifierInPrimarySource: list[FilterField] = []
alternativeTitle: list[FilterField] = []
contact: list[FilterField] = []
description: list[FilterField] = []
documentation: list[FilterField] = []
locatedAt: list[FilterField] = []
title: list[FilterField] = []
unitInCharge: list[FilterField] = []
version: list[FilterField] = []
fields: Annotated[list[FilterField], Field(title="fields")] = []
50 changes: 1 addition & 49 deletions mex/common/models/resource.py
Original file line number Diff line number Diff line change
Expand Up @@ -418,52 +418,4 @@ class ResourceFilter(_Stem, BaseFilter):
entityType: Annotated[
Literal["ResourceFilter"], Field(alias="$type", frozen=True)
] = "ResourceFilter"
hadPrimarySource: list[FilterField] = []
identifierInPrimarySource: list[FilterField] = []
accessPlatform: list[FilterField] = []
accessRestriction: list[FilterField] = []
accrualPeriodicity: list[FilterField] = []
alternativeTitle: list[FilterField] = []
anonymizationPseudonymization: list[FilterField] = []
conformsTo: list[FilterField] = []
contact: list[FilterField] = []
contributingUnit: list[FilterField] = []
contributor: list[FilterField] = []
created: list[FilterField] = []
doi: list[FilterField] = []
creator: list[FilterField] = []
description: list[FilterField] = []
distribution: list[FilterField] = []
documentation: list[FilterField] = []
externalPartner: list[FilterField] = []
hasLegalBasis: list[FilterField] = []
hasPersonalData: list[FilterField] = []
icd10code: list[FilterField] = []
instrumentToolOrApparatus: list[FilterField] = []
isPartOf: list[FilterField] = []
keyword: list[FilterField] = []
language: list[FilterField] = []
license: list[FilterField] = []
loincId: list[FilterField] = []
maxTypicalAge: list[FilterField] = []
meshId: list[FilterField] = []
method: list[FilterField] = []
methodDescription: list[FilterField] = []
minTypicalAge: list[FilterField] = []
modified: list[FilterField] = []
populationCoverage: list[FilterField] = []
publication: list[FilterField] = []
publisher: list[FilterField] = []
qualityInformation: list[FilterField] = []
resourceCreationMethod: list[FilterField] = []
resourceTypeGeneral: list[FilterField] = []
resourceTypeSpecific: list[FilterField] = []
rights: list[FilterField] = []
sizeOfDataBasis: list[FilterField] = []
spatial: list[FilterField] = []
stateOfDataProcessing: list[FilterField] = []
temporal: list[FilterField] = []
theme: list[FilterField] = []
title: list[FilterField] = []
unitInCharge: list[FilterField] = []
wasGeneratedBy: list[FilterField] = []
fields: Annotated[list[FilterField], Field(title="fields")] = []
10 changes: 1 addition & 9 deletions mex/common/models/variable.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,12 +209,4 @@ class VariableFilter(_Stem, BaseFilter):
entityType: Annotated[
Literal["VariableFilter"], Field(alias="$type", frozen=True)
] = "VariableFilter"
hadPrimarySource: list[FilterField] = []
identifierInPrimarySource: list[FilterField] = []
belongsTo: list[FilterField] = []
codingSystem: list[FilterField] = []
dataType: list[FilterField] = []
description: list[FilterField] = []
label: list[FilterField] = []
usedIn: list[FilterField] = []
valueSet: list[FilterField] = []
fields: Annotated[list[FilterField], Field(title="fields")] = []
5 changes: 1 addition & 4 deletions mex/common/models/variable_group.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,4 @@ class VariableGroupFilter(_Stem, BaseFilter):
entityType: Annotated[
Literal["VariableGroupFilter"], Field(alias="$type", frozen=True)
] = "VariableGroupFilter"
hadPrimarySource: list[FilterField] = []
identifierInPrimarySource: list[FilterField] = []
containedBy: list[FilterField] = []
label: list[FilterField] = []
fields: Annotated[list[FilterField], Field(title="fields")] = []
78 changes: 8 additions & 70 deletions tests/models/test_filter.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from mex.common.models import (
EXTRACTED_MODEL_CLASSES,
EXTRACTED_MODEL_CLASSES_BY_NAME,
FILTER_MODEL_CLASSES,
FilterField,
PersonFilter,
Expand All @@ -14,27 +13,20 @@ def test_all_filter_classes_are_defined() -> None:

def test_all_filter_fields_are_defined() -> None:
for filter_cls in FILTER_MODEL_CLASSES:
extracted_cls = EXTRACTED_MODEL_CLASSES_BY_NAME[
f"Extracted{filter_cls.stemType}"
]
assert set(filter_cls.model_fields) == set(extracted_cls.model_fields)
field_defs = {
field_name: (field_info.annotation, field_info.default)
for field_name, field_info in filter_cls.model_fields.items()
if field_name != "entityType"
}
assert all(
(annotation, default) == (list[FilterField], [])
for annotation, default in field_defs.values()
)
assert field_defs == {"fields": (list[FilterField], [])}


def test_filter_model_schema() -> None:
assert PersonFilter.model_json_schema() == {
"$defs": {
"FilterField": {
"additionalProperties": False,
"description": "Entity filter field model.",
"description": "Filter definition for one field in the primary source.",
"properties": {
"fieldInPrimarySource": {
"anyOf": [{"type": "string"}, {"type": "null"}],
Expand All @@ -54,10 +46,10 @@ def test_filter_model_schema() -> None:
"default": None,
"title": "examplesInPrimarySource",
},
"mappingRules": {
"filterRules": {
"items": {"$ref": "#/$defs/FilterRule"},
"minItems": 1,
"title": "mappingRules",
"title": "filterRules",
"type": "array",
},
"comment": {
Expand All @@ -66,13 +58,13 @@ def test_filter_model_schema() -> None:
"title": "comment",
},
},
"required": ["mappingRules"],
"required": ["filterRules"],
"title": "FilterField",
"type": "object",
},
"FilterRule": {
"additionalProperties": False,
"description": "Entity filter rule model.",
"description": "A single filter rule to apply.",
"properties": {
"forValues": {
"anyOf": [
Expand Down Expand Up @@ -102,64 +94,10 @@ def test_filter_model_schema() -> None:
"title": "$Type",
"type": "string",
},
"hadPrimarySource": {
"fields": {
"default": [],
"items": {"$ref": "#/$defs/FilterField"},
"title": "Hadprimarysource",
"type": "array",
},
"identifierInPrimarySource": {
"default": [],
"items": {"$ref": "#/$defs/FilterField"},
"title": "Identifierinprimarysource",
"type": "array",
},
"affiliation": {
"default": [],
"items": {"$ref": "#/$defs/FilterField"},
"title": "Affiliation",
"type": "array",
},
"email": {
"default": [],
"items": {"$ref": "#/$defs/FilterField"},
"title": "Email",
"type": "array",
},
"familyName": {
"default": [],
"items": {"$ref": "#/$defs/FilterField"},
"title": "Familyname",
"type": "array",
},
"fullName": {
"default": [],
"items": {"$ref": "#/$defs/FilterField"},
"title": "Fullname",
"type": "array",
},
"givenName": {
"default": [],
"items": {"$ref": "#/$defs/FilterField"},
"title": "Givenname",
"type": "array",
},
"isniId": {
"default": [],
"items": {"$ref": "#/$defs/FilterField"},
"title": "Isniid",
"type": "array",
},
"memberOf": {
"default": [],
"items": {"$ref": "#/$defs/FilterField"},
"title": "Memberof",
"type": "array",
},
"orcidId": {
"default": [],
"items": {"$ref": "#/$defs/FilterField"},
"title": "Orcidid",
"title": "fields",
"type": "array",
},
},
Expand Down

0 comments on commit 047764a

Please sign in to comment.