Skip to content

Commit

Permalink
Enhance testing of GroupSpec.is_overridden_spec
Browse files Browse the repository at this point in the history
  • Loading branch information
oruebel committed Feb 6, 2025
1 parent 8cdf451 commit 8586fe2
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions tests/unit/spec_tests/test_group_spec.py
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,52 @@ def test_is_inherited_attribute(self):
with self.assertRaisesWith(ValueError, "Attribute 'attribute4' not found"):
self.inc_group_spec.is_inherited_attribute('attribute4')

def test_is_overridden_spec_nested(self):
"""Test that is_overridden_spec correctly identifies overridden specs in nested structures."""
# Create base spec with a dataset containing an attribute
base_dataset = DatasetSpec('Base dataset',
'int',
name='test_dataset',
attributes=[AttributeSpec('attr1', 'Base attr', 'text')])
base_group = GroupSpec('Base group',
name='test_group',
attributes=[AttributeSpec('attr1', 'Base attr', 'text')])
base_spec = GroupSpec('A base group',
data_type_def='BaseType',
datasets=[base_dataset],
groups=[base_group])

# Create extending spec that overrides both dataset and group with new attribute values
override_dataset = DatasetSpec('Override dataset',
'int',
name='test_dataset',
attributes=[AttributeSpec('attr1', 'Override attr', 'text')])
override_group = GroupSpec('Override group',
name='test_group',
attributes=[AttributeSpec('attr1', 'Override attr', 'text')])
ext_spec = GroupSpec('An extending group',
data_type_inc='BaseType',
data_type_def='ExtType',
datasets=[override_dataset],
groups=[override_group])

# Resolve the extension
ext_spec.resolve_spec(base_spec)

# Test attribute in overridden dataset is marked as overridden
dataset_attr = ext_spec.get_dataset('test_dataset').get_attribute('attr1')
self.assertTrue(ext_spec.is_overridden_spec(dataset_attr))

# Test attribute in overridden group is marked as overridden
group_attr = ext_spec.get_group('test_group').get_attribute('attr1')
self.assertTrue(ext_spec.is_overridden_spec(group_attr))

# Test attributes in base spec are not marked as overridden
base_dataset_attr = base_spec.get_dataset('test_dataset').get_attribute('attr1')
base_group_attr = base_spec.get_group('test_group').get_attribute('attr1')
self.assertFalse(base_spec.is_overridden_spec(base_dataset_attr))
self.assertFalse(base_spec.is_overridden_spec(base_group_attr))

def test_is_overridden_group(self):
"""Test that is_overridden_group correctly identifies overridden groups."""
# Create base spec with a group
Expand Down

0 comments on commit 8586fe2

Please sign in to comment.