Fixed #9 : I can parse 'def concept'

This commit is contained in:
2023-06-11 09:45:44 +02:00
parent 62391f786e
commit ba397b0b72
22 changed files with 3043 additions and 93 deletions
+12 -7
View File
@@ -1,17 +1,22 @@
import logging
from enum import Enum
import pytest
from base import BaseTest
from common.global_symbols import NoFirstToken, NotFound, NotInit, Removed
from helpers import get_concept, get_concepts
from helpers import get_concepts
from ontologies.SheerkaOntologyManager import SheerkaOntologyManager
from parsers.tokenizer import Keywords
from sheerkapickle import tags
from sheerkapickle.sheerkaplicker import SheerkaPickler
from sheerkapickle.sheerkaunpickler import SheerkaUnpickler
class MyEnum(Enum):
DEF = "def"
WHERE = "where"
class Obj:
def __init__(self, a, b, c):
self.a = a
@@ -47,7 +52,7 @@ class TestSheerkaPickler(BaseTest):
([1, [3.14, "a string"]], [1, [3.14, "a string"]]),
([1, (3.14, "a string")], [1, {tags.TUPLE: [3.14, "a string"]}]),
([], []),
(Keywords.DEF, {tags.ENUM: 'parsers.tokenizer.Keywords.DEF'}),
(MyEnum.DEF, {tags.ENUM: 'tests.sheerkapickle.test_SheerkaPickler.MyEnum.DEF'}),
])
def test_i_can_flatten_and_restore_primitives(self, sheerka, obj, expected):
flatten = SheerkaPickler(sheerka).flatten(obj)
@@ -128,7 +133,7 @@ class TestSheerkaPickler(BaseTest):
@pytest.mark.parametrize("obj, expected", [
({None: "a"}, {'null': "a"}),
({Keywords.DEF: "a"}, {'parsers.tokenizer.Keywords.DEF': 'a'}),
({MyEnum.DEF: "a"}, {'tests.sheerkapickle.test_SheerkaPickler.MyEnum.DEF': 'a'}),
({(1, 2): "a"}, {(1, 2): "a"}),
])
def test_i_can_manage_specific_keys_in_dictionaries(self, sheerka, obj, expected):
@@ -151,15 +156,15 @@ class TestSheerkaPickler(BaseTest):
def test_i_can_manage_references(self, sheerka):
foo = Obj("foo", "bar", "baz")
obj = [Keywords.DEF, foo, Keywords.WHERE, Keywords.DEF, foo]
obj = [MyEnum.DEF, foo, MyEnum.WHERE, MyEnum.DEF, foo]
flatten = SheerkaPickler(sheerka).flatten(obj)
assert flatten == [{'_sheerka/enum': 'parsers.tokenizer.Keywords.DEF'},
assert flatten == [{'_sheerka/enum': 'tests.sheerkapickle.test_SheerkaPickler.MyEnum.DEF'},
{'_sheerka/obj': 'tests.sheerkapickle.test_SheerkaPickler.Obj',
'a': 'foo',
'b': 'bar',
'c': 'baz'},
{'_sheerka/enum': 'parsers.tokenizer.Keywords.WHERE'},
{'_sheerka/enum': 'tests.sheerkapickle.test_SheerkaPickler.MyEnum.WHERE'},
{'_sheerka/id': 0},
{'_sheerka/id': 1}]