robotframework-openapitools 0.2.1__py3-none-any.whl → 0.2.3__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.
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <keywordspec name="OpenApiDriver" type="LIBRARY" format="HTML" scope="SUITE" generated="2024-04-18T10:17:57+00:00" specversion="5" source="/workspaces/robotframework-openapitools/src/OpenApiDriver/openapidriver.py" lineno="352">
3
- <version>0.2.1</version>
2
+ <keywordspec name="OpenApiDriver" type="LIBRARY" format="HTML" scope="SUITE" generated="2024-06-20T15:30:31+00:00" specversion="6" source="/workspaces/robotframework-openapitools/src/OpenApiDriver/openapidriver.py" lineno="352">
3
+ <version>0.2.3</version>
4
4
  <doc>&lt;p&gt;Visit the &lt;a href="https://github.com/MarketSquare/robotframework-openapidriver"&gt;library page&lt;/a&gt; for an introduction and examples.&lt;/p&gt;</doc>
5
5
  <tags>
6
6
  </tags>
@@ -9,126 +9,192 @@
9
9
  <arguments repr="source: str, origin: str = , base_path: str = , included_paths: Iterable[str] | None = None, ignored_paths: Iterable[str] | None = None, ignored_responses: Iterable[int] | None = None, ignored_testcases: Iterable[Tuple[str, str, int]] | None = None, response_validation: ValidationLevel = WARN, disable_server_validation: bool = True, mappings_path: str | Path = , invalid_property_default_response: int = 422, default_id_property_name: str = id, faker_locale: str | List[str] | None = None, require_body_for_invalid_url: bool = False, recursion_limit: int = 1, recursion_default: Any = {}, username: str = , password: str = , security_token: str = , auth: AuthBase | None = None, cert: str | Tuple[str, str] | None = None, verify_tls: bool | str | None = True, extra_headers: Dict[str, str] | None = None, cookies: Dict[str, str] | RequestsCookieJar | None = None, proxies: Dict[str, str] | None = None">
10
10
  <arg kind="POSITIONAL_OR_NAMED" required="true" repr="source: str">
11
11
  <name>source</name>
12
- <type name="str" typedoc="string">str</type>
12
+ <type name="str" typedoc="string"/>
13
13
  </arg>
14
14
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="origin: str = ">
15
15
  <name>origin</name>
16
- <type name="str" typedoc="string">str</type>
16
+ <type name="str" typedoc="string"/>
17
17
  <default/>
18
18
  </arg>
19
19
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="base_path: str = ">
20
20
  <name>base_path</name>
21
- <type name="str" typedoc="string">str</type>
21
+ <type name="str" typedoc="string"/>
22
22
  <default/>
23
23
  </arg>
24
24
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="included_paths: Iterable[str] | None = None">
25
25
  <name>included_paths</name>
26
- <type name="Union" union="true">Iterable[str] | None<type name="Iterable">Iterable[str]<type name="str" typedoc="string">str</type></type><type name="None" typedoc="None">None</type></type>
26
+ <type name="Union" union="true">
27
+ <type name="Iterable">
28
+ <type name="str" typedoc="string"/>
29
+ </type>
30
+ <type name="None" typedoc="None"/>
31
+ </type>
27
32
  <default>None</default>
28
33
  </arg>
29
34
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="ignored_paths: Iterable[str] | None = None">
30
35
  <name>ignored_paths</name>
31
- <type name="Union" union="true">Iterable[str] | None<type name="Iterable">Iterable[str]<type name="str" typedoc="string">str</type></type><type name="None" typedoc="None">None</type></type>
36
+ <type name="Union" union="true">
37
+ <type name="Iterable">
38
+ <type name="str" typedoc="string"/>
39
+ </type>
40
+ <type name="None" typedoc="None"/>
41
+ </type>
32
42
  <default>None</default>
33
43
  </arg>
34
44
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="ignored_responses: Iterable[int] | None = None">
35
45
  <name>ignored_responses</name>
36
- <type name="Union" union="true">Iterable[int] | None<type name="Iterable">Iterable[int]<type name="int" typedoc="integer">int</type></type><type name="None" typedoc="None">None</type></type>
46
+ <type name="Union" union="true">
47
+ <type name="Iterable">
48
+ <type name="int" typedoc="integer"/>
49
+ </type>
50
+ <type name="None" typedoc="None"/>
51
+ </type>
37
52
  <default>None</default>
