53 Commits

Author SHA1 Message Date
Justin Niessner
db5941379f
[Python] Fix Python UTF-8 Encoding Issue (#5679)
* Try decoding but don't bail on error

* Switch binary and ByteArray to bytes

* Read content type and parse appropriately

* Remove response parsing

* Remove response parsing and just return the data

* Update petshop examples w/ new generator code

* Fix copy/paste error with naming

* Update petstore examples

* Move response decoding to inside _preload_content block

* Update the clients again

* Use a raw string for the regex pattern

* Regenerate petstore clients

* Add bytes to python primitives as it's supported in 2.7 and 3

* Add bytes to the exports from model_utils

* Import bytes from model_utils

* Add conditional typing for regex pattern to match variable type

* Regenerate petstore clients

* Use read() instead of text() for asyncio

* Regenerate petstore clients

* Remove unused six import

* Regenerate petstore clients

* Add newline to kick Circle to re-run

* Remove whitespace from tox.ini

* Update more examples after ensure_updated

* Add sample updates that didn't run with the --batch flag

* Remove extra bracket in regex to remove warning

* Stop printing debug messages

* Add bytes examples to python doc generators

* Update generated FakeApi docs

* Regenerate api_client.py

* Remove print statements from generated clients

* Update bytes example in FakeApi.md. Again. I swear.

* Add yet another seemingly missing doc update

* Catch the error, decode the body, and re-throw

* Remove the updates now that the change is non-breaking

* Regenerate client

* Add bytes deserialization test

* Update exception parsing

* Add exception parsing for python-experimental

* Regenerate client with minor changes

* Revert test changes

* Regenerate model_utils.py

* Update confusing test name

* Remove bytes from mapping and examples

* Add back in the old binary/ByteArray to str mapping

* Update docs and api_client template

* Add experimental api_client changes

* Regenerate samples again

* Add Tornado handling to early return

* Try fixing Tornado python returns

* More documentation changes

* Re-generate the client code

* Remove bytes from test_format_test

* Remove more leftover bytes usages

* Switch bytes validation back to string

* Fix format_test template and regenerate

* Remove unused bytes var

* Remove bytes import from models and regenerate

* Remove bytes import from test_deserialization

* Reduce nested ifs

* Remove byte logic for now

* Regenerate client after latest changes

* Remove another bytes usage

* Regenerate after removing dangling byte string usage

* Reduce the scope of the try/catch in api_client

* Regenerate after try/catch cleanup

* Swap catch for except

* Regenerate Python client after api_client change

* Fix lint error on the generated api_client

* Add binary format test back in w/ string

* Add decoding to python-experimental and regenerate

* Import re into python-experimental api_client

* Ensure file upload json response is utf-8 encoded bytes
2020-04-26 13:33:42 -07:00
Tomasz Prus
3f0c163f0c
[python] add method to set/get default configuration (#5315)
* [python] add method to set/get default configuration

* [python] change method name and fix handling api_key

* python: using modified deepcopy to set/get default configuration

* python: update samples

* python: update samples
2020-02-23 14:10:44 -06:00
Fabian von Feilitzsch
15345e1620
[python] Cleanup ThreadPool with atexit rather than __del__ (#5094)
* [python] Cleanup ThreadPool with atexit rather than __del__

This removes the `__del__` function from the generated Python client,
and replaces it with a `cleanup` function. When a ThreadPool is created,
the cleanup function is registered with the `atexit` module.

This fixes #5093, where the API client could hang indefinitely at
garbage collection.

* Update petstore examples

* Test to ensure threadpool is cleaned up

* Docs now encourage using the context manager

* Regenerate docs

* Update samples
2020-01-28 21:58:11 -08:00
Sebastien Rosset
fa0ef2be25 [Python] Conditionally set auth attributes (#4988)
* Enhance python API keys

* Run python scripts under ./bin/openapi3

* fix unit test issue

* Fix unit tests

* Fix unit tests

* Invoke bin scripts
2020-01-16 17:42:23 +08:00
Justin Black
3959530465 [Python] Updates python test framework to pytest (#4765)
* Switches python generators to use pytest, useNose CLI option added if to allow nose to be used instead

* Adds ensure-up-to-date changes

* Adds setup.cfg to python clients so we can configure nose when useNose=true

* Adds fix for python-aiohttp testing, adds files missing from ensure-up-to-date
2019-12-22 14:14:04 +08:00
Justin Black
a1a9e70fe4 Fixes Python client Configuration class so each instance uses its own dicts (#4485) 2019-11-17 08:49:19 +08:00
Arun
c1d5fe0c77 Run all test cases against petstore server (#4150) 2019-10-15 14:54:24 +08:00
Justin Black
539ec23298 [python-client] Add model default values (#1776)
* Adds two models to the v2.0 spec, uses examples as defaults in python client

* Adds array default and type_holder_default and type_holder_example tests

* Re-generated python security client with ./bin/security/python-petstore.sh

* Changes comment text, rebased master

* Updates client + server samples

* Adds missing samples updates

* Changes python client to look for true or false with booleans in toDefaultValue

* Changes boolean casting to use Boolean.valueOf

* Adds deserialization fix for python tests

* Changes Mock to namedtuple in python deserialization tests

* Actually remove unittest.mock
2019-01-09 11:18:35 +08:00
Tomasz Prus
8867d2b34c Support for python 3.7 by renaming async to async_req (#519)
* feat: support for python 3.7

* fix: regenerate other sample clients
2018-07-20 22:14:18 +08:00
Tomasz Prus
96e86ac03e update and fix python samples (#489)
* fix: update petstore samples for python, fix broken tests

* chore: entries for python-asyncio/tornado in gitignore
2018-07-08 15:29:55 +08:00
Tomasz Prus
7184f1ec68 [python] asyncio supports _preload_content; remove unsed imports (#107)
* chore: update python samples

* feat: python/asyncio support for _preload_content

* feat: remove unused imports from python clients; fix discriminator
2018-05-24 08:10:07 -07:00
William Cheng
2ed3d8cc86
Update python test (#426)
* update python test folders

* update python template

* update python samples

* fix python comment too long

* update ruby test case
2018-05-12 09:54:19 +08:00
Tomasz Prus
d74d2ba031 fix: python clients (#136)
* fix: python client

* fix: regenerate petstore samples for python-asyncio/tornado

* fix: python-asyncio tests

* fix: python-tornado tests

* chore: update python samples

* fix: enable tests for python-tornado

* fix: discriminator property

* fix: file type

* python: regenerate samples

* fix: define file as generic type
2018-04-21 11:54:40 +08:00
Tomasz Prus
73cb68ee7b [python] fix tests, tornado ssl fix (#6968)
* fix: non-zero exit code if tests fail

* tests: use local petserver to run tests

* fix: non-zero exit code if tests fail

* tests: use local petserver to run tests

* fix: creating ssl context in old version of Python

* chore: remove unused target from Makefile

* doc: changes from upstream

* fix: tornado client raises NotImplementedError in older version of Python
2017-11-17 17:33:39 +08:00
Kenny Jones
74f70a1924 [python-client] Modify python templates to resolve linting errors (#6839)
The linting results for the generated samples are as follows
where the first number is the BEFORE and the second is AFTER.

pyclient            7714 vs. 120
pyclient3           7717 vs. 120
pyclient3-asyncio   7584 vs. 120
pyclient-tornado    7633 vs. 120
pyclient3-tornado   7633 vs. 120

For the complete details please see the following gist.
https://gist.github.com/kenjones-cisco/2eb69a7e8db75e9fd53789f01570d9f2

Enforces linting for python clients by running flake8 for the generated
python client.
2017-11-02 00:47:14 +08:00
wing328
e1e5ac4d37 Merge remote-tracking branch 'origin/master' into 2.3.0 2017-05-17 22:00:06 +08:00
Cas Perl
a6b7f60ac7 Python improved (#5512)
* ignore .vscode

* fixed test case for models requiring mandatory attributes. added deserialize test for enum class

* construct model with mandatory attributes. improve class reflection (e.g. deserialize). disable generated empty model unit test for further FIXME

* rebuilt samples

* FIXME comment

* FIXME comment

* fix deserialization enum test
2017-05-17 21:18:51 +08:00
wing328
f7cbb2c0e6 Merge remote-tracking branch 'origin/master' into 2.3.0 2017-04-23 15:26:15 +08:00
Cas Perl
122db78b1a Issue 5375 (#5403)
* use py3 instead of py34

* fixed test to test invalid enum

* ADDED: assign variable in the ctor with property setter to check validity if possible. CHANGE: move required property check to proper place. CHANGE: remove double quotes from allowed_values for none-string enum property

* rebuilt samples

* comment for improvement

* ADDED: post process enum model for python.

* comment

* rebuilt samples

* rebuilt samples
2017-04-21 22:05:54 +08:00
baartosz
13cccccb67 fixed error handling in async requests in python client (#5308) 2017-04-06 16:55:53 +08:00
baartosz
8b891be7d7 [Python] remove singleton (#5012)
* updated tests relying on configuration's singleton

* regenerated samples

* removed singleton from templates

* regenerated samples

* removed broken sample and its test

* reverted accidental change

* regenerated security/ samples

* removed singleton from RESTClientObject

* removed unused Configuration import

* reverted unrelated change

* updated usage examples in api_doc template
2017-03-22 22:25:46 +08:00
wing328
58b66a0b0a python code style enhancement (#4238) 2016-11-22 23:01:41 +08:00
mbohlool
876669cd31 [Python] Add support for request timeout (#4173)
* [Python] Add support for request timeout

* Update python petstore api

* [Python] Add test for request timeout
2016-11-11 23:48:53 +08:00
mbohlool
cfd8add825 Add test for _preload_content flag 2016-11-10 14:24:06 -08:00
Bartek Kryza
6d6832e7a6 Fix for #3712 - invalid enum array validation in Python client mustache model (#3713)
* Fixed invalid enum array validation in Python client mustache model

* Updated the Petstore Python client tests

* Removed superfluous array enum test

* Added test cases for Python client array and map enums

* Improved map enum error message
2016-09-12 11:00:49 +08:00
Tao Qian
8818cf9ff4 raise Exception instead of str (#3322) 2016-07-20 20:06:48 +08:00
Jason Gavris
be65a26db0 [Python] Fix flaky test with id collisions 2016-07-18 23:29:17 -04:00
wing328
f7b223e1a9 fix test cases in python 2016-07-06 16:34:09 +08:00
wing328
88ce868bd5 Merge branch 'new_python_with_http_info' of https://github.com/zhenjun115/swagger-codegen into zhenjun115-new_python_with_http_info
Conflicts:
	modules/swagger-codegen/src/main/resources/python/api.mustache
	samples/client/petstore/python/swagger_client/__init__.py
	samples/client/petstore/python/swagger_client/api_client.py
	samples/client/petstore/python/swagger_client/apis/pet_api.py
	samples/client/petstore/python/swagger_client/apis/store_api.py
	samples/client/petstore/python/swagger_client/apis/user_api.py
	samples/client/petstore/python/swagger_client/models/__init__.py
	samples/client/petstore/python/swagger_client/models/name.py
2016-06-20 11:58:35 +08:00
zhenjun115
8180a46a35 add test case for pet api method with http info returned; 2016-06-19 21:44:12 +08:00
zhenjun115
86c8647ace add async method test case for pet api; 2016-06-19 12:31:10 +08:00
Takuro Wada
7916f5243d [Python] Fix bug of test files about packageName 2016-06-08 09:24:12 +09:00
Takuro Wada
955d39f709 [Python] Follow PEP8 rules ( Issue #3041 ) 2016-06-05 23:15:36 +09:00
zhenjun115
67c3f98d96 enable python api client to return just data without http header info when need; 2016-06-04 23:30:10 +08:00
zhenghaitao
bf15c88811 issue2061_fix_DeprecationWarning_in_unit_tests 2016-04-08 15:18:42 +08:00
wing328
b592819e3b add eq for python, update test case 2015-11-24 17:36:38 +08:00
geekerzp
9b148be57e Fix issue in python client.
If upload only file it will not send file content.
2015-09-25 15:10:32 +08:00
geekerzp
568b7a4fcd Add test cases for sanitize_for_serialization method in python client. 2015-08-25 15:04:46 +08:00
geekerzp
2be3414357 Update python client.
Add test case for nested list deserialization.
2015-07-28 15:23:44 +08:00
geekerzp
ea901bf1ce Update python client.
Add test case for nested dict deserialization.
2015-07-28 14:34:50 +08:00
geekerzp
bd6fa6a2e4 Update PetApiTests#test_find_pet_by_tags test case of python client 2015-07-22 15:50:40 +08:00
geekerzp
b9287cf417 Add to_str method in python client and add test cases. 2015-07-22 11:00:51 +08:00
geekerzp
8746f1544b Merge branch 'develop_2.0' into python-enum 2015-07-16 17:27:17 +08:00
geekerzp
f0e09ae33a Add enum support for model property of python client 2015-07-16 17:24:42 +08:00
geekerzp
33561fa159 Support date type in python client 2015-07-16 10:11:27 +08:00
geekerzp
88e5860d9b support asynchronous request in python client 2015-07-15 15:25:31 +08:00
geekerzp
23dfac0194 Update deserialization of python client.
Return None if deserialize data is None.
2015-07-14 09:39:19 +08:00
geekerzp
b99f006861 Update Python client.
Throw ApiException if fail to parse string to datetime.
2015-07-14 09:39:19 +08:00
geekerzp
80d1deb2dd Update unit tests of Python client.
Add more test cases for deserialization.
2015-07-14 09:39:19 +08:00
geekerzp
2912ee8ae1 Update deserialize response of Python client. 2015-07-14 09:39:18 +08:00