# coding: utf-8 # flake8: noqa """ Run the tests. $ pip install nose (optional) $ cd OpenAPIPetstore-python $ nosetests -v """ import os import time import unittest import datetime import petstore_api class DeserializationTests(unittest.TestCase): def setUp(self): self.api_client = petstore_api.ApiClient() self.deserialize = self.api_client._ApiClient__deserialize def test_enum_test(self): """ deserialize dict(str, Enum_Test) """ data = { 'enum_test': { "enum_string": "UPPER", "enum_string_required": "lower", "enum_integer": 1, "enum_number": 1.1, "outerEnum": "placed" } } deserialized = self.deserialize(data, 'dict(str, EnumTest)') self.assertTrue(isinstance(deserialized, dict)) self.assertTrue(isinstance(deserialized['enum_test'], petstore_api.EnumTest)) self.assertEqual(deserialized['enum_test'], petstore_api.EnumTest(enum_string="UPPER", enum_string_required="lower", enum_integer=1, enum_number=1.1, outer_enum=petstore_api.OuterEnum.PLACED)) def test_deserialize_dict_str_pet(self): """ deserialize dict(str, Pet) """ data = { 'pet': { "id": 0, "category": { "id": 0, "name": "string" }, "name": "doggie", "photoUrls": [ "string" ], "tags": [ { "id": 0, "name": "string" } ], "status": "available" } } deserialized = self.deserialize(data, 'dict(str, Pet)') self.assertTrue(isinstance(deserialized, dict)) self.assertTrue(isinstance(deserialized['pet'], petstore_api.Pet)) def test_deserialize_dict_str_dog(self): """ deserialize dict(str, Dog), use discriminator""" data = { 'dog': { "id": 0, "className": "Dog", "color": "white", "bread": "Jack Russel Terrier" } } deserialized = self.deserialize(data, 'dict(str, Animal)') self.assertTrue(isinstance(deserialized, dict)) self.assertTrue(isinstance(deserialized['dog'], petstore_api.Dog)) def test_deserialize_dict_str_int(self): """ deserialize dict(str, int) """ data = { 'integer': 1 } deserialized = self.deserialize(data, 'dict(str, int)') self.assertTrue(isinstance(deserialized, dict)) self.assertTrue(isinstance(deserialized['integer'], int)) def test_deserialize_str(self): """ deserialize str """ data = "test str" deserialized = self.deserialize(data, "str") self.assertTrue(isinstance(deserialized, str)) def test_deserialize_date(self): """ deserialize date """ data = "1997-07-16" deserialized = self.deserialize(data, "date") self.assertTrue(isinstance(deserialized, datetime.date)) def test_deserialize_datetime(self): """ deserialize datetime """ data = "1997-07-16T19:20:30.45+01:00" deserialized = self.deserialize(data, "datetime") self.assertTrue(isinstance(deserialized, datetime.datetime)) def test_deserialize_pet(self): """ deserialize pet """ data = { "id": 0, "category": { "id": 0, "name": "string" }, "name": "doggie", "photoUrls": [ "string" ], "tags": [ { "id": 0, "name": "string" } ], "status": "available" } deserialized = self.deserialize(data, "Pet") self.assertTrue(isinstance(deserialized, petstore_api.Pet)) self.assertEqual(deserialized.id, 0) self.assertEqual(deserialized.name, "doggie") self.assertTrue(isinstance(deserialized.category, petstore_api.Category)) self.assertEqual(deserialized.category.name, "string") self.assertTrue(isinstance(deserialized.tags, list)) self.assertEqual(deserialized.tags[0].name, "string") def test_deserialize_list_of_pet(self): """ deserialize list[Pet] """ data = [ { "id": 0, "category": { "id": 0, "name": "string" }, "name": "doggie0", "photoUrls": [ "string" ], "tags": [ { "id": 0, "name": "string" } ], "status": "available" }, { "id": 1, "category": { "id": 0, "name": "string" }, "name": "doggie1", "photoUrls": [ "string" ], "tags": [ { "id": 0, "name": "string" } ], "status": "available" }] deserialized = self.deserialize(data, "list[Pet]") self.assertTrue(isinstance(deserialized, list)) self.assertTrue(isinstance(deserialized[0], petstore_api.Pet)) self.assertEqual(deserialized[0].id, 0) self.assertEqual(deserialized[1].id, 1) self.assertEqual(deserialized[0].name, "doggie0") self.assertEqual(deserialized[1].name, "doggie1") def test_deserialize_nested_dict(self): """ deserialize dict(str, dict(str, int)) """ data = { "foo": { "bar": 1 } } deserialized = self.deserialize(data, "dict(str, dict(str, int))") self.assertTrue(isinstance(deserialized, dict)) self.assertTrue(isinstance(deserialized["foo"], dict)) self.assertTrue(isinstance(deserialized["foo"]["bar"], int)) def test_deserialize_nested_list(self): """ deserialize list[list[str]] """ data = [["foo"]] deserialized = self.deserialize(data, "list[list[str]]") self.assertTrue(isinstance(deserialized, list)) self.assertTrue(isinstance(deserialized[0], list)) self.assertTrue(isinstance(deserialized[0][0], str)) def test_deserialize_none(self): """ deserialize None """ deserialized = self.deserialize(None, "datetime") self.assertIsNone(deserialized)