38
53
  </arg>
39
54
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="ignored_testcases: Iterable[Tuple[str, str, int]] | None = None">
40
55
  <name>ignored_testcases</name>
41
- <type name="Union" union="true">Iterable[Tuple[str, str, int]] | None<type name="Iterable">Iterable[Tuple[str, str, int]]<type name="Tuple" typedoc="tuple">Tuple[str, str, int]<type name="str" typedoc="string">str</type><type name="str" typedoc="string">str</type><type name="int" typedoc="integer">int</type></type></type><type name="None" typedoc="None">None</type></type>
56
+ <type name="Union" union="true">
57
+ <type name="Iterable">
58
+ <type name="Tuple" typedoc="tuple">
59
+ <type name="str" typedoc="string"/>
60
+ <type name="str" typedoc="string"/>
61
+ <type name="int" typedoc="integer"/>
62
+ </type>
63
+ </type>
64
+ <type name="None" typedoc="None"/>
65
+ </type>
42
66
  <default>None</default>
43
67
  </arg>
44
68
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="response_validation: ValidationLevel = WARN">
45
69
  <name>response_validation</name>
46
- <type name="ValidationLevel" typedoc="ValidationLevel">ValidationLevel</type>
70
+ <type name="ValidationLevel" typedoc="ValidationLevel"/>
47
71
  <default>WARN</default>
48
72
  </arg>
49
73
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="disable_server_validation: bool = True">
50
74
  <name>disable_server_validation</name>
51
- <type name="bool" typedoc="boolean">bool</type>
75
+ <type name="bool" typedoc="boolean"/>
52
76
  <default>True</default>
53
77
  </arg>
54
78
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="mappings_path: str | Path = ">
55
79
  <name>mappings_path</name>
56
- <type name="Union" union="true">str | Path<type name="str" typedoc="string">str</type><type name="Path" typedoc="Path">Path</type></type>
80
+ <type name="Union" union="true">
81
+ <type name="str" typedoc="string"/>
82
+ <type name="Path" typedoc="Path"/>
83
+ </type>
57
84
  <default/>
58
85
  </arg>
59
86
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="invalid_property_default_response: int = 422">
60
87
  <name>invalid_property_default_response</name>
61
- <type name="int" typedoc="integer">int</type>
88
+ <type name="int" typedoc="integer"/>
62
89
  <default>422</default>
63
90
  </arg>
64
91
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="default_id_property_name: str = id">
65
92
  <name>default_id_property_name</name>
66
- <type name="str" typedoc="string">str</type>
93
+ <type name="str" typedoc="string"/>
67
94
  <default>id</default>
68
95
  </arg>
69
96
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="faker_locale: str | List[str] | None = None">
70
97
  <name>faker_locale</name>
71
- <type name="Union" union="true">str | List[str] | None<type name="str" typedoc="string">str</type><type name="List" typedoc="list">List[str]<type name="str" typedoc="string">str</type></type><type name="None" typedoc="None">None</type></type>
98
+ <type name="Union" union="true">
99
+ <type name="str" typedoc="string"/>
100
+ <type name="List" typedoc="list">
101
+ <type name="str" typedoc="string"/>
102
+ </type>
103
+ <type name="None" typedoc="None"/>
104
+ </type>
72
105
  <default>None</default>
73
106
  </arg>
74
107
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="require_body_for_invalid_url: bool = False">
75
108
  <name>require_body_for_invalid_url</name>
76
- <type name="bool" typedoc="boolean">bool</type>
109
+ <type name="bool" typedoc="boolean"/>
77
110
  <default>False</default>
78
111
  </arg>
79
112
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="recursion_limit: int = 1">
80
113
  <name>recursion_limit</name>
81
- <type name="int" typedoc="integer">int</type>
114
+ <type name="int" typedoc="integer"/>
82
115
  <default>1</default>
83
116
  </arg>
84
117
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="recursion_default: Any = {}">
85
118
  <name>recursion_default</name>
86
- <type name="Any" typedoc="Any">Any</type>
119
+ <type name="Any" typedoc="Any"/>
87
120
  <default>{}</default>
88
121
  </arg>
89
122
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="username: str = ">
90
123
  <name>username</name>
