Skip to content

Commit

Permalink
Merge pull request #4 from ozgurkara/unit-test
Browse files Browse the repository at this point in the history
unit test
  • Loading branch information
ozgurkara authored Dec 12, 2020
2 parents 7f26b89 + 746faa0 commit 62ca985
Show file tree
Hide file tree
Showing 4 changed files with 128 additions and 16 deletions.
6 changes: 6 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -1,2 +1,8 @@
[run]
relative_files = True

[report]
exclude_lines =
pragma: no cover
@abstract
def __init__
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

setuptools.setup(
name="pydiator-core",
version="1.0.3",
version="1.0.4",
author="Özgür Kara",
author_email="ozgurkara85@gmail.com",
description="Pydiator",
Expand Down
92 changes: 77 additions & 15 deletions tests/test_serializer.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
from pydiator_core.serializer import BaseSerializer, SerializerFactory
import datetime
import json
import uuid
from decimal import Decimal
from uuid import UUID

from pydiator_core.interfaces import BaseResponse
from pydiator_core.serializer import Serializer
from tests.base_test_case import BaseTestCase, TestResponse


Expand All @@ -9,27 +16,82 @@ def setUp(self):
def tearDown(self):
pass

def test_serializer_when_set_serializer(self):
def test_dumps_when_type_is_list(self):
# Given
class TestSerializerObj(BaseSerializer):
serializer = Serializer()
obj = [{"name": "1"}, {"name": "2"}]

# When
response = serializer.dumps(obj)

def dumps(self, obj):
return ""
# Then
assert response is not None
assert len(serializer.loads(response)) == 2

def loads(self, obj):
return "test"
def test_dumps_when_type_is_dict(self):
# Given
serializer = Serializer()
obj = {
"name": 1
}

def deserialize(self, obj):
return self.loads(self.dumps(obj))
# When
response = serializer.dumps(obj)

test_serializer = TestSerializerObj()
SerializerFactory.set_serializer(serializer=test_serializer)
# Then
assert response is not None
assert len(serializer.loads(response)) == 1

def test_dumps(self):
# Given
serializer = Serializer()
obj = TestResponse(success=True)

# When
response = serializer.dumps(obj)

# Then
assert response is not None
assert len(serializer.loads(response)) == 1

def test_loads(self):
# Given
serializer = Serializer()
obj = TestResponse(success=True)
dump = serializer.dumps(obj)

# When
response = serializer.loads(dump)

# Then
assert response is not None
assert response["success"]

def test_deserialize(self):
# Given
class TestMixResponse(BaseResponse):
def __init__(self, text: str, success: bool, dec: Decimal, uid: UUID, dt: datetime.datetime):
self.text = text
self.success = success
self.dec = dec
self.uid = uid
self.dt = dt

test_response = TestResponse(True)
time = datetime.datetime.now()
uid = uuid.uuid4()
mix_response = TestMixResponse(text="bla bla",
success=True,
dec=Decimal.from_float(1.123),
uid=uid,
dt=time)

# When
response = test_response.to_json()
response = mix_response.to_json()

# Then
assert response == "test"
assert test_serializer == SerializerFactory.get_serializer()
assert response is not None
assert mix_response.text == response["text"]
assert mix_response.success == response["success"]
assert 1.12 == response["dec"]
assert str(mix_response.uid) == response["uid"]
assert time.isoformat() == str(response["dt"])
44 changes: 44 additions & 0 deletions tests/test_serializer_factory.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
from pydiator_core.serializer import BaseSerializer, SerializerFactory, Serializer
from tests.base_test_case import BaseTestCase, TestResponse


class TestSerializerFactory(BaseTestCase):
def setUp(self):
pass

def tearDown(self):
pass

def test_set_serializer(self):
# Given
class TestSerializerObj(BaseSerializer):

def dumps(self, obj):
return ""

def loads(self, obj):
return "test"

def deserialize(self, obj):
return self.loads(self.dumps(obj))

test_serializer = TestSerializerObj()
SerializerFactory.set_serializer(serializer=test_serializer)

test_response = TestResponse(True)

# When
response = test_response.to_json()

# Then
assert response == "test"
assert test_serializer == SerializerFactory.get_serializer()

def test_serializer_when_does_not_call_set(self):
# Given

# When
current_serializer = SerializerFactory.get_serializer()

# Then
assert isinstance(current_serializer, Serializer)

0 comments on commit 62ca985

Please sign in to comment.