Version 0.X.X¶
0.4.2¶
🎉 New feature¶
- Support Python 3.13 version. (PR#483)
- Add new value format properties:
static_value
: New strategy for setting fixed value. (PR#489)format.static_value
: The specific fixed value for the strategystatic_value
, includes this property informat.variable
. (PR#489, PR#490, PR#491)format.unique_element
: Only for array type value which could generate unique elements in array type property, includes this property informat.variable
. (PR#494)- Support API request could accept multiple different value formats, i.e., ISO format or Unix timestamp of datetime value. (PR#488)
🔨 Breaking changes¶
- Deprecate Python 3.8 version support, will remove all code in next version. (PR#498)
🪲 Bug Fix¶
🙋♂️ For production¶
- 💣 Critical bugs:
- Command line tool cannot work finely because filtering logic cannot cover all scenarios. (PR#496)
- Command line tool cannot work finely because missing Python dependency. (PR#498)
- 🦠 Major bugs:
- The request checking process: (PR#493)
- Error messages are incorrect which would deeply mislead developers.
- The parameters data checking cannot work finely with array type parameters.
- It set incorrect customized value at format property with subcommand line
pull
. (PR#487) - Generate incorrect data structure in API response. (PR#492)
- 🐛 Mirror bugs:
- Command line option
--include-template-config
cannot work under subcommand linepull
. (PR#485) - Default value cannot be set correctly if it's empty string value. (PR#484)
👨💻 For development¶
- The file path regular expression is incorrect at documentation CI workflow. (PR#499)
🍀 Improvement¶
- Clear the Pre-Commit configuration. (PR#481)
- Clear the CI workflow configurations. (PR#482)
- Let program could raise obvious error message if it misses some necessary values at initial process. (PR#486)
📑 Docs¶
- Update the content for new command line options. (PR#487)
0.4.1¶
🎉 New feature¶
- Support running fake server process in background and redirect the access log to the specific log file.
--daemon
: daemonize the fake server process.--access-log-file
: redirect the fake server access log to the specific file.
🪲 Bug Fix¶
- Fix the issue about it cannot get the correct versioning info in documentation.
📑 Docs¶
- Update the content for new command line options.
🤖 Upgrade dependencies¶
- Upgrade pre-commit dependencies.
0.4.0 (0.3.0)¶
Deprecate and pass version 0.3.0 because it's forbidden upload same version in PyPI again.
Refer: https://pypi.org/help/#file-name-reuse:
"PyPI does not allow for a filename to be reused, even once a project has been deleted and recreated."
🎉 New feature¶
- Support new properties for customizing the values in request or response.
Format
: setting the format of value how it should be in request or return in response.Variable
: for reusable usage in formatting value.size
: setting the value size. If it'sstr
type, this is the length limitation; if it'sint
or other numeric type value, this is the value limitation.digit
: setting the decimal policy.- Support setting the format properties in template section.
- Re-fine the command line interface to be more friendly and more readable in usage.
🪲 Bug Fix¶
- Fix broken tests in some specific Python versions.
- Fix the broken CI workflow about auto-merge the upgrade dependencies PRs which has been approved.
♻️ Refactor¶
- Re-fine the pure data into data models in data processing of handling API documentation.
- Adjust the modules structure about core logic of API server processing with classifying by API server type.
- Refactor the modules structure of command line options, processors and components.
- Refactor the enum objects into the module or sub-package which are deeply relative with their meaning.
- Extract the file operation logic into new sub-package in __util_.
🍀 Improvement¶
- Improve the CD workflows which would only br triggered by updating version info.
- Let the error message to be more clear and readable for incorrect usage.
- Let the version info to be more readable and detail.
📑 Docs¶
- Update the content for all changes.
- Import the versioning feature into documentation.
🤖 Upgrade dependencies¶
- Upgrade the Python dependencies.
- Upgrade pre-commit dependencies.
- Upgrade the CI reusable workflows.
0.2.0¶
🎉🎊🍾 New feature¶
- Support parsing version2 (aka Swagger) and version3 OpenAPI document configuration.
- Support nested data structure about collection data types, i.e.,
list
ordict
, in response. - Add new command line argument
--source-file
in sub-command linepull
for being more convenience to pull configuration for PyMock-API. - Let sub-command line
add
support dividing feature.
🛠🐛💣 Bug Fix¶
- Fix some issues.
- It cannot parse finely at the empty body of one specific column in response.
- Fix broken tests.
- Fix incorrect serializing logic if request parameter or body is empty.
- Fix incorrect checking logic at configuration validation in sub-command line
check
. - Fix the issue about it cannot work finely with argument
--base-file-path
in sub-command linepull
.
🤖⚙️🔧 Improvement¶
- Upgrade the dependencies.
- Upgrade the reusable workflows in CI workflow.
- Extract the logic about initialing test data for testing as modules.
📝📑📗Docs¶
- Update the content for new feature.
0.1.0¶
🎉🎊🍾 New feature¶
-
Provide command line interface
mock-api
for mocking HTTP server.usage: mock-api [SUBCOMMAND] [OPTIONS] A Python tool for mocking APIs by set up an application easily. PyMock-API bases on Python web framework to set up application, i.e., you could select using *flask* to set up application to mock APIs. options: -h, --help show this help message and exit -v, --version The version info of PyMock-API. Subcommands: {run,sample,add,check,get,pull} run Set up APIs with configuration and run a web application to mock them. sample Quickly display or generate a sample configuration helps to use this tool. add Something processing about configuration, i.e., generate a sample configuration or validate configuration content. check Check the validity of *PyMock-API* configuration. get Do some comprehensive inspection for configuration. pull Pull the API details from one specific source, e.g., Swagger API documentation.
-
Provide documentation for details of the project.