91
- <type name="str" typedoc="string">str</type>
124
+ <type name="str" typedoc="string"/>
92
125
  <default/>
93
126
  </arg>
94
127
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="password: str = ">
95
128
  <name>password</name>
96
- <type name="str" typedoc="string">str</type>
129
+ <type name="str" typedoc="string"/>
97
130
  <default/>
98
131
  </arg>
99
132
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="security_token: str = ">
100
133
  <name>security_token</name>
101
- <type name="str" typedoc="string">str</type>
134
+ <type name="str" typedoc="string"/>
102
135
  <default/>
103
136
  </arg>
104
137
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="auth: AuthBase | None = None">
105
138
  <name>auth</name>
106
- <type name="Union" union="true">AuthBase | None<type name="AuthBase">AuthBase</type><type name="None" typedoc="None">None</type></type>
139
+ <type name="Union" union="true">
140
+ <type name="AuthBase"/>
141
+ <type name="None" typedoc="None"/>
142
+ </type>
107
143
  <default>None</default>
108
144
  </arg>
109
145
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="cert: str | Tuple[str, str] | None = None">
110
146
  <name>cert</name>
111
- <type name="Union" union="true">str | Tuple[str, str] | None<type name="str" typedoc="string">str</type><type name="Tuple" typedoc="tuple">Tuple[str, str]<type name="str" typedoc="string">str</type><type name="str" typedoc="string">str</type></type><type name="None" typedoc="None">None</type></type>
147
+ <type name="Union" union="true">
148
+ <type name="str" typedoc="string"/>
149
+ <type name="Tuple" typedoc="tuple">
150
+ <type name="str" typedoc="string"/>
151
+ <type name="str" typedoc="string"/>
152
+ </type>
153
+ <type name="None" typedoc="None"/>
154
+ </type>
112
155
  <default>None</default>
113
156
  </arg>
114
157
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="verify_tls: bool | str | None = True">
115
158
  <name>verify_tls</name>
116
- <type name="Union" union="true">bool | str | None<type name="bool" typedoc="boolean">bool</type><type name="str" typedoc="string">str</type><type name="None" typedoc="None">None</type></type>
159
+ <type name="Union" union="true">
160
+ <type name="bool" typedoc="boolean"/>
161
+ <type name="str" typedoc="string"/>
162
+ <type name="None" typedoc="None"/>
163
+ </type>
117
164
  <default>True</default>
118
165
  </arg>
119
166
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="extra_headers: Dict[str, str] | None = None">
120
167
  <name>extra_headers</name>
121
- <type name="Union" union="true">Dict[str, str] | None<type name="Dict" typedoc="dictionary">Dict[str, str]<type name="str" typedoc="string">str</type><type name="str" typedoc="string">str</type></type><type name="None" typedoc="None">None</type></type>
168
+ <type name="Union" union="true">
169
+ <type name="Dict" typedoc="dictionary">
170
+ <type name="str" typedoc="string"/>
171
+ <type name="str" typedoc="string"/>
172
+ </type>
173
+ <type name="None" typedoc="None"/>
174
+ </type>
122
175
  <default>None</default>
123
176
  </arg>
124
177
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="cookies: Dict[str, str] | RequestsCookieJar | None = None">
125
178
  <name>cookies</name>
126
- <type name="Union" union="true">Dict[str, str] | RequestsCookieJar | None<type name="Dict" typedoc="dictionary">Dict[str, str]<type name="str" typedoc="string">str</type><type name="str" typedoc="string">str</type></type><type name="RequestsCookieJar" typedoc="dictionary">RequestsCookieJar</type><type name="None" typedoc="None">None</type></type>
179
+ <type name="Union" union="true">
180
+ <type name="Dict" typedoc="dictionary">
181
+ <type name="str" typedoc="string"/>
182
+ <type name="str" typedoc="string"/>
183
+ </type>
184
+ <type name="RequestsCookieJar" typedoc="dictionary"/>
185
+ <type name="None" typedoc="None"/>
186
+ </type>
127
187
  <default>None</default>
128
188
  </arg>
129
189
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="proxies: Dict[str, str] | None = None">
130
190
  <name>proxies</name>
