robotframework-openapitools 1.0.0b5__py3-none-any.whl → 1.0.1__py3-none-any.whl
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.
- OpenApiDriver/__init__.py +1 -0
- OpenApiDriver/openapi_executors.py +25 -1
- OpenApiDriver/openapidriver.libspec +183 -80
- OpenApiDriver/openapidriver.py +8 -279
- OpenApiLibCore/__init__.py +26 -0
- OpenApiLibCore/openapi_libcore.libspec +229 -121
- OpenApiLibCore/openapi_libcore.py +10 -248
- openapi_libgen/__init__.py +3 -0
- openapi_libgen/generator.py +0 -2
- openapitools_docs/__init__.py +0 -0
- openapitools_docs/docstrings.py +891 -0
- openapitools_docs/documentation_generator.py +35 -0
- openapitools_docs/templates/documentation.jinja +209 -0
- {robotframework_openapitools-1.0.0b5.dist-info → robotframework_openapitools-1.0.1.dist-info}/METADATA +16 -98
- {robotframework_openapitools-1.0.0b5.dist-info → robotframework_openapitools-1.0.1.dist-info}/RECORD +18 -14
- {robotframework_openapitools-1.0.0b5.dist-info → robotframework_openapitools-1.0.1.dist-info}/LICENSE +0 -0
- {robotframework_openapitools-1.0.0b5.dist-info → robotframework_openapitools-1.0.1.dist-info}/WHEEL +0 -0
- {robotframework_openapitools-1.0.0b5.dist-info → robotframework_openapitools-1.0.1.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,35 @@
|
|
1
|
+
import sys
|
2
|
+
from pathlib import Path
|
3
|
+
|
4
|
+
from jinja2 import Environment, FileSystemLoader
|
5
|
+
|
6
|
+
from openapitools_docs.docstrings import (
|
7
|
+
ADVANCED_USE_DOCUMENTATION,
|
8
|
+
OPENAPIDRIVER_DOCUMENTATION,
|
9
|
+
OPENAPILIBCORE_DOCUMENTATION,
|
10
|
+
OPENAPILIBGEN_DOCUMENTATION,
|
11
|
+
)
|
12
|
+
|
13
|
+
HERE = Path(__file__).parent.resolve()
|
14
|
+
|
15
|
+
|
16
|
+
def generate(output_folder: Path) -> None:
|
17
|
+
output_folder.mkdir(parents=True, exist_ok=True)
|
18
|
+
|
19
|
+
environment = Environment(loader=FileSystemLoader(f"{HERE}/templates/"))
|
20
|
+
|
21
|
+
documentation_template = environment.get_template("documentation.jinja")
|
22
|
+
output_file_path = output_folder / "index.html"
|
23
|
+
documentation_content = documentation_template.render(
|
24
|
+
libgen_documentation=OPENAPILIBGEN_DOCUMENTATION,
|
25
|
+
driver_documentation=OPENAPIDRIVER_DOCUMENTATION,
|
26
|
+
libcore_documentation=OPENAPILIBCORE_DOCUMENTATION,
|
27
|
+
advanced_use_documentation=ADVANCED_USE_DOCUMENTATION,
|
28
|
+
)
|
29
|
+
with open(output_file_path, mode="w", encoding="utf-8") as html_file:
|
30
|
+
html_file.write(documentation_content)
|
31
|
+
|
32
|
+
|
33
|
+
if __name__ == "__main__": # pragma: no cover
|
34
|
+
output_folder = Path(sys.argv[1])
|
35
|
+
generate(output_folder=output_folder)
|
@@ -0,0 +1,209 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
|
4
|
+
<head>
|
5
|
+
<title>Robot Framework OpenApiTools documentation</title>
|
6
|
+
<!-- Get the flavicon -->
|
7
|
+
<link href="https://robotframework.org/img/icons/favicon-32x32.png" rel="icon" type="image/png">
|
8
|
+
<!-- Get the fonts -->
|
9
|
+
<link href="https://fonts.cdnfonts.com/css/ocr-a-std" rel="stylesheet">
|
10
|
+
<link href="https://fontlibrary.org//face/courier-code" rel="stylesheet" />
|
11
|
+
<!-- Code highlighting -->
|
12
|
+
<link href="code_highlighting/prism.css" rel="stylesheet" />
|
13
|
+
|
14
|
+
<style>
|
15
|
+
@import url("https://fonts.cdnfonts.com/css/ocr-a-std");
|
16
|
+
@import url("https://fontlibrary.org//face/courier-code");
|
17
|
+
|
18
|
+
:root {
|
19
|
+
color-scheme: light dark;
|
20
|
+
--font-title: "OCR A Std", sans-serif;
|
21
|
+
--font-body: "CourierCodeRoman";
|
22
|
+
--color-theme: light-dark(#00c0b5, #00c0b5);
|
23
|
+
--color-link: light-dark(#00857e, #00c0b5);
|
24
|
+
--color-black: #000;
|
25
|
+
--color-white: #f5f5f5;
|
26
|
+
--color-grey-light: #e7e7e7;
|
27
|
+
--color-grey-dark: #292f33;
|
28
|
+
--color-background: light-dark(#f0f0f0, #222);
|
29
|
+
--color-background-secondary: light-dark(#fff, #2b2b2b);
|
30
|
+
--font-size-body: 1rem;
|
31
|
+
--line-height-body: 1.75;
|
32
|
+
--font-size-banner: 6rem;
|
33
|
+
--font-weight-banner: 900;
|
34
|
+
--font-size-tablinks: 0.875rem;
|
35
|
+
--padding-very-small: 0.5rem;
|
36
|
+
--padding-small: 0.75rem;
|
37
|
+
--padding-normal: 1rem;
|
38
|
+
--padding-large: 2.25rem;
|
39
|
+
--border-radius-rounded: 0.2rem;
|
40
|
+
}
|
41
|
+
|
42
|
+
html {
|
43
|
+
font-size: 100%;
|
44
|
+
}
|
45
|
+
|
46
|
+
nav {
|
47
|
+
float: left;
|
48
|
+
width: 20%;
|
49
|
+
padding: 20px;
|
50
|
+
}
|
51
|
+
|
52
|
+
article {
|
53
|
+
float: left;
|
54
|
+
width: 80%;
|
55
|
+
padding: 20px;
|
56
|
+
}
|
57
|
+
|
58
|
+
body {
|
59
|
+
color: light-dark(var(--color-black), var(--color-white));
|
60
|
+
background-color: var(--color-background);
|
61
|
+
font-size: var(--font-size-body);
|
62
|
+
font-family: var(--font-body);
|
63
|
+
line-height: var(--line-height-body);
|
64
|
+
}
|
65
|
+
|
66
|
+
.flex-container {
|
67
|
+
display: flex;
|
68
|
+
}
|
69
|
+
|
70
|
+
.banner {
|
71
|
+
width: 100%;
|
72
|
+
background-color: var(--color-theme);
|
73
|
+
font-family: var(--font-title);
|
74
|
+
font-weight: var(--font-weight-banner);
|
75
|
+
font-size: var(--font-size-banner);
|
76
|
+
text-align: center;
|
77
|
+
}
|
78
|
+
|
79
|
+
.color-white {
|
80
|
+
color: var(--color-white)
|
81
|
+
}
|
82
|
+
|
83
|
+
.color-black {
|
84
|
+
color: var(--color-black)
|
85
|
+
}
|
86
|
+
|
87
|
+
.secondary-background {
|
88
|
+
background-color: var(--color-background-secondary);
|
89
|
+
padding: var(--padding-large)
|
90
|
+
}
|
91
|
+
|
92
|
+
.sidenav {
|
93
|
+
color: light-dark(var(--color-grey-dark), var(--color-grey-light));
|
94
|
+
background-color: var(--color-background);
|
95
|
+
}
|
96
|
+
|
97
|
+
a {
|
98
|
+
color: var(--color-link)
|
99
|
+
}
|
100
|
+
|
101
|
+
hr {
|
102
|
+
border: solid 2px var(--color-theme);
|
103
|
+
border-radius: 4px;
|
104
|
+
}
|
105
|
+
|
106
|
+
.code-block {
|
107
|
+
background-color: light-dark(var(--color-grey-light), var(--color-grey-dark));
|
108
|
+
padding: 0 var(--padding-normal)
|
109
|
+
}
|
110
|
+
|
111
|
+
.sidenav a:link,
|
112
|
+
.sidenav a:visited {
|
113
|
+
background-color: var(--color-background-secondary);
|
114
|
+
color: light-dark(var(--color-black), var(--color-white));
|
115
|
+
padding: 14px 25px;
|
116
|
+
border: 1px outset var(--color-link);
|
117
|
+
border-radius: 4px;
|
118
|
+
text-align: left;
|
119
|
+
text-decoration: none;
|
120
|
+
display: block;
|
121
|
+
}
|
122
|
+
|
123
|
+
.sidenav a:hover,
|
124
|
+
.sidenav a:active {
|
125
|
+
color: var(--color-theme);
|
126
|
+
}
|
127
|
+
|
128
|
+
.tablinks {
|
129
|
+
color: var(--color-black);
|
130
|
+
background-color: var(--color-white);
|
131
|
+
text-transform: uppercase;
|
132
|
+
box-shadow: rgba(0, 0, 0, 0.1) 2px 4px 3px -1px, rgba(0, 0, 0, 0.04) 6px 6px 15px -1px;
|
133
|
+
font-family: var(--font-title);
|
134
|
+
border-radius: var(--border-radius-rounded);
|
135
|
+
transition: color 0.2s, background-color 0.1s, box-shadow 0.1s;
|
136
|
+
padding: var(--padding-very-small) var(--padding-normal);
|
137
|
+
font-size: var(--font-size-tablinks);
|
138
|
+
margin-bottom: var(--padding-small);
|
139
|
+
margin-right: var(--padding-normal);
|
140
|
+
}
|
141
|
+
|
142
|
+
.tablinks.active {
|
143
|
+
color: var(--color-white);
|
144
|
+
background-color: var(--color-theme);
|
145
|
+
box-shadow: rgba(0, 0, 0, 0.2) 2px 3px 2px -1px inset;
|
146
|
+
}
|
147
|
+
</style>
|
148
|
+
</head>
|
149
|
+
|
150
|
+
<body>
|
151
|
+
<header>
|
152
|
+
<h1 class="banner">
|
153
|
+
<div class="color-white">ROBOT FRAMEWORK</div>
|
154
|
+
<div class="color-black">OPENAPITOOLS</div>
|
155
|
+
</h1>
|
156
|
+
</header>
|
157
|
+
|
158
|
+
<div class="flex-container">
|
159
|
+
<nav class="sidenav">
|
160
|
+
<h3>Keyword documentation quicklinks</h3>
|
161
|
+
<a href="openapidriver.html" target="_blank">OpenApiDriver</a>
|
162
|
+
<a href="openapi_libcore.html" target="_blank">OpenApiLibCore</a>
|
163
|
+
</nav>
|
164
|
+
|
165
|
+
<article>
|
166
|
+
<p>OpenApiTools is a set of libraries centered around the OpenAPI Specification</p>
|
167
|
+
|
168
|
+
<div class="tab">
|
169
|
+
<button class="tablinks" onclick="openDocs(event, 'libgen')" id="defaultOpen">OpenApiLibGen</button>
|
170
|
+
<button class="tablinks" onclick="openDocs(event, 'driver')">OpenApiDriver</button>
|
171
|
+
<button class="tablinks" onclick="openDocs(event, 'libcore')">OpenApiLibCore</button>
|
172
|
+
<button class="tablinks" onclick="openDocs(event, 'advanced')">Advanced Use</button>
|
173
|
+
</div>
|
174
|
+
<div id="libgen" class="tabcontent">
|
175
|
+
<div class="secondary-background">{{ libgen_documentation }}</div>
|
176
|
+
</div>
|
177
|
+
<div id="driver" class="tabcontent">
|
178
|
+
<div class="secondary-background">{{ driver_documentation }}</div>
|
179
|
+
</div>
|
180
|
+
<div id="libcore" class="tabcontent">
|
181
|
+
<div class="secondary-background">{{ libcore_documentation }}</div>
|
182
|
+
</div>
|
183
|
+
<div id="advanced" class="tabcontent">
|
184
|
+
<div class="secondary-background">{{ advanced_use_documentation }}</div>
|
185
|
+
</div>
|
186
|
+
</article>
|
187
|
+
</div>
|
188
|
+
|
189
|
+
<script>
|
190
|
+
function openDocs(evt, moduleName) {
|
191
|
+
var i, tabcontent, tablinks;
|
192
|
+
tabcontent = document.getElementsByClassName("tabcontent");
|
193
|
+
for (i = 0; i < tabcontent.length; i++) {
|
194
|
+
tabcontent[i].style.display = "none";
|
195
|
+
}
|
196
|
+
tablinks = document.getElementsByClassName("tablinks");
|
197
|
+
for (i = 0; i < tablinks.length; i++) {
|
198
|
+
tablinks[i].className = tablinks[i].className.replace(" active", "");
|
199
|
+
}
|
200
|
+
document.getElementById(moduleName).style.display = "block";
|
201
|
+
evt.currentTarget.className += " active";
|
202
|
+
}
|
203
|
+
document.getElementById("defaultOpen").click();
|
204
|
+
</script>
|
205
|
+
<!-- Code highlighting -->
|
206
|
+
<script src="code_highlighting/prism.js"></script>
|
207
|
+
</body>
|
208
|
+
|
209
|
+
</html>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: robotframework-openapitools
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.1
|
4
4
|
Summary: A set of Robot Framework libraries to test APIs for which the OAS is available.
|
5
5
|
License: Apache License
|
6
6
|
Version 2.0, January 2004
|
@@ -210,6 +210,9 @@ Maintainer-email: r.a.mackaij@gmail.com
|
|
210
210
|
Requires-Python: >=3.10, <4
|
211
211
|
Classifier: Programming Language :: Python :: 3
|
212
212
|
Classifier: Programming Language :: Python :: 3.10
|
213
|
+
Classifier: Programming Language :: Python :: 3.11
|
214
|
+
Classifier: Programming Language :: Python :: 3.12
|
215
|
+
Classifier: Programming Language :: Python :: 3.13
|
213
216
|
Classifier: License :: OSI Approved :: Apache Software License
|
214
217
|
Classifier: Operating System :: OS Independent
|
215
218
|
Classifier: Topic :: Software Development :: Testing
|
@@ -226,109 +229,24 @@ Requires-Dist: rich_click (>=1.7.0)
|
|
226
229
|
Requires-Dist: robotframework (>=6.0.0,!=7.0.0)
|
227
230
|
Requires-Dist: robotframework-datadriver (>=1.10.0)
|
228
231
|
Requires-Dist: rstr (>=3.2.0)
|
232
|
+
Project-URL: Documentation, https://marketsquare.github.io/robotframework-openapitools
|
229
233
|
Project-URL: Homepage, https://github.com/MarketSquare/robotframework-openapitools
|
234
|
+
Project-URL: Repository, https://github.com/MarketSquare/robotframework-openapitools.git
|
230
235
|
Description-Content-Type: text/markdown
|
231
236
|
|
232
|
-
|
233
|
-
|
234
|
-
OpenApiTools is a set of libraries centered around the OpenAPI Specification:
|
235
|
-
|
236
|
-
- [OpenApiDriver](./driver.md)
|
237
|
-
- [OpenApiLibCore](./libcore.md)
|
238
|
-
|
239
|
-
|
240
|
-
## New in OpenApiTools v1.0.0
|
241
|
-
|
242
|
-
Inspired by the work Bartlomiej and Mateusz did on #roboswag, I've created a CLI tool that generates a fully functional Robot Framework (Python) library that builds on OpenApiLibCore for automatic request data generation and request execution.
|
243
|
-
|
244
|
-
### So how does it work?
|
245
|
-
After installing / updating to the v1.0.0 beta (`pip install robotframework-openapitools==1.0.0b3`) , there's a new CLI command available in your (virtual) environment: `generate-library`. You'll have to provide a path to the openapi spec (json or yaml, can be a url or path to the file), provide a path to where to generate the library and (optionally) a name for the library:
|
246
|
-
|
247
|
-
```
|
248
|
-
$ generate-library
|
249
|
-
Please provide a source for the generation:
|
250
|
-
$ http://127.0.0.1:8000/openapi.json
|
251
|
-
Please provide a path to where the library will be generated:
|
252
|
-
$ ./generated
|
253
|
-
Please provide a name for the library [default: FastAPI]:
|
254
|
-
$ My Generated Library
|
255
|
-
generated/MyGeneratedLibrary/__init__.py created
|
256
|
-
generated/MyGeneratedLibrary/my_generated_library.py created
|
257
|
-
```
|
258
|
-
|
259
|
-
> Note: there's currently 2 environment variables that are taken into account by the generator; USE_SUMMARY_AS_KEYWORD_NAME can result in nicer keyword names (but: uniqueness is not guaranteed, so you might need to rename some of the generated keywords manually) and EXPAND_BODY_ARGUMENTS is what a recent poll in #api-testing was about.
|
260
|
-
|
261
|
-
If the location where the library is located is in your Python search path, you'll be able to use it like a regular Robot Framework library (in fact, it's a drop-in replacement for OpenApiLibCore):
|
237
|
+
[](https://github.com/MarketSquare/robotframework-openapitools/actions/workflows/on-push.yml)
|
238
|
+

|
262
239
|
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
... origin=${ORIGIN}
|
268
|
-
... base_path=${EMPTY}
|
269
|
-
... mappings_path=${ROOT}/tests/user_implemented/custom_user_mappings.py
|
270
|
-
Variables ${ROOT}/tests/variables.py
|
240
|
+

|
241
|
+

|
242
|
+

|
243
|
+

|
271
244
|
|
245
|
+
# OpenApiTools for Robot Framework
|
272
246
|
|
273
|
-
|
274
|
-
${ORIGIN}= http://localhost:8000
|
275
|
-
|
276
|
-
|
277
|
-
*** Test Cases ***
|
278
|
-
Test Generated Keywords: Get Employees
|
279
|
-
${response}= Get Employees
|
280
|
-
Should Be Equal As Integers ${response.status_code} 200
|
281
|
-
|
282
|
-
Test Generated Keywords: Post Employee
|
283
|
-
VAR &{body} name=Robin the Robot
|
284
|
-
${response}= Post Employee body=${body}
|
285
|
-
# ${response}= Post Employee name=Robin the Robot
|
286
|
-
Should Be Equal As Integers ${response.status_code} 201
|
287
|
-
Should Be Equal ${response.json()}[name] Robin the Robot
|
288
|
-
|
289
|
-
Test Generated Keywords: Get Employee
|
290
|
-
${response}= Get Employee
|
291
|
-
Should Be Equal As Integers ${response.status_code} 200
|
292
|
-
|
293
|
-
Test Generated Keywords: Patch Employee
|
294
|
-
${employee_id}= Get Valid Id For Path path=/employees/{employee_id}
|
295
|
-
VAR &{body} date_of_birth=2021-12-31
|
296
|
-
${response}= Patch Employee employee_id=${employee_id} body=${body}
|
297
|
-
# ${response}= Patch Employee employee_id=${employee_id} date_of_birth=2021-12-31
|
298
|
-
Should Be Equal As Integers ${response.status_code} 403
|
299
|
-
|
300
|
-
Test Generated Keywords: Post WageGroup
|
301
|
-
VAR &{body} hourly_rate=99.99
|
302
|
-
${response}= Post Wagegroup body=${body}
|
303
|
-
# ${response}= Post Wagegroup hourly_rate=99.99
|
304
|
-
Should Be Equal As Integers ${response.status_code} 201
|
305
|
-
Should Be Equal As Numbers ${response.json()}[hourly-rate] 99.99
|
306
|
-
|
307
|
-
Test Generated Keywords: Get Energy Label
|
308
|
-
${response}= Get Energy Label
|
309
|
-
... zipcode=1111AA
|
310
|
-
... home_number=10
|
311
|
-
... extension=too long to be acceptable
|
312
|
-
... validate_against_schema=${FALSE}
|
313
|
-
Should Be Equal As Integers ${response.status_code} 422
|
314
|
-
|
315
|
-
VAR @{omit} extension
|
316
|
-
${response}= Get Energy Label
|
317
|
-
... zipcode=1111AA
|
318
|
-
... home_number=10
|
319
|
-
... extension=too long to be acceptable
|
320
|
-
... omit_parameters=${omit}
|
321
|
-
Should Be Equal As Integers ${response.status_code} 200
|
322
|
-
```
|
323
|
-
|
324
|
-
### Contributions and feedback
|
247
|
+
If you're testing an API for which an OpenAPI specification is available (if you have a Swagger UI available, you are), OpenApiTools is for you!
|
325
248
|
|
326
|
-
|
327
|
-
Things I'd like to address / improve before an official release:
|
328
|
-
- parameters with union types (e.g. int or float) are currently annotated as Any.
|
329
|
-
- support for lists / arrays is limited (i.e. not supported as body)
|
330
|
-
- objects / dicts are currently only typed as dict; I'm looking into TypedDict annotation for better auto-complete / auto-conversion
|
331
|
-
- a documentation rework
|
249
|
+
To read everything about it, see the [html documentation](https://marketsquare.github.io/robotframework-openapitools).
|
332
250
|
|
333
|
-
|
251
|
+
The latest release notes can be found [here](./release_notes/1.0.1.md).
|
334
252
|
|
{robotframework_openapitools-1.0.0b5.dist-info → robotframework_openapitools-1.0.1.dist-info}/RECORD
RENAMED
@@ -1,10 +1,10 @@
|
|
1
|
-
OpenApiDriver/__init__.py,sha256=
|
2
|
-
OpenApiDriver/openapi_executors.py,sha256=
|
1
|
+
OpenApiDriver/__init__.py,sha256=6H51khQlcectCI8e67ls56QtkjB34neOaBS6gxo4ROk,1454
|
2
|
+
OpenApiDriver/openapi_executors.py,sha256=xYHi372ruxqc2lD3t6q9KZpOHQ7SR-vIilikU_Sm5vk,13211
|
3
3
|
OpenApiDriver/openapi_reader.py,sha256=1M3nFRRLgD3Vepiru_jqYgVrnkRznFpR7lzdUKetxYw,4340
|
4
|
-
OpenApiDriver/openapidriver.libspec,sha256=
|
5
|
-
OpenApiDriver/openapidriver.py,sha256=
|
4
|
+
OpenApiDriver/openapidriver.libspec,sha256=lAHhwhW_3DSYBd07oblHs6BW-RPaU2C2VzE75SNGaEo,26020
|
5
|
+
OpenApiDriver/openapidriver.py,sha256=bsGmmk9-u4tWanOwuiMba7dVnUgN4lN503wWIwaeYOc,3795
|
6
6
|
OpenApiDriver/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
-
OpenApiLibCore/__init__.py,sha256=
|
7
|
+
OpenApiLibCore/__init__.py,sha256=KTuNKDTLeO59KUC4PvGYkIzymqXt_m19uFHfzUyc-8I,2366
|
8
8
|
OpenApiLibCore/annotations.py,sha256=YmvWKTbhyxRk2aWFra3v-3p30e96TFJ-CV9f3X90rPs,238
|
9
9
|
OpenApiLibCore/data_generation/__init__.py,sha256=NJViPQGHkczF2gxfS0wE2vE3wCRU9ixDEwHPMZApu6A,206
|
10
10
|
OpenApiLibCore/data_generation/body_data_generation.py,sha256=GkoQec3hEbpRr_hMwFJjFDjACQ776Uj3x3bhmB4TJVo,8348
|
@@ -15,8 +15,8 @@ OpenApiLibCore/dto_utils.py,sha256=-mpG2tsjRuldDH9hms1hay6kDNNvVXl7XzLu8RUxjIg,4
|
|
15
15
|
OpenApiLibCore/localized_faker.py,sha256=-Z3ry6V7xIkmAlUq70a1L_OspAPZTDFt4RFo3zj4Llo,2205
|
16
16
|
OpenApiLibCore/models.py,sha256=EfSxhcY78qTVyzWp4wHLE5h1kYR4QhjGQ-mkmIwgxg4,22813
|
17
17
|
OpenApiLibCore/oas_cache.py,sha256=Z2v0mn6JwKchbUKojYVt9sXi8Mc4LoENtN_ekTUtzfI,387
|
18
|
-
OpenApiLibCore/openapi_libcore.libspec,sha256=
|
19
|
-
OpenApiLibCore/openapi_libcore.py,sha256=
|
18
|
+
OpenApiLibCore/openapi_libcore.libspec,sha256=OwF2N6A4vUU3ySfnZbuNroF0pkUhV_6WS8IKYOHgvsE,42903
|
19
|
+
OpenApiLibCore/openapi_libcore.py,sha256=Hzxx95P5V7N4jSolNOkQRmB3aKxtu-WFw1ZMxT4Qsvw,25898
|
20
20
|
OpenApiLibCore/parameter_utils.py,sha256=Df1RajxtZNLD5UDFEBxprxKpGiUn52SeG04Ms96JnDA,3527
|
21
21
|
OpenApiLibCore/path_functions.py,sha256=8WW4BA14hNDx4dD_F40EGZSgDWO3yk5CxhrjqGpIkeU,8002
|
22
22
|
OpenApiLibCore/path_invalidation.py,sha256=RIf6pZIszz13nfuIQzOzK8sXZCrFSmEbXivfpc1jGRg,1435
|
@@ -26,15 +26,19 @@ OpenApiLibCore/request_data.py,sha256=KK-pPyfZUJGh9uPNUrvYb-DxumPGH9vcqJ_bdKJnmY
|
|
26
26
|
OpenApiLibCore/resource_relations.py,sha256=38Cd9FVvV0FCiTMc5uQleRVyQFbvnGaoiXOruKcOpag,1773
|
27
27
|
OpenApiLibCore/validation.py,sha256=xdWLaYslwlbBesaBzJfoQeCuseiCSZyCdFC7JLGqGQQ,14977
|
28
28
|
OpenApiLibCore/value_utils.py,sha256=6DcTSpYlo_moAY04K45iSvREQXtO5d9IK8ln5RAaims,7545
|
29
|
-
openapi_libgen/__init__.py,sha256=
|
29
|
+
openapi_libgen/__init__.py,sha256=dprxYWWncvDF9z6lajA0T8ayvmvj1zwORou0C9tqTe0,108
|
30
30
|
openapi_libgen/command_line.py,sha256=rWByjZDPYYra6WOsINL2zj5Ny3YSIXiTrhRjSBA4FRE,2380
|
31
|
-
openapi_libgen/generator.py,sha256=
|
31
|
+
openapi_libgen/generator.py,sha256=kmHYFWb1zd8TymJh1z594bFRPOuZsllRYhIHtHEcCIE,2655
|
32
32
|
openapi_libgen/parsing_utils.py,sha256=ORJJq8QNPMFUI_shdzeRFYydyy9YsEm0TaWrpqqZubI,1039
|
33
33
|
openapi_libgen/spec_parser.py,sha256=lfYwwmGO0gsZH5gHttccxIxltI-2JSAAJma0k03tmRg,6414
|
34
34
|
openapi_libgen/templates/__init__.jinja,sha256=92OFwNzeO7lEiUBv04GfjKXA1088V7GbeneASBShbmc,102
|
35
35
|
openapi_libgen/templates/library.jinja,sha256=tIwJuGerOUJmMt928P_38MMfcnSHZqcPDPEJ56R6wT0,952
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
robotframework_openapitools-1.0.
|
36
|
+
openapitools_docs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
37
|
+
openapitools_docs/docstrings.py,sha256=oOoNeyo2g_bgHm93b4fASFtOlB0otm1iDJFDEYBIZaY,38355
|
38
|
+
openapitools_docs/documentation_generator.py,sha256=q9sSvOi0MQ1izmxaGaCLTh8pz8wqPAk3Rr0klllj8gI,1164
|
39
|
+
openapitools_docs/templates/documentation.jinja,sha256=oMcfj5ovyA2ignA9zhUvIq-6KdWbHvY-Qk9tnWr4c3s,7205
|
40
|
+
robotframework_openapitools-1.0.1.dist-info/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
|
41
|
+
robotframework_openapitools-1.0.1.dist-info/METADATA,sha256=eRJt9eo2SLxmgUYmjdC61urUOXMLjeQvfVYOUq-tf-k,15620
|
42
|
+
robotframework_openapitools-1.0.1.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
43
|
+
robotframework_openapitools-1.0.1.dist-info/entry_points.txt,sha256=_yd5PITEJf85hIEsrRkkWxXePf_O9YOOUjON3TYLy0c,69
|
44
|
+
robotframework_openapitools-1.0.1.dist-info/RECORD,,
|
File without changes
|
{robotframework_openapitools-1.0.0b5.dist-info → robotframework_openapitools-1.0.1.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|