From 1ac508bde61afa93b48306bd53e304d5b8edfe2f Mon Sep 17 00:00:00 2001 From: Conrad Rosenbrock <crosenbrock@medic.life> Date: Sat, 22 Jul 2017 11:45:34 -0600 Subject: [PATCH] Addresses #61 for properties with cardinality set. --- goblin/abc.py | 8 ++++++-- tests/test_properties.py | 5 ++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/goblin/abc.py b/goblin/abc.py index a6a20de..cc24c9c 100644 --- a/goblin/abc.py +++ b/goblin/abc.py @@ -57,6 +57,7 @@ class DataType(abc.ABC): return val def validate_vertex_prop(self, val, card, vertex_prop, data_type): + from .element import VertexProperty if card == Cardinality.list_: if isinstance(val, list): val = val @@ -80,8 +81,11 @@ class DataType(abc.ABC): val = set([val]) vertex_props = set([]) for v in val: - vp = vertex_prop(data_type, card=card) - vp.value = self.validate(v) + if not isinstance(v, VertexProperty): + vp = vertex_prop(data_type, card=card) + vp.value = self.validate(v) + else: + vp = v vertex_props.add(vp) val = manager.SetVertexPropertyManager( data_type, vertex_prop, card, vertex_props) diff --git a/tests/test_properties.py b/tests/test_properties.py index 10d546a..bb7a620 100644 --- a/tests/test_properties.py +++ b/tests/test_properties.py @@ -141,7 +141,10 @@ def test_set_change_set_card_vertex_property(place): with pytest.raises(exception.ValidationError): place.important_numbers.add('dude') - +def test_set_card_union(place): + place.important_numbers = set([1, 2, 3]) + place.important_numbers = place.important_numbers.union({3, 4, 5}) + def test_set_card_validation_vertex_property(place): with pytest.raises(exception.ValidationError): place.important_numbers = set(['hello', 2, 3]) -- GitLab