Testing

override_experiment(request, experiment, variant=None)

override_experiment(request: HttpRequest, experiment: dict[str, str])
override_experiment(request: HttpRequest, experiment: str, variant: str)

Override experiment variants on a request by setting the override cookie.

This is useful in tests to make experiment behavior deterministic.

Can be called with a single experiment name and variant::

override_experiment(request, 'switch', 'on')

Or with a dict to override multiple experiments at once::

override_experiment(request, {'switch1': 'on', 'switch2': 'off'})
Parameters:
  • request (HttpRequest) –

    The Django request object to set the override cookie on.

  • experiment (dict[str, str] | str) –

    Either an experiment name (str) or a dict mapping experiment names to variant values.

  • variant (str | None, default: None ) –

    The variant value when experiment is a str. Required when experiment is a str, ignored otherwise.

Raises:
  • ValueError

    If experiment is a str and variant is None.

  • TypeError

    If experiment is neither a str nor a dict.