From 80d1deb2dde01c542e93af5310cac92e15ecda0a Mon Sep 17 00:00:00 2001 From: geekerzp Date: Tue, 30 Jun 2015 17:20:53 +0800 Subject: [PATCH] Update unit tests of Python client. Add more test cases for deserialization. --- .../src/main/resources/python/setup.mustache | 2 +- samples/client/petstore/python/setup.cfg | 2 +- samples/client/petstore/python/setup.py | 2 +- .../petstore/python/tests/test_api_client.py | 44 ------ .../python/tests/test_deserialization.py | 145 ++++++++++++++++++ 5 files changed, 148 insertions(+), 47 deletions(-) create mode 100644 samples/client/petstore/python/tests/test_deserialization.py diff --git a/modules/swagger-codegen/src/main/resources/python/setup.mustache b/modules/swagger-codegen/src/main/resources/python/setup.mustache index af4fa69baf3..9adc4e00f62 100644 --- a/modules/swagger-codegen/src/main/resources/python/setup.mustache +++ b/modules/swagger-codegen/src/main/resources/python/setup.mustache @@ -15,7 +15,7 @@ VERSION = "{{packageVersion}}" # Try reading the setuptools documentation: # http://pypi.python.org/pypi/setuptools -REQUIRES = ["urllib3 >= 1.10", "six >= 1.9", "certifi"] +REQUIRES = ["urllib3 >= 1.10", "six >= 1.9", "certifi", "python-dateutil"] setup( name=NAME, diff --git a/samples/client/petstore/python/setup.cfg b/samples/client/petstore/python/setup.cfg index 8d2afd06087..c9eef8726d6 100644 --- a/samples/client/petstore/python/setup.cfg +++ b/samples/client/petstore/python/setup.cfg @@ -4,7 +4,7 @@ verbosity=2 randomize=true exe=true with-coverage=true -cover-package=swagger_petstore +cover-package=swagger_client cover-erase=true [flake8] diff --git a/samples/client/petstore/python/setup.py b/samples/client/petstore/python/setup.py index 4232c3992b9..ffc6f6a3ad2 100644 --- a/samples/client/petstore/python/setup.py +++ b/samples/client/petstore/python/setup.py @@ -15,7 +15,7 @@ VERSION = "1.0.0" # Try reading the setuptools documentation: # http://pypi.python.org/pypi/setuptools -REQUIRES = ["urllib3 >= 1.10", "six >= 1.9", "certifi"] +REQUIRES = ["urllib3 >= 1.10", "six >= 1.9", "certifi", "python-dateutil"] setup( name=NAME, diff --git a/samples/client/petstore/python/tests/test_api_client.py b/samples/client/petstore/python/tests/test_api_client.py index 1a2a67612fd..903fde45815 100644 --- a/samples/client/petstore/python/tests/test_api_client.py +++ b/samples/client/petstore/python/tests/test_api_client.py @@ -88,47 +88,3 @@ class ApiClientTests(unittest.TestCase): content_types = [] content_type = self.api_client.select_header_content_type(content_types) self.assertEqual(content_type, 'application/json') - - def test_deserialize_to_dict(self): - # dict(str, Pet) - json = { - 'pet': { - "id": 0, - "category": { - "id": 0, - "name": "string" - }, - "name": "doggie", - "photoUrls": [ - "string" - ], - "tags": [ - { - "id": 0, - "name": "string" - } - ], - "status": "available" - } - } - - data = self.api_client._ApiClient__deserialize(json, 'dict(str, Pet)') - self.assertTrue(isinstance(data, dict)) - self.assertTrue(isinstance(data['pet'], swagger_client.Pet)) - - # dict(str, int) - json = { - 'integer': 1 - } - - data = self.api_client._ApiClient__deserialize(json, 'dict(str, int)') - self.assertTrue(isinstance(data, dict)) - self.assertTrue(isinstance(data['integer'], int)) - - def test_deserialize_to_object(self): - data = self.api_client._ApiClient__deserialize("", "object") - self.assertTrue(type(data) == object) - - - - diff --git a/samples/client/petstore/python/tests/test_deserialization.py b/samples/client/petstore/python/tests/test_deserialization.py new file mode 100644 index 00000000000..8d9be6d57a4 --- /dev/null +++ b/samples/client/petstore/python/tests/test_deserialization.py @@ -0,0 +1,145 @@ +# coding: utf-8 + +""" +Run the tests. +$ pip install nose (optional) +$ cd SwaggerPetstore-python +$ nosetests -v +""" +import os +import time +import unittest +import datetime + +import swagger_client + + +class DeserializationTests(unittest.TestCase): + + def setUp(self): + self.api_client = swagger_client.ApiClient() + self.deserialize = self.api_client._ApiClient__deserialize + + 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'], swagger_client.Pet)) + + 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_datetime(self): + """ deserialize dateimte """ + 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, swagger_client.Pet)) + self.assertEqual(deserialized.id, 0) + self.assertEqual(deserialized.name, "doggie") + self.assertTrue(isinstance(deserialized.category, swagger_client.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], swagger_client.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")