From 93b602a0eb4bfa292438c998f258369f060a9ced Mon Sep 17 00:00:00 2001 From: Andrei Bondarenko Date: Wed, 14 Jul 2021 08:41:08 +0200 Subject: [PATCH] Updated types --- state/base.py | 16 +++---- state/devstate.py | 4 +- state/test/test_create_nodevalue.py | 69 ++++------------------------- 3 files changed, 18 insertions(+), 71 deletions(-) diff --git a/state/base.py b/state/base.py index 6a5b28b..8502f12 100644 --- a/state/base.py +++ b/state/base.py @@ -3,13 +3,13 @@ from typing import Any, List, Tuple, Optional, Union import uuid primitive_types = (int, float, str, bool) -INTEGER = {"type": "Integer"} -FLOAT = {"type": "Float"} -STRING = {"type": "String"} -BOOLEAN = {"type": "Boolean"} -TYPE = {"type": "Type"} -NODE = {"type": "Node"} -EDGE = {"type": "Edge"} +INTEGER = ("Integer",) +FLOAT = ("Float",) +STRING = ("String",) +BOOLEAN = ("Boolean",) +TYPE = ("Type",) +NODE = ("Node",) +EDGE = ("Edge",) type_values = (INTEGER, FLOAT, STRING, BOOLEAN, TYPE, NODE, EDGE) @@ -44,7 +44,7 @@ class State(ABC): Returns: True if value type is supported, False otherwise. """ - if isinstance(value, dict) and value in type_values: + if isinstance(value, tuple) and value in type_values: return True if not isinstance(value, primitive_types): return False diff --git a/state/devstate.py b/state/devstate.py index 3fa3971..798d8d9 100644 --- a/state/devstate.py +++ b/state/devstate.py @@ -29,8 +29,8 @@ class DevState(PyState): for n in sorted(self.nodes): if n in self.values: x = self.values[n] - if isinstance(x, dict): - x = f"{x.get('type')}" + if isinstance(x, tuple): + x = f"{x[0]}" else: x = repr(x) f.write("\"a_%s\" [label=\"%s\"];\n" % ( diff --git a/state/test/test_create_nodevalue.py b/state/test/test_create_nodevalue.py index 76bd7b4..23e12b9 100644 --- a/state/test/test_create_nodevalue.py +++ b/state/test/test_create_nodevalue.py @@ -1,4 +1,5 @@ import pytest +from state.base import INTEGER, FLOAT, STRING, BOOLEAN, TYPE, NODE, EDGE @pytest.mark.usefixtures("state") @@ -123,69 +124,15 @@ def test_create_nodevalue_junk(state): @pytest.mark.usefixtures("state") -def test_create_nodevalue_type_type(state): - id1 = state.create_nodevalue({"type": "Type"}) - assert id1 is not None - - v = state.read_value(id1) - assert v == {"type": "Type"} - - -@pytest.mark.usefixtures("state") -def test_create_nodevalue_integer_type(state): - id1 = state.create_nodevalue({"type": "Integer"}) - assert id1 is not None - - v = state.read_value(id1) - assert v == {"type": "Integer"} - - -@pytest.mark.usefixtures("state") -def test_create_nodevalue_float_type(state): - id1 = state.create_nodevalue({"type": "Float"}) - assert id1 is not None - - v = state.read_value(id1) - assert v == {"type": "Float"} - - -@pytest.mark.usefixtures("state") -def test_create_nodevalue_boolean_type(state): - id1 = state.create_nodevalue({"type": "Boolean"}) - assert id1 is not None - - v = state.read_value(id1) - assert v == {"type": "Boolean"} - - -@pytest.mark.usefixtures("state") -def test_create_nodevalue_string_type(state): - id1 = state.create_nodevalue({"type": "String"}) - assert id1 is not None - - v = state.read_value(id1) - assert v == {"type": "String"} - - -@pytest.mark.usefixtures("state") -def test_create_nodevalue_node_type(state): - id1 = state.create_nodevalue({"type": "Node"}) - assert id1 is not None - - v = state.read_value(id1) - assert v == {"type": "Node"} - - -@pytest.mark.usefixtures("state") -def test_create_nodevalue_edge_type(state): - id1 = state.create_nodevalue({"type": "Edge"}) - assert id1 is not None - - v = state.read_value(id1) - assert v == {"type": "Edge"} +def test_create_nodevalue_type(state): + for t in {INTEGER, FLOAT, STRING, BOOLEAN, TYPE, NODE, EDGE}: + id1 = state.create_nodevalue(t) + assert id1 is not None + v = state.read_value(id1) + assert v == t @pytest.mark.usefixtures("state") def test_create_nodevalue_invalid_type(state): - id1 = state.create_nodevalue({"type": "Class"}) + id1 = state.create_nodevalue(("Class",)) assert id1 is None