Changeset View
Changeset View
Standalone View
Standalone View
swh/core/api/tests/test_serializers.py
# Copyright (C) 2015-2018 The Software Heritage developers | # Copyright (C) 2015-2018 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU General Public License version 3, or any later version | # License: GNU General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
import datetime | import datetime | ||||
import json | import json | ||||
import unittest | import unittest | ||||
from uuid import UUID | from uuid import UUID | ||||
import arrow | import arrow | ||||
import requests | |||||
import requests_mock | |||||
from swh.core.api.serializers import ( | from swh.core.api.serializers import ( | ||||
SWHJSONDecoder, | SWHJSONDecoder, | ||||
SWHJSONEncoder, | SWHJSONEncoder, | ||||
msgpack_dumps, | msgpack_dumps, | ||||
msgpack_loads | msgpack_loads, | ||||
decode_response | |||||
) | ) | ||||
class Serializers(unittest.TestCase): | class Serializers(unittest.TestCase): | ||||
def setUp(self): | def setUp(self): | ||||
self.tz = datetime.timezone(datetime.timedelta(minutes=118)) | self.tz = datetime.timezone(datetime.timedelta(minutes=118)) | ||||
self.data = { | self.data = { | ||||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | class Serializers(unittest.TestCase): | ||||
def test_generator_json(self): | def test_generator_json(self): | ||||
data = json.dumps(self.generator, cls=SWHJSONEncoder) | data = json.dumps(self.generator, cls=SWHJSONEncoder) | ||||
self.assertEqual(self.gen_lst, json.loads(data, cls=SWHJSONDecoder)) | self.assertEqual(self.gen_lst, json.loads(data, cls=SWHJSONDecoder)) | ||||
def test_generator_msgpack(self): | def test_generator_msgpack(self): | ||||
data = msgpack_dumps(self.generator) | data = msgpack_dumps(self.generator) | ||||
self.assertEqual(self.gen_lst, msgpack_loads(data)) | self.assertEqual(self.gen_lst, msgpack_loads(data)) | ||||
@requests_mock.Mocker() | |||||
def test_decode_response_json(self, mock_requests): | |||||
mock_requests.get('https://example.org/test/data', | |||||
json=self.encoded_data, | |||||
headers={'content-type': 'application/json'}) | |||||
response = requests.get('https://example.org/test/data') | |||||
assert decode_response(response) == self.data |