Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_get_spec_source_file(self):
spikes_spec = GroupSpec('test group',
namespace='core',
data_type_def='SpikeData')
source_file_path = '/test/myt/test.yaml'
self.catalog.auto_register(spikes_spec, source_file_path)
recorded_source_file_path = self.catalog.get_spec_source_file('SpikeData')
self.assertEqual(recorded_source_file_path, source_file_path)
def setUpBarSpec(self):
self.bar_spec = GroupSpec('A test group specification with a data type',
data_type_def='Bar',
groups=[GroupSpec('an example group', data_type_def='Foo')],
attributes=[AttributeSpec('attr1', 'an example string attribute', 'str'),
AttributeSpec('attr2', 'an example integer attribute', 'int')])
def setUp(self):
self.bar_spec = GroupSpec('A test group specification with a data type',
data_type_def='Bar',
datasets=[DatasetSpec('an example dataset', 'int', name='data',
attributes=[AttributeSpec(
'attr2', 'an example integer attribute', 'int')])],
attributes=[AttributeSpec('attr1', 'an example string attribute', 'str')])
self.spec_catalog = SpecCatalog()
self.spec_catalog.register_spec(self.bar_spec, 'test.yaml')
self.namespace = SpecNamespace('a test namespace', CORE_NAMESPACE,
[{'source': 'test.yaml'}], catalog=self.spec_catalog)
self.namespace_catalog = NamespaceCatalog()
self.namespace_catalog.add_namespace(CORE_NAMESPACE, self.namespace)
self.type_map = TypeMap(self.namespace_catalog)
self.type_map.register_container_type(CORE_NAMESPACE, 'Bar', Bar)
self.type_map.register_map(Bar, ObjectMapper)
self.manager = BuildManager(self.type_map)
self.mapper = ObjectMapper(self.bar_spec)
def getSpecs(self):
bar = GroupSpec('A test group specification with a data type',
data_type_def='Bar',
datasets=[DatasetSpec('an example dataset', 'int', name='data',
attributes=[AttributeSpec('attr2', 'an example integer attribute',
'int')])],
attributes=[AttributeSpec('attr1', text('an example string attribute'), 'text')])
foo = GroupSpec('A test group that contains a data type',
data_type_def='Foo',
groups=[GroupSpec('A Bar group for Foos', name='my_bar', data_type_inc='Bar')],
attributes=[AttributeSpec('foo_attr', 'a string attribute specified as text', 'text',
required=False)])
return (bar, foo)
def getSpecs(self):
bar = GroupSpec('A test group specification with a data type',
data_type_def='Bar',
datasets=[DatasetSpec('an example dataset', 'int', name='data',
attributes=[AttributeSpec('attr2', 'an example integer attribute',
'int')])],
attributes=[AttributeSpec('attr1', text('an example string attribute'), 'text')])
foo = GroupSpec('A test group that contains a data type',
data_type_def='Foo',
groups=[GroupSpec('A Bar group for Foos', name='my_bar', data_type_inc='Bar')],
attributes=[AttributeSpec('foo_attr', 'a string attribute specified as text', 'text',
required=False)])
return (bar, foo)
def setUpBarSpec(self):
self.bar_spec = GroupSpec('A test group specification with a data type',
data_type_def='Bar',
datasets=[DatasetSpec('an example dataset', 'int', name='data')],
attributes=[AttributeSpec('attr1', 'an example string attribute', 'str'),
AttributeSpec('attr2', 'an example integer attribute', 'int')])
def test_dynamic_container_constructor(self):
baz_spec = GroupSpec('A test extension with no Container class',
data_type_def='Baz', data_type_inc=self.bar_spec,
attributes=[AttributeSpec('attr3', 'an example float attribute', 'float'),
AttributeSpec('attr4', 'another example float attribute', 'float')])
self.spec_catalog.register_spec(baz_spec, 'extension.yaml')
cls = self.type_map.get_container_cls(CORE_NAMESPACE, 'Baz')
# TODO: test that constructor works!
inst = cls('My Baz', [1, 2, 3, 4], 'string attribute', 1000, attr3=98.6, attr4=1.0)
self.assertEqual(inst.name, 'My Baz')
self.assertEqual(inst.data, [1, 2, 3, 4])
self.assertEqual(inst.attr1, 'string attribute')
self.assertEqual(inst.attr2, 1000)
self.assertEqual(inst.attr3, 98.6)
self.assertEqual(inst.attr4, 1.0)
def test_datatype_extension_groupspec(self):
'''Test to make sure DatasetSpec catches when a GroupSpec used as data_type_inc'''
base = GroupSpec('a fake grop',
namespace='core',
data_type_def='EphysData')
with self.assertRaises(TypeError):
ext = DatasetSpec('my first dataset extension', # noqa: F841
'int',
name='dataset1',
namespace='core',
data_type_inc=base,
data_type_def='SpikeData')
def setUp(self):
self.bar_spec = GroupSpec('A test group specification with a data type', data_type_def='Bar')
self.foo_spec = GroupSpec('A test group specification with data type Foo', data_type_def='Foo')
self.spec_catalog = SpecCatalog()
self.spec_catalog.register_spec(self.bar_spec, 'test.yaml')
self.spec_catalog.register_spec(self.foo_spec, 'test.yaml')
self.namespace = SpecNamespace('a test namespace', CORE_NAMESPACE, [{'source': 'test.yaml'}],
catalog=self.spec_catalog)
self.namespace_catalog = NamespaceCatalog()
self.namespace_catalog.add_namespace(CORE_NAMESPACE, self.namespace)
self.type_map = TypeMap(self.namespace_catalog)
self.type_map.register_container_type(CORE_NAMESPACE, 'Bar', Bar)
self.type_map.register_container_type(CORE_NAMESPACE, 'Foo', Foo)
# self.build_manager = BuildManager(self.type_map)
def test_get_subspec_named(self):
child_spec = GroupSpec('A test group specification with a data type', 'my_subgroup')
parent_spec = GroupSpec('Something to hold a Bar', 'my_group', groups=[child_spec])
sub_builder = GroupBuilder('my_subgroup', attributes={'data_type': 'Bar', 'namespace': CORE_NAMESPACE})
builder = GroupBuilder('my_group', groups={'my_bar': sub_builder}) # noqa: F841
result = self.type_map.get_subspec(parent_spec, sub_builder)
self.assertIs(result, child_spec)