- Moved header sanitazion to ensure it's always applied.
- This closes issue #137: Error on DataValidationError.
- Request bodies now support all JSON types, not just
objects(dicts).- This closes issue #9: No body generated when root is a list.
- Some of the
Relationsstill need to be reworked to (fully) align with this change.
- Refactored retrieving / loading of the OpenAPI spec.
- This closes issue #93: SSL error even if cert / verify is set.
- Added keywords to make it easier to work with the
RequestValuesobject:Get Request Values Objectcan be used to create aRequestValuesinstance from pre-defined values (whereGet Request Valuesgenerates all values automatically).Perform Authorized Requestis functionally the same as exisitingAuthorized Requestkeyword, but it accepts aRequestValuesinstance as argument.Validated Requestis functionally the same as the existingPerform Validated Requestkeyword, but it accepts the data as separate arguments instead of theRequestValues.Convert Request Values To Dictcan be used to get a (Python) dict represenation of aRequestValuesobject that can be used with e.g. the Collections keywords for working with dictionaries.- This closes issue #98: Add keywords to simplify using Authorized Request and Perform Validated Request.
Get Valid Id For Pathnow supports theLocationresponse header.- The
IdDependencyis now taken into account if the value of thepropertyto which is applies is a list / ArraySchema. - Relations have been made more flexible:
- Added support for using
IGNOREasinvalid_valueon aPropertyValueConstraint. - Improved handling of
treat_as_mandatoryon aPropertyValueConstraint. IGNOREasvalues(instead of alist) on aPropertyValueConstraintallows only error value mapping while using regular (random) value generation.- Support an empty string as value for
property_nameof aPropertyValueConstraintto apply it to list / array (body) items. - Support an empty string as value for the
pathof aPathPropertyConstraintto allow only error value mapping while using regular path generation otherwise. - The custom transformer for
ID_MAPPINGwas made more flexible.
- Added support for using
- The
Test Endpointkeyword of OpenApiDriver now also support error codes from aPathPropertiesConstraint.
- Added support for the
nullableproperty in OAS 3.0 schemas when generating data. - Support added for multiple instances of OpenApiLibCore within the same suite.
- Fixed a KeyError issue in
Get Valid Id For Path.- This closes issue #110: KeyError in Get Valid Id For Path.
- Parameter generation did not take the
IdDependencyRelation into account. - A
PathPropertiesConstraintmapping could be overridden by another Relations mapping during model generation. - Fixed validation errors caused by
Content-Typenot being handled case-insensitive. - Fixed an exception during validation caused by
charsetbeing included in theContent-Typeheader forapplication/json.
- Addressing issue #95: Refactor: better name for Dto introduces a number breaking renames:
Dtohas been renamed toRelationsMapping.constraint_mappinghas been renamed torelations_mappingin a number of places.DTO_MAPPINGhas been renamed toRELATIONS_MAPPING.
- The
RequestDataclass that is returned by a number of keywords has been changed:- The
dtoproperty was removed. - The
valid_dataproperty was added. - The
relations_mappingproperty was added.
- The
invalid_property_default_responselibrary parameter renamed toinvalid_data_default_response.
- 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).
- The documentation is not yet updated with many of the changes / improvements detailed above.
- While some tests have been updated to check / demonstrate the above changes, more tests need to be added.
parametersat path level are not taken into account at operation level.
- Prevent runtime exception for unsupported regex patterns in OAS.
- Prevent trailing underscores in generated keyword method names.
generate-libraryCLI interaction now prompts for behavior that was previously only available by setting the environment variablesUSE_SUMMARY_AS_KEYWORD_NAMEandEXPAND_BODY_ARGUMENTS.
- Fix runtime exception on ObjectSchemas without
propertiesdefined in the OAS.
- Python 3.14 compatibility tested and lock file updated.
- Multiple
PropertyValueConstraintinstances for the sameproperty_namecaused an exception. Get Invalidated Parametersnow properly handles situations whereinvalid_valueis set toIGNORE.
openapitools_docswas missing from package distribution.
- Added a CLI tool for library generation. See the
OpenApiLibGendocumentation for all the details. - Support for nested
DtosinRelationconstraints (issue #49). - The core logic has been rewritten to use Pydantic models under the hood. This rewrite has made the addition of the library generator possible and allows feature implementations in future releases that were previously (too) hard to implement.
- The documentation has been restructured / rewritten and should now be much more coherent and accessible.
- No specific bugfixes have been made, but the core refactor of the application has solved a number of undocumented issues.
PathPropertiesConstraintis now a separate type ofRelation. See theAdvanced Usedocumentation for details.- In a number of places, the terms
url,pathandendpointwere not correctly and / or consistently used. This has been corrected.- A
urlis a complete url which can be use e.g. in a browser or http request. - A
pathis a portion of anurl. In the scope of OpenApiTools, apathcorresponds to an entry in the paths section of an OpenAPI specification document. - From a standards / definition point of view "all endpoints are URLs, not all URLs are endpoints".
An
endpointrepresents a specific function offered by an API. Due to this subtle difference, when the term endpoint is used in the OpenApiTools documentation, it refers to the combination of anurland a corresponding HTTP operation / verb as they are found under the path entries in an OpenAPI specification document.
- A