ab-openapi-python-generator 2.2.0__tar.gz → 2.2.1__tar.gz
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.
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/PKG-INFO +1 -1
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/pyproject.toml +1 -1
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/generate_data.py +1 -1
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/language_converters/python/client_generator.py +20 -26
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/language_converters/python/jinja_config.py +2 -1
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/language_converters/python/model_generator.py +1 -1
- ab_openapi_python_generator-2.2.1/tests/test_jinja_no_autoescape.py +10 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_openapi_30.py +1 -1
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_openapi_31.py +1 -1
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_openapi_31_completeness.py +3 -3
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_openapi_31_coverage.py +2 -2
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_openapi_31_schema_features.py +3 -3
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_swagger_petstore_30.py +2 -2
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_swagger_petstore_31.py +4 -4
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/.envrc.example +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/.gitattributes +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/.github/dependabot.yml +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/.github/workflows/ci.yaml +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/.github/workflows/publish.yaml +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/.gitignore +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/.pre-commit-config.yaml +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/.vscode/launch.json +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/.vscode/tasks.json +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/LICENSE +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/Makefile +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/README.md +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/docs/acknowledgements/index.md +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/docs/css/custom.css +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/docs/css/termynal.css +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/docs/index.md +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/docs/js/custom.js +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/docs/js/termynal.js +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/docs/openapi-definition.md +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/docs/quick_start.md +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/docs/references/index.md +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/docs/references/module_usage.md +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/docs/tutorial/advanced.md +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/docs/tutorial/authentication.md +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/docs/tutorial/index.md +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/logo.png +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/__init__.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/__main__.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/common.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/language_converters/__init__.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/language_converters/python/__init__.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/language_converters/python/common.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/language_converters/python/exception_generator.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/language_converters/python/generator.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/language_converters/python/templates/alias_union.jinja2 +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/language_converters/python/templates/async_client_httpx_pydantic_2.jinja2 +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/language_converters/python/templates/discriminator_enum.jinja2 +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/language_converters/python/templates/enum.jinja2 +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/language_converters/python/templates/http_exception.jinja2 +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/language_converters/python/templates/models.jinja2 +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/language_converters/python/templates/models_pydantic_2.jinja2 +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/language_converters/python/templates/sync_client_httpx_pydantic_2.jinja2 +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/models.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/parsers/__init__.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/parsers/openapi_30.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/parsers/openapi_31.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/py.typed +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/src/ab_openapi_python_generator/version_detector.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/__init__.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/build_test_api/api.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/conftest.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_common_normalize_symbol.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_data/failing_api.json +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_data/gitea_issue_11.json +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_data/issue_117.json +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_data/issue_120.json +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_data/issue_17.json +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_data/issue_30_87.json +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_data/issue_51.json +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_data/issue_55.json +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_data/issue_71.json +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_data/issue_71_31.json +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_data/issue_illegal_character_in_operation_id.json +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_data/issue_keyword_parameter_name.json +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_data/openapi_gitea_converted.json +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_data/swagger_petstore_3_0_4.yaml +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_data/swagger_petstore_3_1.yaml +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_data/test_api.json +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_data/test_api_31.json +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_generate_data.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_generate_data_negative.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_generated_code.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_main.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_model_docstring.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_model_generator.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_model_generator_edges.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_service_generator.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_service_generator_edges.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_version_detector_edges.py +0 -0
- {ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ab-openapi-python-generator
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.1
|
|
4
4
|
Summary: Openapi Python Generator
|
|
5
5
|
Project-URL: Homepage, https://github.com/auth-broker/openapi-python-generator
|
|
6
6
|
Project-URL: Repository, https://github.com/auth-broker/openapi-python-generator
|
|
@@ -125,7 +125,7 @@ def write_data(data: ConversionResult, output: Union[str, Path], formatter: Form
|
|
|
125
125
|
Creates:
|
|
126
126
|
- models/ (and models/__init__.py)
|
|
127
127
|
- clients/ (and clients/__init__.py)
|
|
128
|
-
- exceptions
|
|
128
|
+
- exceptions (package root/__init__.py)
|
|
129
129
|
- __init__.py (package root)
|
|
130
130
|
"""
|
|
131
131
|
out = Path(output)
|
|
@@ -363,34 +363,28 @@ def generate_clients(
|
|
|
363
363
|
def _generate_service_operation(
|
|
364
364
|
op: Operation, path_obj: PathItem, path_name: str, http_operation: str, async_type: bool
|
|
365
365
|
) -> ServiceOperation:
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
if
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
op.parameters.append(p) # type: ignore
|
|
381
|
-
except Exception:
|
|
382
|
-
pass
|
|
366
|
+
path_level_params = []
|
|
367
|
+
if hasattr(path_obj, "parameters") and path_obj.parameters is not None:
|
|
368
|
+
path_level_params = [p for p in path_obj.parameters if p is not None]
|
|
369
|
+
if path_level_params:
|
|
370
|
+
existing_names = set()
|
|
371
|
+
if op.parameters is not None:
|
|
372
|
+
for p in op.parameters:
|
|
373
|
+
if isinstance(p, (Parameter30, Parameter31)):
|
|
374
|
+
existing_names.add(p.name)
|
|
375
|
+
for p in path_level_params:
|
|
376
|
+
if isinstance(p, (Parameter30, Parameter31)) and p.name not in existing_names:
|
|
377
|
+
if op.parameters is None:
|
|
378
|
+
op.parameters = [] # type: ignore
|
|
379
|
+
op.parameters.append(p) # type: ignore
|
|
383
380
|
|
|
384
381
|
params = generate_params(op)
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
params = f"{norm_ph}: Any, " + params
|
|
392
|
-
except Exception:
|
|
393
|
-
pass
|
|
382
|
+
placeholder_names = [m.group(1) for m in re.finditer(r"\{([^}/]+)\}", path_name)]
|
|
383
|
+
existing_param_names = {p.split(":")[0].strip() for p in params.split(",") if ":" in p}
|
|
384
|
+
for ph in placeholder_names:
|
|
385
|
+
norm_ph = common.normalize_symbol(ph)
|
|
386
|
+
if norm_ph not in existing_param_names and norm_ph:
|
|
387
|
+
params = f"{norm_ph}: Any, " + params
|
|
394
388
|
|
|
395
389
|
operation_id = generate_operation_id(op, http_operation, path_name)
|
|
396
390
|
query_params = generate_query_params(op)
|
|
@@ -28,8 +28,9 @@ def create_jinja_env():
|
|
|
28
28
|
if custom_template_path is not None
|
|
29
29
|
else FileSystemLoader(TEMPLATE_PATH)
|
|
30
30
|
),
|
|
31
|
-
autoescape=
|
|
31
|
+
autoescape=False,
|
|
32
32
|
trim_blocks=True,
|
|
33
|
+
lstrip_blocks=True,
|
|
33
34
|
)
|
|
34
35
|
|
|
35
36
|
environment.filters["normalize_symbol"] = common.normalize_symbol
|
|
@@ -266,7 +266,7 @@ def _discover_discriminated_unions(
|
|
|
266
266
|
register_union(schema_name, schema)
|
|
267
267
|
|
|
268
268
|
# 2) inline/property discriminated unions
|
|
269
|
-
for
|
|
269
|
+
for _parent_name, parent_schema in components.schemas.items():
|
|
270
270
|
props = getattr(parent_schema, "properties", None) or {}
|
|
271
271
|
for prop_name, prop_schema in props.items():
|
|
272
272
|
disc = getattr(prop_schema, "discriminator", None)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
def test_jinja_no_autoescape():
|
|
2
|
+
from ab_openapi_python_generator.language_converters.python.jinja_config import (
|
|
3
|
+
create_jinja_env,
|
|
4
|
+
)
|
|
5
|
+
|
|
6
|
+
env = create_jinja_env()
|
|
7
|
+
template = env.from_string("{{ s }}")
|
|
8
|
+
out = template.render(s="'scope' : scope,")
|
|
9
|
+
assert "'" not in out
|
|
10
|
+
assert out == "'scope' : scope,"
|
{ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_openapi_30.py
RENAMED
|
@@ -190,7 +190,7 @@ class TestOpenAPI30:
|
|
|
190
190
|
assert (output_dir / "__init__.py").exists()
|
|
191
191
|
assert (output_dir / "models").exists()
|
|
192
192
|
assert (output_dir / "services").exists()
|
|
193
|
-
assert (output_dir / "
|
|
193
|
+
assert (output_dir / "exceptions").exists()
|
|
194
194
|
|
|
195
195
|
# Check model structure
|
|
196
196
|
assert (output_dir / "models" / "__init__.py").exists()
|
{ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_openapi_31.py
RENAMED
|
@@ -242,7 +242,7 @@ class TestOpenAPI31:
|
|
|
242
242
|
assert (output_dir / "__init__.py").exists()
|
|
243
243
|
assert (output_dir / "models").exists()
|
|
244
244
|
assert (output_dir / "services").exists()
|
|
245
|
-
assert (output_dir / "
|
|
245
|
+
assert (output_dir / "exceptions").exists()
|
|
246
246
|
|
|
247
247
|
# Check model structure
|
|
248
248
|
assert (output_dir / "models" / "__init__.py").exists()
|
|
@@ -356,8 +356,8 @@ class TestOpenAPI31Completeness:
|
|
|
356
356
|
# Verify basic structure
|
|
357
357
|
assert (temp_path / "__init__.py").exists()
|
|
358
358
|
assert (temp_path / "models").exists()
|
|
359
|
-
assert (temp_path / "
|
|
360
|
-
assert (temp_path / "
|
|
359
|
+
assert (temp_path / "clients").exists()
|
|
360
|
+
assert (temp_path / "exceptions").exists()
|
|
361
361
|
|
|
362
362
|
# Verify library-specific imports in services
|
|
363
363
|
services_dir = temp_path / "services"
|
|
@@ -538,7 +538,7 @@ class TestOpenAPI31Completeness:
|
|
|
538
538
|
# Verify files exist
|
|
539
539
|
assert (temp_path / "__init__.py").exists()
|
|
540
540
|
assert (temp_path / "models").exists()
|
|
541
|
-
assert (temp_path / "
|
|
541
|
+
assert (temp_path / "clients").exists()
|
|
542
542
|
|
|
543
543
|
# Check for orjson usage if enabled
|
|
544
544
|
if use_orjson:
|
|
@@ -327,8 +327,8 @@ class TestOpenAPI31SupportedFeatures:
|
|
|
327
327
|
|
|
328
328
|
# Verify files exist
|
|
329
329
|
assert (temp_path / "models").exists()
|
|
330
|
-
assert (temp_path / "
|
|
331
|
-
assert (temp_path / "
|
|
330
|
+
assert (temp_path / "clients").exists()
|
|
331
|
+
assert (temp_path / "exceptions").exists()
|
|
332
332
|
|
|
333
333
|
# Check that the code compiles
|
|
334
334
|
models_dir = temp_path / "models"
|
|
@@ -394,9 +394,9 @@ class TestOpenAPI31SchemaFeatures:
|
|
|
394
394
|
)
|
|
395
395
|
|
|
396
396
|
# Verify files are generated
|
|
397
|
-
assert (temp_path / "models
|
|
398
|
-
assert (temp_path / "
|
|
399
|
-
assert (temp_path / "
|
|
397
|
+
assert (temp_path / "models").exists()
|
|
398
|
+
assert (temp_path / "clients").exists()
|
|
399
|
+
assert (temp_path / "exceptions").exists()
|
|
400
400
|
|
|
401
401
|
# Verify the generated code compiles
|
|
402
402
|
models_content = (temp_path / "models.py").read_text()
|
|
@@ -129,7 +129,7 @@ class TestSwaggerPetstore30:
|
|
|
129
129
|
assert (output_dir / "__init__.py").exists()
|
|
130
130
|
assert (output_dir / "models").exists()
|
|
131
131
|
assert (output_dir / "services").exists()
|
|
132
|
-
assert (output_dir / "
|
|
132
|
+
assert (output_dir / "exceptions").exists()
|
|
133
133
|
|
|
134
134
|
# Check model files
|
|
135
135
|
models_dir = output_dir / "models"
|
|
@@ -169,7 +169,7 @@ class TestSwaggerPetstore30:
|
|
|
169
169
|
|
|
170
170
|
# Basic validation that output was created
|
|
171
171
|
assert output_dir.exists()
|
|
172
|
-
assert (output_dir / "
|
|
172
|
+
assert (output_dir / "exceptions").exists()
|
|
173
173
|
|
|
174
174
|
def test_petstore_30_model_generation(self, petstore_30_spec):
|
|
175
175
|
"""Test that model generation works correctly for Petstore 3.0."""
|
|
@@ -148,8 +148,8 @@ class TestSwaggerPetstore31:
|
|
|
148
148
|
# Check that files were generated
|
|
149
149
|
assert (output_dir / "__init__.py").exists()
|
|
150
150
|
assert (output_dir / "models").exists()
|
|
151
|
-
assert (output_dir / "
|
|
152
|
-
assert (output_dir / "
|
|
151
|
+
assert (output_dir / "clients").exists()
|
|
152
|
+
assert (output_dir / "exceptions").exists()
|
|
153
153
|
|
|
154
154
|
# Check model files
|
|
155
155
|
models_dir = output_dir / "models"
|
|
@@ -189,7 +189,7 @@ class TestSwaggerPetstore31:
|
|
|
189
189
|
|
|
190
190
|
# Basic validation that output was created
|
|
191
191
|
assert output_dir.exists()
|
|
192
|
-
assert (output_dir / "
|
|
192
|
+
assert (output_dir / "exceptions").exists()
|
|
193
193
|
|
|
194
194
|
@pytest.mark.parametrize("use_orjson", [True, False])
|
|
195
195
|
def test_petstore_31_with_orjson_options(self, petstore_31_spec_path, use_orjson):
|
|
@@ -207,7 +207,7 @@ class TestSwaggerPetstore31:
|
|
|
207
207
|
|
|
208
208
|
# Basic validation that output was created
|
|
209
209
|
assert output_dir.exists()
|
|
210
|
-
assert (output_dir / "
|
|
210
|
+
assert (output_dir / "exceptions").exists()
|
|
211
211
|
|
|
212
212
|
def test_petstore_31_uuid_parameters(self, petstore_31_spec):
|
|
213
213
|
"""Test that UUID parameters in Petstore 3.1 are handled correctly."""
|
|
File without changes
|
|
File without changes
|
{ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/.github/dependabot.yml
RENAMED
|
File without changes
|
{ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/.github/workflows/ci.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/.pre-commit-config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/docs/css/termynal.css
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/docs/openapi-definition.md
RENAMED
|
File without changes
|
|
File without changes
|
{ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/docs/references/index.md
RENAMED
|
File without changes
|
|
File without changes
|
{ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/docs/tutorial/advanced.md
RENAMED
|
File without changes
|
|
File without changes
|
{ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/docs/tutorial/index.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/build_test_api/api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_generate_data.py
RENAMED
|
File without changes
|
|
File without changes
|
{ab_openapi_python_generator-2.2.0 → ab_openapi_python_generator-2.2.1}/tests/test_generated_code.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|