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