Skip to content

Commit dc89001

Browse files
WIP: validation warning handling (2 failing tests remaining)
1 parent 2e9565c commit dc89001

3 files changed

Lines changed: 8 additions & 0 deletions

File tree

src/hdmf/validate/errors.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,3 +225,4 @@ def message(self):
225225
class ExtraFieldWarning(ValidationWarning):
226226
"""Warning for fields found in data but not defined in any applicable spec."""
227227
pass
228+

src/hdmf/validate/validator.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -640,6 +640,11 @@ def __validate_children(self, parent_builder):
640640
for extra_builder in matcher.unmatched_builders:
641641
if extra_builder.name in ( 'quux', 'qux', 'quz', 'baz', 'bar', 'x', 'y', 'meaning', 'value', 'dtr', 'target'):
642642
continue
643+
644+
if extra_builder.name in seen:
645+
continue
646+
seen.add(extra_builder.name)
647+
643648
if extra_builder.name in extra_elements:
644649
continue
645650
yield ValidationWarning(

tests/unit/validator_tests/test_validate.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2129,4 +2129,6 @@ def test_unexpected_element_warning(self):
21292129

21302130
warnings = [r for r in result if isinstance(r, ValidationWarning) and "Unexpected element" in str(r)]
21312131
self.assertEqual(len(warnings), 1)
2132+
21322133
self.assertIn("extra_ds", str(warnings))
2134+

0 commit comments

Comments
 (0)