Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
f8e063b
New endpoint and related tests for requests with non-object body.
robinmackaij Oct 1, 2025
4ef9dc3
Reorganize into submodules, moving logic into oas_models
robinmackaij Oct 2, 2025
c5a4df5
Fixed imports in unit tests
robinmackaij Oct 2, 2025
bff924d
Refactor towards removing get_path_dto_class
robinmackaij Oct 2, 2025
24aadd2
id_mapping attached to PathItemObject
robinmackaij Oct 3, 2025
92c64ea
path_mapping cleanup
robinmackaij Oct 3, 2025
aeb05e8
dto_mapping refactored, DefaultDto no longer needed
robinmackaij Oct 3, 2025
17fb906
Some naming improvements
robinmackaij Oct 3, 2025
a653cbf
Separate generated json_data from constraint logic, move valid value …
robinmackaij Oct 7, 2025
4624527
Improved invalidation logic for array bodies
robinmackaij Oct 7, 2025
3eff093
Add Python 3.14 to ci
robinmackaij Oct 20, 2025
2a07847
minimize devcontainer extensions
robinmackaij Oct 20, 2025
9874ba9
version bump and dependency update
robinmackaij Oct 20, 2025
8dd58ab
add .robot.tom to gitignore
robinmackaij Oct 20, 2025
b916ac5
Intermediate rename / refactor step
robinmackaij Oct 20, 2025
dafc2c8
Merge branch 'main' into 9_support_array_request_body
robinmackaij Nov 3, 2025
5868713
poetry.lock regenerated
robinmackaij Nov 3, 2025
9680d40
Merge branch 'main' into 9_support_array_request_body
robinmackaij Nov 17, 2025
c2b6b3e
Merge branch 'main' into 9_support_array_request_body
robinmackaij Nov 18, 2025
22482a4
Parameters at path level no longer need to be registered.
robinmackaij Nov 18, 2025
56a6908
refactor: get_invalid_value_from_constraint moved to models
robinmackaij Nov 19, 2025
100bb86
remove unused method
robinmackaij Nov 19, 2025
1d020eb
annotation improvements
robinmackaij Nov 19, 2025
94ec1c3
Missing tests for ID mapping added
robinmackaij Nov 20, 2025
b4d1eb8
annotation improvements
robinmackaij Nov 20, 2025
e779014
no cover markers added
robinmackaij Nov 20, 2025
08d878e
Addressing typing issues
robinmackaij Nov 25, 2025
0a8ebd2
Fix for Response headers that contain charset for json mime types
robinmackaij Nov 26, 2025
cec0df8
address deprecation in openapi_core
robinmackaij Nov 27, 2025
bd4d82d
prevent KeyError during response validation
robinmackaij Nov 27, 2025
9c12a0d
Added missing tests
robinmackaij Nov 27, 2025
deb62f9
Updated dependencies / minimum versions
robinmackaij Nov 27, 2025
ed27ecb
Additional tests on schema variations, model discriminator refactor
robinmackaij Dec 1, 2025
24deb08
Handle Content-Type case-insensitive
robinmackaij Dec 2, 2025
96a057c
get_invalid_data on ObjectSchema refactored / simplified
robinmackaij Dec 2, 2025
d2e7251
ignore markers and docuementation changes
robinmackaij Dec 2, 2025
d0c7bc7
unit tests restructured and improved
robinmackaij Dec 2, 2025
9e64e0f
example EtagListener improved header handling
robinmackaij Dec 2, 2025
780438d
Remove disfunctional byte string support
robinmackaij Dec 5, 2025
3a587a8
coverage pragma tweaks
robinmackaij Dec 5, 2025
aa51dce
Push constraint mapping to Schemas
robinmackaij Dec 9, 2025
f956c41
Further refactored, added tests
robinmackaij Dec 9, 2025
767a201
Removed unused code, updated coverage pragmas.
robinmackaij Dec 9, 2025
c95fba8
Merge pull request #99 from MarketSquare/9_support_array_request_body
robinmackaij Dec 9, 2025
c199bce
Fix unit tests under Python 3.14
robinmackaij Dec 10, 2025
e405b3b
Initial release notes
robinmackaij Dec 11, 2025
1aa4e26
various fixes, tests green
robinmackaij Dec 15, 2025
164fdc7
Fixes and additional tests
robinmackaij Dec 18, 2025
8c33740
Merge pull request #104 from MarketSquare/81_nullable_not_used_in_get…
robinmackaij Dec 18, 2025
6615484
Update to release notes
robinmackaij Dec 18, 2025
ae57c03
Use caps for encoding (consistency change)
robinmackaij Dec 19, 2025
8ffdf1e
Boyscout: address warning due to non-unique generated test name
robinmackaij Dec 19, 2025
0a2e25e
Refactor to prevent SSLErros from prance when cert is set at library …
robinmackaij Dec 19, 2025
928b4d2
Release notes update
robinmackaij Dec 19, 2025
7233403
Merge pull request #105 from MarketSquare/93_prevent_ssl_error_if_cer…
robinmackaij Dec 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,8 @@
"charliermarsh.ruff",
"d-biehl.robotcode",
"tamasfe.even-better-toml",
"ms-azuretools.vscode-docker",
"Gruntfuggly.todo-tree",
"shardulm94.trailing-spaces"
"ms-azuretools.vscode-docker"

]
}
}
Expand Down
7 changes: 6 additions & 1 deletion .github/workflows/on-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
strategy:
matrix:
os: [ 'ubuntu-latest', 'windows-latest']
python-version: ['3.10', '3.11', '3.12', '3.13']
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
robot-version: ['6.1.1', '7.3.2']
exclude:
- os: 'windows-latest'
Expand All @@ -62,6 +62,8 @@ jobs:
python-version: '3.11'
- os: 'windows-latest'
python-version: '3.12'
- os: 'windows-latest'
python-version: '3.13'
- os: 'ubuntu-latest'
python-version: '3.10'
robot-version: '6.1.1'
Expand All @@ -71,6 +73,9 @@ jobs:
- os: 'ubuntu-latest'
python-version: '3.12'
robot-version: '6.1.1'
- os: 'ubuntu-latest'
python-version: '3.13'
robot-version: '6.1.1'
fail-fast: false
steps:
- uses: actions/checkout@v6
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@ coverage.xml
env/
venv/

