Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • O openapi-generator
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,476
    • Issues 3,476
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 402
    • Merge requests 402
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • OpenAPI Tools
  • openapi-generator
  • Merge requests
  • !5809

[codegen][Python-experimental] Discriminator NPE fix, handle 'null' type, #4906 enhancements

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Administrator requested to merge github/fork/CiscoM31/discriminator-fix into master Apr 02, 2020
  • Overview 0
  • Commits 104
  • Pipelines 0
  • Changes 45

Created by: sebastien-rosset

  1. When processing discriminators of composed schemas, handle scenario when composed schema has 'null' type
  2. Remove extraneous characters in comments
  3. Add traversal of discriminator mappings in case oneOf child schema indirectly refers to discriminator.
  4. There is no need to duplicate the get_discriminator_class() code for every generated class.
  5. Add unit test when discriminator is not specified in payload and handle that scenario in the get_discriminator_class() function. IMO, another PR should be provided to provide a better error message when the input data does not contain the discriminator property.

This PR along these:

  • Add discriminator memoization + move discriminator logic to the new method and allow deserialization through 2+ discriminators
  • Improve composed schema discriminator map

will resolve #4912 (closed)

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project before.
  • Run the shell script(s) under ./bin/ (or Windows batch scripts under.\bin\windows) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the code or mustache templates for a language ({LANG}) (e.g. php, ruby, python, etc).
  • File the PR against the correct branch: master, 4.3.x, 5.0.x. Default: master.
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language.
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/CiscoM31/discriminator-fix