@typespec/http-client-python 0.9.1 → 0.9.2-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/emitter/run-python3.js +1 -1
- package/emitter/src/run-python3.ts +1 -1
- package/emitter/temp/tsconfig.tsbuildinfo +1 -1
- package/eng/scripts/Build-Packages.ps1 +7 -5
- package/eng/scripts/ci/format.ts +1 -1
- package/eng/scripts/ci/mypy.ini +1 -1
- package/eng/scripts/ci/pylintrc +1 -1
- package/eng/scripts/ci/pyrightconfig.json +1 -1
- package/eng/scripts/ci/run-ci.ts +1 -0
- package/eng/scripts/ci/run_pylint.py +1 -1
- package/eng/scripts/ci/utils.ts +5 -3
- package/eng/scripts/setup/__pycache__/{venvtools.cpython-38.pyc → venvtools.cpython-39.pyc} +0 -0
- package/eng/scripts/setup/build_pygen_wheel.py +3 -3
- package/eng/scripts/setup/install.py +2 -2
- package/eng/scripts/setup/prepare.py +2 -2
- package/generator/build/lib/pygen/codegen/__init__.py +0 -1
- package/generator/build/lib/pygen/codegen/_utils.py +1 -1
- package/generator/build/lib/pygen/codegen/models/imports.py +2 -13
- package/generator/build/lib/pygen/codegen/serializers/builder_serializer.py +1 -3
- package/generator/build/lib/pygen/codegen/templates/model_base.py.jinja2 +9 -13
- package/generator/build/lib/pygen/codegen/templates/packaging_templates/README.md.jinja2 +2 -2
- package/generator/build/lib/pygen/codegen/templates/packaging_templates/setup.py.jinja2 +1 -2
- package/generator/component-detection-pip-report.json +70 -71
- package/generator/dist/pygen-0.1.0-py3-none-any.whl +0 -0
- package/generator/pygen/codegen/__init__.py +0 -1
- package/generator/pygen/codegen/_utils.py +1 -1
- package/generator/pygen/codegen/models/imports.py +2 -13
- package/generator/pygen/codegen/serializers/builder_serializer.py +1 -3
- package/generator/pygen/codegen/templates/model_base.py.jinja2 +9 -13
- package/generator/pygen/codegen/templates/packaging_templates/README.md.jinja2 +2 -2
- package/generator/pygen/codegen/templates/packaging_templates/setup.py.jinja2 +1 -2
- package/generator/pygen.egg-info/PKG-INFO +11 -2
- package/generator/setup.py +0 -1
- package/generator/test/generic_mock_api_tests/asynctests/test_encode_bytes_async.py +0 -7
- package/generator/test/generic_mock_api_tests/conftest.py +3 -3
- package/generator/test/generic_mock_api_tests/test_encode_bytes.py +0 -7
- package/generator/test/unittests/conftest.py +14 -0
- package/generator/test/unittests/requirements.txt +3 -0
- package/generator/test/unittests/test_enums.py +52 -0
- package/generator/test/unittests/test_name_converter.py +43 -0
- package/generator/test/unittests/test_optional_return_type.py +268 -0
- package/generator/test/unittests/test_parameter_ordering.py +104 -0
- package/generator/test/unittests/tox.ini +5 -0
- package/package.json +1 -1
- /package/generator/test/{generic_mock_api_tests/data → data}/image.jpg +0 -0
- /package/generator/test/{generic_mock_api_tests/data → data}/image.png +0 -0
- /package/generator/test/{generic_mock_api_tests/unittests → unittests}/test_model_base_serialization.py +0 -0
- /package/generator/test/{generic_mock_api_tests/unittests → unittests}/test_model_base_xml_serialization.py +0 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
+
# license information.
|
|
5
|
+
# --------------------------------------------------------------------------
|
|
6
|
+
from pygen.codegen.models import Parameter, AnyType, CodeModel, StringType
|
|
7
|
+
from pygen.codegen.models.parameter_list import ParameterList
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def get_code_model():
|
|
11
|
+
return CodeModel(
|
|
12
|
+
{
|
|
13
|
+
"clients": [
|
|
14
|
+
{
|
|
15
|
+
"name": "client",
|
|
16
|
+
"namespace": "blah",
|
|
17
|
+
"moduleName": "blah",
|
|
18
|
+
"parameters": [],
|
|
19
|
+
"url": "",
|
|
20
|
+
"operationGroups": [],
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"namespace": "namespace",
|
|
24
|
+
},
|
|
25
|
+
options={
|
|
26
|
+
"show_send_request": True,
|
|
27
|
+
"builders_visibility": "public",
|
|
28
|
+
"show_operations": True,
|
|
29
|
+
"models_mode": "dpg",
|
|
30
|
+
"only_path_and_body_params_positional": True,
|
|
31
|
+
},
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def get_parameter(name, required, default_value=None, type=None):
|
|
36
|
+
if not type:
|
|
37
|
+
type = AnyType(
|
|
38
|
+
yaml_data={"type": "any"},
|
|
39
|
+
code_model=get_code_model(),
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
return Parameter(
|
|
43
|
+
yaml_data={
|
|
44
|
+
"wireName": name,
|
|
45
|
+
"clientName": name,
|
|
46
|
+
"location": "path",
|
|
47
|
+
"clientDefaultValue": default_value,
|
|
48
|
+
"optional": not required,
|
|
49
|
+
"implementation": "Method",
|
|
50
|
+
"inOverload": False,
|
|
51
|
+
"inOverloaded": False,
|
|
52
|
+
},
|
|
53
|
+
code_model=get_code_model(),
|
|
54
|
+
type=type,
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def test_sort_parameters_with_default_value_from_schema():
|
|
59
|
+
type = StringType(
|
|
60
|
+
yaml_data={"clientDefaultValue": "this_is_the_default", "type": "str"},
|
|
61
|
+
code_model=get_code_model(),
|
|
62
|
+
)
|
|
63
|
+
parameter_with_default_schema_value_required = get_parameter(
|
|
64
|
+
name="required_param_with_schema_default", required=True, type=type
|
|
65
|
+
)
|
|
66
|
+
required_parameter = get_parameter(name="required_parameter", required=True)
|
|
67
|
+
|
|
68
|
+
parameter_list = [parameter_with_default_schema_value_required, required_parameter]
|
|
69
|
+
|
|
70
|
+
assert [
|
|
71
|
+
required_parameter,
|
|
72
|
+
parameter_with_default_schema_value_required,
|
|
73
|
+
] == ParameterList({}, get_code_model(), parameter_list).method
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def test_sort_required_parameters():
|
|
77
|
+
required_default_value_parameter = get_parameter(
|
|
78
|
+
name="required_default_value_parameter", required=True, default_value="hello"
|
|
79
|
+
)
|
|
80
|
+
required_parameter = get_parameter(name="required_parameter", required=True)
|
|
81
|
+
|
|
82
|
+
parameter_list = [required_parameter, required_default_value_parameter]
|
|
83
|
+
|
|
84
|
+
assert [required_parameter, required_default_value_parameter] == ParameterList(
|
|
85
|
+
{}, get_code_model(), parameter_list
|
|
86
|
+
).method
|
|
87
|
+
|
|
88
|
+
# switch around ordering to confirm
|
|
89
|
+
|
|
90
|
+
parameter_list = [required_default_value_parameter, required_parameter]
|
|
91
|
+
|
|
92
|
+
assert [required_parameter, required_default_value_parameter] == ParameterList(
|
|
93
|
+
{}, get_code_model(), parameter_list
|
|
94
|
+
).method
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
def test_sort_required_and_non_required_parameters():
|
|
98
|
+
required_parameter = get_parameter(name="required_parameter", required=True)
|
|
99
|
+
|
|
100
|
+
optional_parameter = get_parameter(name="optional_parameter", required=False)
|
|
101
|
+
|
|
102
|
+
parameter_list = [optional_parameter, required_parameter]
|
|
103
|
+
|
|
104
|
+
assert [required_parameter, optional_parameter] == ParameterList({}, get_code_model(), parameter_list).method
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|