131
- <type name="Union" union="true">Dict[str, str] | None<type name="Dict" typedoc="dictionary">Dict[str, str]<type name="str" typedoc="string">str</type><type name="str" typedoc="string">str</type></type><type name="None" typedoc="None">None</type></type>
191
+ <type name="Union" union="true">
192
+ <type name="Dict" typedoc="dictionary">
193
+ <type name="str" typedoc="string"/>
194
+ <type name="str" typedoc="string"/>
195
+ </type>
196
+ <type name="None" typedoc="None"/>
197
+ </type>
132
198
  <default>None</default>
133
199
  </arg>
134
200
  </arguments>
@@ -199,19 +265,19 @@
199
265
  </init>
200
266
  </inits>
201
267
  <keywords>
202
- <kw name="Test Endpoint" source="/workspaces/robotframework-openapitools/src/OpenApiDriver/openapi_executors.py" lineno="175">
268
+ <kw name="Test Endpoint" source="/workspaces/robotframework-openapitools/src/OpenApiDriver/openapi_executors.py" lineno="156">
203
269
  <arguments repr="path: str, method: str, status_code: int">
204
270
  <arg kind="POSITIONAL_OR_NAMED" required="true" repr="path: str">
205
271
  <name>path</name>
206
- <type name="str" typedoc="string">str</type>
272
+ <type name="str" typedoc="string"/>
207
273
  </arg>
208
274
  <arg kind="POSITIONAL_OR_NAMED" required="true" repr="method: str">
209
275
  <name>method</name>
210
- <type name="str" typedoc="string">str</type>
276
+ <type name="str" typedoc="string"/>
211
277
  </arg>
212
278
  <arg kind="POSITIONAL_OR_NAMED" required="true" repr="status_code: int">
213
279
  <name>status_code</name>
214
- <type name="int" typedoc="integer">int</type>
280
+ <type name="int" typedoc="integer"/>
215
281
  </arg>
216
282
  </arguments>
217
283
  <doc>&lt;p&gt;Validate that performing the &lt;span class="name"&gt;method&lt;/span&gt; operation on &lt;a href="#type-Path" class="name"&gt;path&lt;/a&gt; results in a &lt;span class="name"&gt;status_code&lt;/span&gt; response.&lt;/p&gt;
@@ -219,15 +285,15 @@
219
285
  &lt;p&gt;The keyword calls other keywords to generate the neccesary data to perform the desired operation and validate the response against the openapi document.&lt;/p&gt;</doc>
220
286
  <shortdoc>Validate that performing the `method` operation on `path` results in a `status_code` response.</shortdoc>
221
287
  </kw>
222
- <kw name="Test Forbidden" source="/workspaces/robotframework-openapitools/src/OpenApiDriver/openapi_executors.py" lineno="116">
288
+ <kw name="Test Forbidden" source="/workspaces/robotframework-openapitools/src/OpenApiDriver/openapi_executors.py" lineno="97">
223
289
  <arguments repr="path: str, method: str">
224
290
  <arg kind="POSITIONAL_OR_NAMED" required="true" repr="path: str">
225
291
  <name>path</name>
226
- <type name="str" typedoc="string">str</type>
292
+ <type name="str" typedoc="string"/>
227
293
  </arg>
228
294
  <arg kind="POSITIONAL_OR_NAMED" required="true" repr="method: str">
229
295
  <name>method</name>
230
- <type name="str" typedoc="string">str</type>
296
+ <type name="str" typedoc="string"/>
231
297
  </arg>
232
298
  </arguments>
233
299
  <doc>&lt;p&gt;Perform a request for &lt;span class="name"&gt;method&lt;/span&gt; on the &lt;a href="#type-Path" class="name"&gt;path&lt;/a&gt;, with the provided authorization.&lt;/p&gt;
@@ -235,19 +301,19 @@
235
301
  &lt;p&gt;For this keyword to pass, the authorization parameters used to initialize the library should grant insufficient access rights to the target endpoint. &amp;gt; Note: No headers or (json) body are send with the request. For security reasons, the access rights validation should be checked first.&lt;/p&gt;</doc>
236
302
  <shortdoc>Perform a request for `method` on the `path`, with the provided authorization.</shortdoc>
237
303
  </kw>