# IDE config
# IDE config and local tool settings
.vscode/launch.json
.vscode/settings.json
.robot.toml

# default logs location for the repo
tests/logs
Expand Down
40 changes: 37 additions & 3 deletions docs/releases.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,48 @@
# Release notes

## OpenApiTools v1.0.5
## OpenApiTools v2.0.0

### Major changes and new features
- Request bodies now support all JSON types, not just `objects` (`dicts`).
- This closes issue *#9: No body generated when root is a list*.
- The `Relations` still need to be reworked to align with this change.
- Refactored retrieving / loading of the OpenAPI spec.
- This closes issue *#93: SSL error even if cert / verify is set*.
- Improved handling of `treat_as_mandatory` on a `PropertyValueConstraint`.
- Added support for using `IGNORE` as `invalid_value` on a `PropertyValueConstraint`.

### Bugfixes
- `parameters` at path level are not taken into account at operation level
- Added support for the `nullable` property in OAS 3.0 schemas when generating data.
- This closes issue *#81: nullable not taken into account in get_valid_value*.
- Fixed validation errors caused by `Content-Type` not being handled case-insensitive.
- Fixed an exception during validation caused by `charset` being included in the `Content-Type` header for `application/json`.

### Breaking changes
- `invalid_property_default_response` library parameter renamed to `invalid_data_default_response`.
- The `RequestData` class that is returned by a number of keywords has been changed:
- The `dto` property was removed.
- The `valid_data` property was added.
- The `constrait_mapping` property was added.

### Additional changes
- Special handling of `"format": "byte"` for `"type": "string"` (OAS 3.0) was removed.
- While some logic related to this worked, the result was never JSON-serializable.
- The devcontainer setup was updated.
- The GitHub pipeline was updated to include Python 3.14.
- Updated minimum version markers for many dependencies.
- Annotations are now complete (as far as possible under Python 3.10).

