Skip to content

Add support for loading Quilla options from config file #49

Description

Several frameworks and tools related to testing also include the ability to configure themselves through a configuration file of some sort. This allows users to not have to save their command-line options through aliases/scripts/etc, but still allow configs to be persistent.

An example of this is Pytest, which searches for one of a few possible config files and a root directory. This is explained in further detail here: https://docs.pytest.org/en/6.2.x/customize.html#config-file-formats

Other tools that do this include tox, mypy, flake8, etc.

Quilla could benefit from something similar, which would even allow configs to be versioned in VCS.

This functionality could be done as either a plugin, or alternatively it could be handled similarly to how Pytest does it. The latter option would require the whole parsing/config system that Quilla uses to be overhauled by making a new Parser class that would abstract adding cofig file options and CLI options, which is admittedly more work.

As a practical example, the Pytest Argument Parser can be found here: https://github.com/pytest-dev/pytest/blob/main/src/_pytest/config/argparsing.py . It might be helpful to see how they did it, since Quilla uses the same plugin library.

Some considerations with this ticket:

  • What language should the config file be written in? YAML, INI, TOML, JSON, etc. are various options, each with their own benefits and drawbacks
  • How will this configuration file integrate with the existing pytest-quilla plugin? Would we use a setup.cfg file system like flake8/mypy/pytest, or would we want to keep our files separate?
  • Do we actually want to support config files? Currently, the only way to configure Quilla is done through CLI options or alternatively through plugins (uiconf.py file/installed plugins). If this is good enough, we can label it as such but we should consider whether or not this is something worth supporting.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions