Skip to content

Flag debugging capabilities #6

@Kos

Description

@Kos

As a developer working on a Django app, I'd very much enjoy a possibility to quickly preview how a given page works with flag X enabled or disabled.

Say we have page "Recipes" and two different flags that control how this page look like, enable_foo and enable_bar. Without any special assistance from Flippy, in order to preview my page in all 4 combinations, I'd have to:

  • open the Recipes page, preview
  • log in as superuser, go to django admin, create a rollout for flag enable_foo, log back in as the original user
  • open the Recipes page again, preview
  • log in as superuser, go to django admin, create a different rollout for enable_bar, log back in
  • open the Recipes page again, preview
  • log in as superuser, go to django admin, delete the rollout for enable_foo, log back in
  • open the Recipes page again, preview

This is an unacceptably long feedback loop for manual testing. (It's very suitable for automated unit testing, though - you'd just write 4 test cases with different set-up, or write one parametrized Pytest fixture for each feature flag)

Implementation idea: allow to temporarily set a flag for the duration of one request using special query string parameters, such as ?flippy_enable_foo=1. This would only take effect if debug mode is enabled in settings (DEBUG=True? FLIPPY_DEBUG_QUERY_PARAMS=True?).

Main trouble with this: ensure this works somehow for TypedFlags which aren't queried with a Request object, if at all possible.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions