Skip to content

Commit 5ea3116

Browse files
authored
enhancement schema for response case-insensitive and miss key (#7)
FEATURE: - Set zero-value as the default value for container types (list, dict) (#7) - Add case-insensitive converting at the schema (#7) - Add non-strict mode for the type system (#7)
1 parent 3c70e64 commit 5ea3116

File tree

24 files changed

+2137
-1313
lines changed

24 files changed

+2137
-1313
lines changed

Makefile

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ endef
1313
export BROWSER_PYSCRIPT
1414
BROWSER := python -c "$$BROWSER_PYSCRIPT"
1515

16-
# UCloud Tools
17-
GENERATE_TEMPLATE_PATH=../ucloud-api-model-v2/apisdk/lang/python/templates/bash.tpl
16+
# UCloud Tools Path
17+
UCLOUD_TEMPLATE_PATH=../ucloud-api-model-v2/apisdk/lang/python/templates
1818

1919
help:
2020
@echo "clean - remove all build, test, coverage and Python artifacts"
@@ -38,7 +38,7 @@ test-cov: clean
3838
pytest --cov=ucloud
3939

4040
test-acc: clean
41-
USDK_ACC=1 pytest --cov=ucloud
41+
USDKACC=1 pytest --cov=ucloud
4242

4343
test-all: clean
4444
tox
@@ -79,4 +79,12 @@ clean-test:
7979
rm -fr htmlcov/
8080

8181
gen:
82-
ucloud-model sdk apis --lang python3 --type=public --template ${GENERATE_TEMPLATE_PATH} --output ./gen.sh
82+
ucloud-model sdk apis \
83+
--lang python3 \
84+
--type=public \
85+
--template ${UCLOUD_TEMPLATE_PATH}/scripts-api.tpl \
86+
--output ./scripts/gen-services.sh
87+
ucloud-model sdk tests \
88+
--lang python3 \
89+
--template ${UCLOUD_TEMPLATE_PATH}/scripts-test.tpl \
90+
--output ./scripts/gen-tests.sh

examples/two-tier/main.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@
88
logger = logging.getLogger('ucloud')
99
logger.setLevel(logging.DEBUG)
1010

11+
# NOTE: find your public/private key at
12+
# website `UAPI <https://console.ucloud.cn/uapi/apikey>`_
1113
client = Client({
1214
"region": "cn-bj2",
13-
"project_id": os.getenv("UCLOUD_PROJECT_ID"),
14-
"public_key": os.getenv("UCLOUD_PUBLIC_KEY"),
15-
"private_key": os.getenv("UCLOUD_PRIVATE_KEY"),
15+
"project_id": "paste your project id at here",
16+
"public_key": "paste your public key at here",
17+
"private_key": "paste your private key at here",
1618
})
1719

1820

gen.sh renamed to scripts/gen-services.sh

Lines changed: 107 additions & 105 deletions
Large diffs are not rendered by default.

scripts/gen-tests.sh

Lines changed: 253 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,253 @@
1+
#!/usr/bin/env bash
2+
3+
""" Code is generated by ucloud-model, DO NOT EDIT IT. """
4+
5+
6+
ucloud-model sdk test \
7+
--lang python3 \
8+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
9+
--output tests/test_services/test_set_245.py \
10+
--name 245
11+
12+
ucloud-model sdk test \
13+
--lang python3 \
14+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
15+
--output tests/test_services/test_set_1202.py \
16+
--name 1202
17+
18+
ucloud-model sdk test \
19+
--lang python3 \
20+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
21+
--output tests/test_services/test_set_220.py \
22+
--name 220
23+
24+
ucloud-model sdk test \
25+
--lang python3 \
26+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
27+
--output tests/test_services/test_set_449.py \
28+
--name 449
29+
30+
ucloud-model sdk test \
31+
--lang python3 \
32+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
33+
--output tests/test_services/test_set_1073.py \
34+
--name 1073
35+
36+
ucloud-model sdk test \
37+
--lang python3 \
38+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
39+
--output tests/test_services/test_set_242.py \
40+
--name 242
41+
42+
ucloud-model sdk test \
43+
--lang python3 \
44+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
45+
--output tests/test_services/test_set_333.py \
46+
--name 333
47+
48+
ucloud-model sdk test \
49+
--lang python3 \
50+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
51+
--output tests/test_services/test_set_499.py \
52+
--name 499
53+
54+
ucloud-model sdk test \
55+
--lang python3 \
56+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
57+
--output tests/test_services/test_set_1201.py \
58+
--name 1201
59+
60+
ucloud-model sdk test \
61+
--lang python3 \
62+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
63+
--output tests/test_services/test_set_1839.py \
64+
--name 1839
65+
66+
ucloud-model sdk test \
67+
--lang python3 \
68+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
69+
--output tests/test_services/test_set_302.py \
70+
--name 302
71+
72+
ucloud-model sdk test \
73+
--lang python3 \
74+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
75+
--output tests/test_services/test_set_330.py \
76+
--name 330
77+
78+
ucloud-model sdk test \
79+
--lang python3 \
80+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
81+
--output tests/test_services/test_set_490.py \
82+
--name 490
83+
84+
ucloud-model sdk test \
85+
--lang python3 \
86+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
87+
--output tests/test_services/test_set_2117.py \
88+
--name 2117
89+
90+
ucloud-model sdk test \
91+
--lang python3 \
92+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
93+
--output tests/test_services/test_set_113.py \
94+
--name 113
95+
96+
ucloud-model sdk test \
97+
--lang python3 \
98+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
99+
--output tests/test_services/test_set_181.py \
100+
--name 181
101+
102+
ucloud-model sdk test \
103+
--lang python3 \
104+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
105+
--output tests/test_services/test_set_283.py \
106+
--name 283
107+
108+
ucloud-model sdk test \
109+
--lang python3 \
110+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
111+
--output tests/test_services/test_set_286.py \
112+
--name 286
113+
114+
ucloud-model sdk test \
115+
--lang python3 \
116+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
117+
--output tests/test_services/test_set_289.py \
118+
--name 289
119+
120+
ucloud-model sdk test \
121+
--lang python3 \
122+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
123+
--output tests/test_services/test_set_489.py \
124+
--name 489
125+
126+
ucloud-model sdk test \
127+
--lang python3 \
128+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
129+
--output tests/test_services/test_set_207.py \
130+
--name 207
131+
132+
ucloud-model sdk test \
133+
--lang python3 \
134+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
135+
--output tests/test_services/test_set_227.py \
136+
--name 227
137+
138+
ucloud-model sdk test \
139+
--lang python3 \
140+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
141+
--output tests/test_services/test_set_279.py \
142+
--name 279
143+
144+
ucloud-model sdk test \
145+
--lang python3 \
146+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
147+
--output tests/test_services/test_set_471.py \
148+
--name 471
149+
150+
ucloud-model sdk test \
151+
--lang python3 \
152+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
153+
--output tests/test_services/test_set_687.py \
154+
--name 687
155+
156+
ucloud-model sdk test \
157+
--lang python3 \
158+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
159+
--output tests/test_services/test_set_2935.py \
160+
--name 2935
161+
162+
ucloud-model sdk test \
163+
--lang python3 \
164+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
165+
--output tests/test_services/test_set_503.py \
166+
--name 503
167+
168+
ucloud-model sdk test \
169+
--lang python3 \
170+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
171+
--output tests/test_services/test_set_1203.py \
172+
--name 1203
173+
174+
ucloud-model sdk test \
175+
--lang python3 \
176+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
177+
--output tests/test_services/test_set_149.py \
178+
--name 149
179+
180+
ucloud-model sdk test \
181+
--lang python3 \
182+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
183+
--output tests/test_services/test_set_179.py \
184+
--name 179
185+
186+
ucloud-model sdk test \
187+
--lang python3 \
188+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
189+
--output tests/test_services/test_set_230.py \
190+
--name 230
191+
192+
ucloud-model sdk test \
193+
--lang python3 \
194+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
195+
--output tests/test_services/test_set_268.py \
196+
--name 268
197+
198+
ucloud-model sdk test \
199+
--lang python3 \
200+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
201+
--output tests/test_services/test_set_488.py \
202+
--name 488
203+
204+
ucloud-model sdk test \
205+
--lang python3 \
206+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
207+
--output tests/test_services/test_set_491.py \
208+
--name 491
209+
210+
ucloud-model sdk test \
211+
--lang python3 \
212+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
213+
--output tests/test_services/test_set_1840.py \
214+
--name 1840
215+
216+
ucloud-model sdk test \
217+
--lang python3 \
218+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
219+
--output tests/test_services/test_set_2301.py \
220+
--name 2301
221+
222+
ucloud-model sdk test \
223+
--lang python3 \
224+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
225+
--output tests/test_services/test_set_2377.py \
226+
--name 2377
227+
228+
ucloud-model sdk test \
229+
--lang python3 \
230+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
231+
--output tests/test_services/test_set_293.py \
232+
--name 293
233+
234+
ucloud-model sdk test \
235+
--lang python3 \
236+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
237+
--output tests/test_services/test_set_448.py \
238+
--name 448
239+
240+
ucloud-model sdk test \
241+
--lang python3 \
242+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
243+
--output tests/test_services/test_set_2174.py \
244+
--name 2174
245+
246+
ucloud-model sdk test \
247+
--lang python3 \
248+
--template ../ucloud-api-model-v2/apisdk/lang/python/templates/testing.tpl \
249+
--output tests/test_services/test_set_2457.py \
250+
--name 2457
251+
252+
253+
black tests/test_services/*

setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ def do_setup():
9292
"doc": dependencies_doc,
9393
"dev": dependencies_dev,
9494
},
95+
dependencies_test=dependencies_test,
9596
classifiers=[
9697
"Development Status :: 3 - Alpha",
9798
"Environment :: Console",

tests/test_core/test_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import logging
44

55
from ucloud.core.client import Client
6-
from ucloud.core.testing import env
6+
from ucloud.testing import env
77

88
logger = logging.getLogger(__name__)
99

0 commit comments

Comments
 (0)