238
- <kw name="Test Invalid Url" source="/workspaces/robotframework-openapitools/src/OpenApiDriver/openapi_executors.py" lineno="133">
304
+ <kw name="Test Invalid Url" source="/workspaces/robotframework-openapitools/src/OpenApiDriver/openapi_executors.py" lineno="114">
239
305
  <arguments repr="path: str, method: str, expected_status_code: int = 404">
240
306
  <arg kind="POSITIONAL_OR_NAMED" required="true" repr="path: str">
241
307
  <name>path</name>
242
- <type name="str" typedoc="string">str</type>
308
+ <type name="str" typedoc="string"/>
243
309
  </arg>
244
310
  <arg kind="POSITIONAL_OR_NAMED" required="true" repr="method: str">
245
311
  <name>method</name>
246
- <type name="str" typedoc="string">str</type>
312
+ <type name="str" typedoc="string"/>
247
313
  </arg>
248
314
  <arg kind="POSITIONAL_OR_NAMED" required="false" repr="expected_status_code: int = 404">
249
315
  <name>expected_status_code</name>
250
- <type name="int" typedoc="integer">int</type>
316
+ <type name="int" typedoc="integer"/>
251
317
  <default>404</default>
252
318
  </arg>
253
319
  </arguments>
@@ -257,15 +323,15 @@
257
323
  &lt;p&gt;&amp;gt; Note: Depending on API design, the url may be validated before or after validation of headers, query parameters and / or (json) body. By default, no parameters are send with the request. The &lt;span class="name"&gt;require_body_for_invalid_url&lt;/span&gt; parameter can be set to &lt;span class="name"&gt;True&lt;/span&gt; if needed.&lt;/p&gt;</doc>
258
324
  <shortdoc>Perform a request for the provided 'path' and 'method' where the url for the `path` is invalidated.</shortdoc>
259
325
  </kw>
260
- <kw name="Test Unauthorized" source="/workspaces/robotframework-openapitools/src/OpenApiDriver/openapi_executors.py" lineno="95">
326
+ <kw name="Test Unauthorized" source="/workspaces/robotframework-openapitools/src/OpenApiDriver/openapi_executors.py" lineno="76">
261
327
  <arguments repr="path: str, method: str">
262
328
  <arg kind="POSITIONAL_OR_NAMED" required="true" repr="path: str">
263
329
  <name>path</name>
264
- <type name="str" typedoc="string">str</type>
330
+ <type name="str" typedoc="string"/>
265
331
  </arg>
266
332
  <arg kind="POSITIONAL_OR_NAMED" required="true" repr="method: str">
267
333
  <name>method</name>
268
- <type name="str" typedoc="string">str</type>
334
+ <type name="str" typedoc="string"/>
269
335
  </arg>
270
336
  </arguments>
271
337
  <doc>&lt;p&gt;Perform a request for &lt;span class="name"&gt;method&lt;/span&gt; on the &lt;a href="#type-Path" class="name"&gt;path&lt;/a&gt;, with no authorization.&lt;/p&gt;
@@ -274,19 +340,6 @@
274
340
  <shortdoc>Perform a request for `method` on the `path`, with no authorization.</shortdoc>
275
341
  </kw>
276
342
  </keywords>
277
- <datatypes>
278
- <enums>
279
- <enum name="ValidationLevel">
280
- <doc>&lt;p&gt;The available levels for the response_validation parameter.&lt;/p&gt;</doc>
281
- <members>
282
- <member name="DISABLED" value="DISABLED"/>
283
- <member name="INFO" value="INFO"/>
284
- <member name="WARN" value="WARN"/>
285
- <member name="STRICT" value="STRICT"/>
286
- </members>
287
- </enum>
288
- </enums>
289
- </datatypes>
290
343
  <typedocs>
291
344
  <type name="Any" type="Standard">
292
345
  <doc>&lt;p&gt;Any value is accepted. No conversion is done.&lt;/p&gt;</doc>
