Skip to content

Version 0.X.X

0.4.2

🎉 New feature

  1. Support Python 3.13 version. (PR#483)
  2. Add new value format properties:
  3. static_value: New strategy for setting fixed value. (PR#489)
  4. format.static_value: The specific fixed value for the strategy static_value, includes this property in format.variable. (PR#489, PR#490, PR#491)
  5. format.unique_element: Only for array type value which could generate unique elements in array type property, includes this property in format.variable. (PR#494)
  6. Support API request could accept multiple different value formats, i.e., ISO format or Unix timestamp of datetime value. (PR#488)

🔨 Breaking changes

  1. Deprecate Python 3.8 version support, will remove all code in next version. (PR#498)

🪲 Bug Fix

🙋‍♂️ For production

  1. 💣 Critical bugs:
  2. Command line tool cannot work finely because filtering logic cannot cover all scenarios. (PR#496)
  3. Command line tool cannot work finely because missing Python dependency. (PR#498)
  4. 🦠 Major bugs:
  5. The request checking process: (PR#493)
    1. Error messages are incorrect which would deeply mislead developers.
    2. The parameters data checking cannot work finely with array type parameters.
  6. It set incorrect customized value at format property with subcommand line pull. (PR#487)
  7. Generate incorrect data structure in API response. (PR#492)
  8. 🐛 Mirror bugs:
  9. Command line option --include-template-config cannot work under subcommand line pull. (PR#485)
  10. Default value cannot be set correctly if it's empty string value. (PR#484)

👨‍💻 For development

  1. The file path regular expression is incorrect at documentation CI workflow. (PR#499)

🍀 Improvement

  1. Clear the Pre-Commit configuration. (PR#481)
  2. Clear the CI workflow configurations. (PR#482)
  3. Let program could raise obvious error message if it misses some necessary values at initial process. (PR#486)

📑 Docs

  1. Update the content for new command line options. (PR#487)

0.4.1

🎉 New feature

  1. Support running fake server process in background and redirect the access log to the specific log file.
  2. --daemon: daemonize the fake server process.
  3. --access-log-file: redirect the fake server access log to the specific file.

🪲 Bug Fix

  1. Fix the issue about it cannot get the correct versioning info in documentation.

📑 Docs

  1. Update the content for new command line options.

🤖 Upgrade dependencies

  1. 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

  1. Support new properties for customizing the values in request or response.
  2. Format: setting the format of value how it should be in request or return in response.
  3. Variable: for reusable usage in formatting value.
  4. size: setting the value size. If it's str type, this is the length limitation; if it's int or other numeric type value, this is the value limitation.
  5. digit: setting the decimal policy.
  6. Support setting the format properties in template section.
  7. Re-fine the command line interface to be more friendly and more readable in usage.

🪲 Bug Fix

  1. Fix broken tests in some specific Python versions.
  2. Fix the broken CI workflow about auto-merge the upgrade dependencies PRs which has been approved.

♻️ Refactor

  1. Re-fine the pure data into data models in data processing of handling API documentation.
  2. Adjust the modules structure about core logic of API server processing with classifying by API server type.
  3. Refactor the modules structure of command line options, processors and components.
  4. Refactor the enum objects into the module or sub-package which are deeply relative with their meaning.
  5. Extract the file operation logic into new sub-package in __util_.

🍀 Improvement

  1. Improve the CD workflows which would only br triggered by updating version info.
  2. Let the error message to be more clear and readable for incorrect usage.
  3. Let the version info to be more readable and detail.

📑 Docs

  1. Update the content for all changes.
  2. Import the versioning feature into documentation.

🤖 Upgrade dependencies

  1. Upgrade the Python dependencies.
  2. Upgrade pre-commit dependencies.
  3. Upgrade the CI reusable workflows.

0.2.0

🎉🎊🍾 New feature

  1. Support parsing version2 (aka Swagger) and version3 OpenAPI document configuration.
  2. Support nested data structure about collection data types, i.e., list or dict, in response.
  3. Add new command line argument --source-file in sub-command line pull for being more convenience to pull configuration for PyMock-API.
  4. Let sub-command line add support dividing feature.

🛠🐛💣 Bug Fix

  1. Fix some issues.
  2. It cannot parse finely at the empty body of one specific column in response.
  3. Fix broken tests.
  4. Fix incorrect serializing logic if request parameter or body is empty.
  5. Fix incorrect checking logic at configuration validation in sub-command line check.
  6. Fix the issue about it cannot work finely with argument --base-file-path in sub-command line pull.

🤖⚙️🔧 Improvement

  1. Upgrade the dependencies.
  2. Upgrade the reusable workflows in CI workflow.
  3. Extract the logic about initialing test data for testing as modules.

📝📑📗Docs

  1. Update the content for new feature.

0.1.0

🎉🎊🍾 New feature

  1. 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.
    
  2. Provide documentation for details of the project.