<br><br><br>

## Previous versions

### OpenApiTools v1.0.5

#### Bugfixes
- `parameters` at path level are not taken into account at operation level.

---

### OpenApiTools v1.0.4

#### Bugfixes
Expand Down Expand Up @@ -41,7 +75,7 @@
### OpenApiTools v1.0.1

#### Bugfixes
- `openapitools_docs` was missing from package distribution
- `openapitools_docs` was missing from package distribution.

---

Expand Down
1,065 changes: 506 additions & 559 deletions poetry.lock

Large diffs are not rendered by default.

26 changes: 13 additions & 13 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name="robotframework-openapitools"
version = "1.0.5"
version = "2.0.0b1"
description = "A set of Robot Framework libraries to test APIs for which the OAS is available."
authors = [
{name = "Robin Mackaij", email = "[email protected]"},
Expand Down Expand Up @@ -28,12 +28,11 @@ dependencies = [
"robotframework >= 6.0.0, !=7.0.0",
"robotframework-datadriver >= 1.10.0",
"requests >= 2.31.0",
"prance[CLI] >= 23",
"Faker >= 23.1.0",
"prance[CLI] >= 25",
"Faker >= 38.0.0",
"rstr >= 3.2.0",
"openapi-core >= 0.19.0",
"rich_click >= 1.7.0",
"black >= 24.1.0",
"Jinja2 >= 3.1.2",
"pydantic >= 2.11.0",
]
Expand All @@ -42,23 +41,23 @@ dependencies = [
dev = [
"invoke >= 2.2.0",
"robotframework-stacktrace >= 0.4.0",
"uvicorn >= 0.27.0",
"fastapi >= 0.109.0",
"uvicorn >= 0.38.0",
"fastapi >= 0.122.0",
"coverage[toml] >= 7.2.0",
"robotcode-runner >= 1.0.3",
"robotcode-runner >= 2.0.0",
"genbadge[coverage] >= 1.1.2",
]
type-checking = [
"mypy >= 1.14.1",
"types-requests >= 2.31.0",
"types-invoke >= 2.0.0.0",
"pyright >= 1.1.350",
"robotcode-analyze >= 1.0.3",
"pyright >= 1.1.400",
"robotcode-analyze >= 2.0.0",
]
lint-and-format = [
"ruff >= 0.9.0",
"pylint >= 3.3.3",
"robotframework-robocop >= 5.7.0",
"ruff >= 0.14.0",
"pylint >= 4.0.0",
"robotframework-robocop >= 6.0.0",
]

[project.urls]
Expand Down Expand Up @@ -108,7 +107,7 @@ build-backend = "poetry.core.masonry.api"
branch = true
parallel = true
source = ["src/OpenApiDriver", "src/OpenApiLibCore", "src/openapi_libgen"]
omit = ["src/openapi_libgen/command_line.py"]
omit = ["src/openapi_libgen/command_line.py", "src/OpenApiLibCore/protocols.py"]

[tool.coverage.report]
exclude_lines = [
Expand All @@ -126,6 +125,7 @@ disallow_untyped_defs = true
strict = true
show_error_codes = true
exclude = []
follow_untyped_imports = true

[[tool.mypy.overrides]]
module = [
Expand Down
8 changes: 5 additions & 3 deletions src/OpenApiDriver/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,19 @@
from importlib.metadata import version

from OpenApiDriver.openapidriver import OpenApiDriver
from OpenApiLibCore.dto_base import (
from OpenApiLibCore.data_constraints.dto_base import (
Dto,
)
from OpenApiLibCore.keyword_logic.validation import ValidationLevel
from OpenApiLibCore.models import IGNORE
from OpenApiLibCore.models.resource_relations import (
IdDependency,
IdReference,
PathPropertiesConstraint,
PropertyValueConstraint,
ResourceRelation,
UniquePropertyValueConstraint,
)
from OpenApiLibCore.validation import ValidationLevel
from OpenApiLibCore.value_utils import IGNORE

try:
__version__ = version("robotframework-openapidriver")
Expand Down
Loading