@@ -1,48 +1,54 @@
1
- """
2
- The OpenApiLibCore package is intended to be used as a dependency for other
3
- Robot Framework libraries that facilitate the testing of OpenAPI / Swagger APIs.
4
- The following classes and constants are exposed to be used by the library user:
5
- - OpenApiLibCore: The class to be imported in the Robot Framework library.
6
- - IdDependency, IdReference, PathPropertiesConstraint, PropertyValueConstraint,
7
- UniquePropertyValueConstraint: Classes to be subclassed by the library user
8
- when implementing a custom mapping module (advanced use).
9
- - Dto, Relation: Base classes that can be used for type annotations.
10
- - IGNORE: A special constant that can be used as a value in the PropertyValueConstraint.
11
- """
12
-
13
- from importlib.metadata import version
14
-
15
- from OpenApiLibCore.dto_base import (
16
- Dto,
17
- IdDependency,
18
- IdReference,
19
- PathPropertiesConstraint,
20
- PropertyValueConstraint,
21
- Relation,
22
- UniquePropertyValueConstraint,
23
- resolve_schema,
24
- )
25
- from OpenApiLibCore.dto_utils import DefaultDto
26
- from OpenApiLibCore.openapi_libcore import OpenApiLibCore, RequestData, RequestValues
27
- from OpenApiLibCore.value_utils import IGNORE
28
-
29
- try:
30
- __version__ = version("robotframework-openapi-libcore")
31
- except Exception: # pragma: no cover
32
- pass
33
-
34
- __all__ = [
35
- "Dto",
36
- "IdDependency",
37
- "IdReference",
38
- "PathPropertiesConstraint",
39
- "PropertyValueConstraint",
40
- "Relation",
41
- "UniquePropertyValueConstraint",
42
- "DefaultDto",
43
- "OpenApiLibCore",
44
- "RequestData",
45
- "RequestValues",
46
- "resolve_schema",
47
- "IGNORE",
48
- ]
1
+ """
2
+ The OpenApiLibCore package is intended to be used as a dependency for other
3
+ Robot Framework libraries that facilitate the testing of OpenAPI / Swagger APIs.
4
+ The following classes and constants are exposed to be used by the library user:
5
+ - OpenApiLibCore: The class to be imported in the Robot Framework library.
6
+ - IdDependency, IdReference, PathPropertiesConstraint, PropertyValueConstraint,
7
+ UniquePropertyValueConstraint: Classes to be subclassed by the library user
8
+ when implementing a custom mapping module (advanced use).
9
+ - Dto, Relation: Base classes that can be used for type annotations.
10
+ - IGNORE: A special constant that can be used as a value in the PropertyValueConstraint.
11
+ """
12
+
13
+ from importlib.metadata import version
14
+
15
+ from OpenApiLibCore.dto_base import (
16
+ Dto,
17
+ IdDependency,
18
+ IdReference,
19
+ PathPropertiesConstraint,
20
+ PropertyValueConstraint,
21
+ Relation,
22
+ UniquePropertyValueConstraint,
23
+ resolve_schema,
24
+ )
25
+ from OpenApiLibCore.dto_utils import DefaultDto
26
+ from OpenApiLibCore.openapi_libcore import (
27
+ OpenApiLibCore,
28
+ RequestData,
29
+ RequestValues,
30
+ ValidationLevel,
31
+ )
32
+ from OpenApiLibCore.value_utils import IGNORE
33
+
34
+ try:
35
+ __version__ = version("robotframework-openapi-libcore")
36
+ except Exception: # pragma: no cover
37
+ pass
38
+
39
+ __all__ = [
40
+ "Dto",
41
+ "IdDependency",
42
+ "IdReference",
43
+ "PathPropertiesConstraint",
44
+ "PropertyValueConstraint",
45
+ "Relation",
46
+ "UniquePropertyValueConstraint",
47
+ "DefaultDto",
48
+ "OpenApiLibCore",
49
+ "RequestData",
50
+ "RequestValues",
51
+ "ValidationLevel",
52
+ "resolve_schema",
53
+ "IGNORE",
54
+ ]
@@ -77,9 +77,9 @@ def merge_schemas(first: Dict[str, Any], second: Dict[str, Any]) -> Dict[str, An
77
77
  # if the key holds a list, extend the values (e.g. 'required')
78
78
  merged_schema[key].extend(value)
79
79
  elif value != merged_schema[key]:
80
- logger.warning(
81
- f"key '{key}' with value '{merged_schema[key]}' not "
82
- f"updated to '{value}'"
80
+ logger.debug(
81
+ f"key '{key}' with value '{merged_schema[key]}'"
82
+ f" not updated to '{value}'"
83
83
  )
84
84
  else:
85
85
  merged_schema[key] = value