Merge pull request #11353 from mvdbeek/metadataspec_fix

[21.01] Return None on unknown metadata attribute access
This commit is contained in:
Marius van den Beek
2021-02-12 16:56:02 +01:00
committed by GitHub
2 changed files with 8 additions and 1 deletions
+2 -1
View File
@@ -113,7 +113,8 @@ class MetadataCollection(Mapping):
return self.spec[name].wrap(self.spec[name].default, object_session(self.parent))
if name in self.parent._metadata:
return self.parent._metadata[name]
raise AttributeError
# Instead of raising an AttributeError for non-existing metadata, we return None
return None
def __setattr__(self, name, value):
if name == "parent":
+6
View File
@@ -379,6 +379,12 @@ class MappingTests(BaseModelTestCase):
assert hist1.name == "History 2b"
# gvk TODO need to ad test for GalaxySessions, but not yet sure what they should look like.
def test_metadata_spec(self):
metadata = dict(chromCol=1, startCol=2, endCol=3)
d = self.model.HistoryDatasetAssociation(extension="interval", metadata=metadata, sa_session=self.model.session)
assert d.metadata.chromCol == 1
assert d.metadata.anyAttribute is None
def test_jobs(self):
model = self.model
u = model.User(email="jobtest@foo.bar.baz", password="password")