Update unit tests of Python client.

Add more test cases for deserialization.
This commit is contained in:
geekerzp 2015-06-30 17:20:53 +08:00
parent 2912ee8ae1
commit 80d1deb2dd
5 changed files with 148 additions and 47 deletions

View File

@ -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,

View File

@ -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]

View File

@ -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,

View File

@ -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)

View File

@ -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")