Fixes Python client Configuration class so each instance uses its own dicts (#4485)

This commit is contained in:
Justin Black 2019-11-16 16:49:19 -08:00 committed by William Cheng
parent 2b36383308
commit a1a9e70fe4
8 changed files with 85 additions and 114 deletions

View File

@ -3,4 +3,5 @@
./bin/python-asyncio-petstore.sh
./bin/python-petstore.sh
./bin/python-experimental-petstore.sh
./bin/python-tornado-petstore.sh

View File

@ -4,7 +4,6 @@
from __future__ import absolute_import
import copy
import logging
{{^asyncio}}
import multiprocessing
@ -16,21 +15,7 @@ import six
from six.moves import http_client as httplib
class TypeWithDefault(type):
def __init__(cls, name, bases, dct):
super(TypeWithDefault, cls).__init__(name, bases, dct)
cls._default = None
def __call__(cls, **kwargs):
if cls._default is None:
cls._default = type.__call__(cls, **kwargs)
return copy.copy(cls._default)
def set_default(cls, default):
cls._default = copy.copy(default)
class Configuration(six.with_metaclass(TypeWithDefault, object)):
class Configuration(object):
"""NOTE: This class is auto generated by OpenAPI Generator
Ref: https://openapi-generator.tech
@ -44,7 +29,7 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
"""
def __init__(self, host="{{{basePath}}}",
api_key={}, api_key_prefix={},
api_key=None, api_key_prefix=None,
username="", password=""):
"""Constructor
"""
@ -55,9 +40,13 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
"""Temp file folder for downloading files
"""
# Authentication Settings
self.api_key = {}
if api_key:
self.api_key = api_key
"""dict to store API key(s)
"""
self.api_key_prefix = {}
if api_key_prefix:
self.api_key_prefix = api_key_prefix
"""dict to store API prefix (e.g. Bearer)
"""

View File

@ -12,7 +12,6 @@
from __future__ import absolute_import
import copy
import logging
import sys
import urllib3
@ -21,21 +20,7 @@ import six
from six.moves import http_client as httplib
class TypeWithDefault(type):
def __init__(cls, name, bases, dct):
super(TypeWithDefault, cls).__init__(name, bases, dct)
cls._default = None
def __call__(cls, **kwargs):
if cls._default is None:
cls._default = type.__call__(cls, **kwargs)
return copy.copy(cls._default)
def set_default(cls, default):
cls._default = copy.copy(default)
class Configuration(six.with_metaclass(TypeWithDefault, object)):
class Configuration(object):
"""NOTE: This class is auto generated by OpenAPI Generator
Ref: https://openapi-generator.tech
@ -49,7 +34,7 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
"""
def __init__(self, host="http://petstore.swagger.io:80/v2",
api_key={}, api_key_prefix={},
api_key=None, api_key_prefix=None,
username="", password=""):
"""Constructor
"""
@ -60,9 +45,13 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
"""Temp file folder for downloading files
"""
# Authentication Settings
self.api_key = {}
if api_key:
self.api_key = api_key
"""dict to store API key(s)
"""
self.api_key_prefix = {}
if api_key_prefix:
self.api_key_prefix = api_key_prefix
"""dict to store API prefix (e.g. Bearer)
"""

View File

@ -12,7 +12,6 @@
from __future__ import absolute_import
import copy
import logging
import multiprocessing
import sys
@ -22,21 +21,7 @@ import six
from six.moves import http_client as httplib
class TypeWithDefault(type):
def __init__(cls, name, bases, dct):
super(TypeWithDefault, cls).__init__(name, bases, dct)
cls._default = None
def __call__(cls, **kwargs):
if cls._default is None:
cls._default = type.__call__(cls, **kwargs)
return copy.copy(cls._default)
def set_default(cls, default):
cls._default = copy.copy(default)
class Configuration(six.with_metaclass(TypeWithDefault, object)):
class Configuration(object):
"""NOTE: This class is auto generated by OpenAPI Generator
Ref: https://openapi-generator.tech
@ -50,7 +35,7 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
"""
def __init__(self, host="http://petstore.swagger.io:80/v2",
api_key={}, api_key_prefix={},
api_key=None, api_key_prefix=None,
username="", password=""):
"""Constructor
"""
@ -61,9 +46,13 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
"""Temp file folder for downloading files
"""
# Authentication Settings
self.api_key = {}
if api_key:
self.api_key = api_key
"""dict to store API key(s)
"""
self.api_key_prefix = {}
if api_key_prefix:
self.api_key_prefix = api_key_prefix
"""dict to store API prefix (e.g. Bearer)
"""

View File

@ -12,7 +12,6 @@
from __future__ import absolute_import
import copy
import logging
import multiprocessing
import sys
@ -22,21 +21,7 @@ import six
from six.moves import http_client as httplib
class TypeWithDefault(type):
def __init__(cls, name, bases, dct):
super(TypeWithDefault, cls).__init__(name, bases, dct)
cls._default = None
def __call__(cls, **kwargs):
if cls._default is None:
cls._default = type.__call__(cls, **kwargs)
return copy.copy(cls._default)
def set_default(cls, default):
cls._default = copy.copy(default)
class Configuration(six.with_metaclass(TypeWithDefault, object)):
class Configuration(object):
"""NOTE: This class is auto generated by OpenAPI Generator
Ref: https://openapi-generator.tech
@ -50,7 +35,7 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
"""
def __init__(self, host="http://petstore.swagger.io:80/v2",
api_key={}, api_key_prefix={},
api_key=None, api_key_prefix=None,
username="", password=""):
"""Constructor
"""
@ -61,9 +46,13 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
"""Temp file folder for downloading files
"""
# Authentication Settings
self.api_key = {}
if api_key:
self.api_key = api_key
"""dict to store API key(s)
"""
self.api_key_prefix = {}
if api_key_prefix:
self.api_key_prefix = api_key_prefix
"""dict to store API prefix (e.g. Bearer)
"""

View File

@ -12,7 +12,6 @@
from __future__ import absolute_import
import copy
import logging
import multiprocessing
import sys
@ -22,21 +21,7 @@ import six
from six.moves import http_client as httplib
class TypeWithDefault(type):
def __init__(cls, name, bases, dct):
super(TypeWithDefault, cls).__init__(name, bases, dct)
cls._default = None
def __call__(cls, **kwargs):
if cls._default is None:
cls._default = type.__call__(cls, **kwargs)
return copy.copy(cls._default)
def set_default(cls, default):
cls._default = copy.copy(default)
class Configuration(six.with_metaclass(TypeWithDefault, object)):
class Configuration(object):
"""NOTE: This class is auto generated by OpenAPI Generator
Ref: https://openapi-generator.tech
@ -50,7 +35,7 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
"""
def __init__(self, host="http://petstore.swagger.io:80/v2",
api_key={}, api_key_prefix={},
api_key=None, api_key_prefix=None,
username="", password=""):
"""Constructor
"""
@ -61,9 +46,13 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
"""Temp file folder for downloading files
"""
# Authentication Settings
self.api_key = {}
if api_key:
self.api_key = api_key
"""dict to store API key(s)
"""
self.api_key_prefix = {}
if api_key_prefix:
self.api_key_prefix = api_key_prefix
"""dict to store API prefix (e.g. Bearer)
"""

View File

@ -0,0 +1,36 @@
# coding: utf-8
# flake8: noqa
"""
Run the tests.
$ pip install nose (optional)
$ cd petstore_api-python
$ nosetests -v
"""
from __future__ import absolute_import
import unittest
import petstore_api
class TestConfiguration(unittest.TestCase):
"""Animal unit test stubs"""
def setUp(self):
pass
def tearDown(self):
pass
def testConfiguration(self):
# check that different instances use different dictionaries
c1 = petstore_api.Configuration()
c2 = petstore_api.Configuration()
assert id(c1.api_key) != id(c2.api_key)
assert id(c1.api_key_prefix) != id(c2.api_key_prefix)
if __name__ == '__main__':
unittest.main()

View File

@ -12,7 +12,6 @@
from __future__ import absolute_import
import copy
import logging
import multiprocessing
import sys
@ -22,21 +21,7 @@ import six
from six.moves import http_client as httplib
class TypeWithDefault(type):
def __init__(cls, name, bases, dct):
super(TypeWithDefault, cls).__init__(name, bases, dct)
cls._default = None
def __call__(cls, **kwargs):
if cls._default is None:
cls._default = type.__call__(cls, **kwargs)
return copy.copy(cls._default)
def set_default(cls, default):
cls._default = copy.copy(default)
class Configuration(six.with_metaclass(TypeWithDefault, object)):
class Configuration(object):
"""NOTE: This class is auto generated by OpenAPI Generator
Ref: https://openapi-generator.tech
@ -50,7 +35,7 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
"""
def __init__(self, host="http://petstore.swagger.io:80/v2",
api_key={}, api_key_prefix={},
api_key=None, api_key_prefix=None,
username="", password=""):
"""Constructor
"""
@ -61,9 +46,13 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
"""Temp file folder for downloading files
"""
# Authentication Settings
self.api_key = {}
if api_key:
self.api_key = api_key
"""dict to store API key(s)
"""
self.api_key_prefix = {}
if api_key_prefix:
self.api_key_prefix = api_key_prefix
"""dict to store API prefix (e.g. Bearer)
"""