Skip to content

Commit 312937c

Browse files
committed
[property] Change name handling on init
name can now be none on init. If no name was provided on init, id is used as name value.
1 parent 45a0d3e commit 312937c

2 files changed

Lines changed: 17 additions & 1 deletion

File tree

odml/property.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class BaseProperty(base.BaseObject):
1313
"""An odML Property"""
1414
_format = frmt.Property
1515

16-
def __init__(self, name, value=None, parent=None, unit=None,
16+
def __init__(self, name=None, value=None, parent=None, unit=None,
1717
uncertainty=None, reference=None, definition=None,
1818
dependency=None, dependency_value=None, dtype=None,
1919
value_origin=None, id=None):
@@ -58,6 +58,11 @@ def __init__(self, name, value=None, parent=None, unit=None,
5858
print(e)
5959
self._id = str(uuid.uuid4())
6060

61+
# Use id if no name was provided.
62+
if not name:
63+
name = self._id
64+
65+
self._name = name
6166
self._parent = None
6267
self._name = name
6368
self._value_origin = value_origin

test/test_property.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,17 @@ def test_str_to_int_convert(self):
327327
assert(p.dtype == 'string')
328328
assert(p.value == ['7', '20', '1 Dog', 'Seven'])
329329

330+
def test_name(self):
331+
# Test id is used when name is not provided
332+
p = Property()
333+
self.assertIsNotNone(p.name)
334+
self.assertEqual(p.name, p.id)
335+
336+
# Test name is properly set on init
337+
name = "rumpelstilzchen"
338+
p = Property(name)
339+
self.assertEqual(p.name, name)
340+
330341
def test_parent(self):
331342
p = Property("property_section", parent=Section("S"))
332343
self.assertIsInstance(p.parent, BaseSection)

0 commit comments

Comments
 (0)