Skip to content

Write tests #13

@ehmatthes

Description

@ehmatthes

This is a critical project for django-simple-deploy to have the full utility it should. Tests are critical to make sure that this package keeps up with changes in dsd core.

Tasks

  • Write integration tests for current functionality. Make a temp dir in pytest, and write the new plugin to that dir. Then compare to reference project.
    • Make project testable, ie don't require the interactive session.
    • Add a --target-dir flag.
    • Implement a way for an external script (test function) to define the plugin_config object.
    • Write initial tests.
      • Configure pytest to only run actual tests for the generator, not new plugin tests.
      • Pull target_dir into plugin_config? (not needed, mock args object.
      • Make sure test can fail. (Modify deeply nested file in reference_files, make sure fails.)
  • Fix issue with interpolation in deploy.py.
  • Fix issue with space in platform name.
  • Write e2e tests. These build a development env for dsd core, build a new plugin, install the plugin, and make sure the initial set of tests pass.
  • Write validation code for PluginConfig.
  • Restructure project so template is in a single directory, and generator code is in the main part of the repo.
  • Update tests.
  • Include a changelog, being clear about which version of this project matches which version of dsd. Also, start tagging releases to match specific versions of core.
  • Start a pyproject.toml, even though this probably won't be released as a package. (No real need for this currently.)
  • Update instructions in core to show how to quickly get a new plugin up and running.
    • git clone ... depth 1, don't need full history of this project in order to make a new plugin.
    • Link to this from this readme.
    • Link to this from home page of dsd docs.
    • Include links to specific lines and sections of files in plugin_template/ files.
  • Set up CI for integration tests.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions