pytest_experiments.store module

class ExperimentModel(**kwargs)[source]

Bases: sqlalchemy.orm.decl_api.Base

The data model for an experiment.

This model leverages the JSON datatype which is currently only supported by the following backends:

  • PostgreSQL

  • MySQL

  • SQLite as of version 3.9

  • Microsoft SQL Server 2016 and later

See https://docs.sqlalchemy.org/en/14/core/type_basics.html?highlight=data%20types#sqlalchemy.types.JSON # noqa

data
end_time
property end_time_tz: datetime.datetime

The timezone-aware experiment end timestamp.

id
name
outcome
parameters
start_time
property start_time_tz: datetime.datetime

The timezone-aware experiment start timestamp.

class StorageManager(db_uri: str)[source]

Bases: object

create_session() sqlalchemy.orm.session.Session[source]

Create a database session.

property db_uri: str
get_all_experiments() List[pytest_experiments.store.ExperimentModel][source]

Return all experiments in the database.

record_experiment(experiment: pytest_experiments.store.ExperimentModel)[source]

Record an experiment to the database.

Parameters

experiment (ExperimentModel) – The experiment to record.

initialize_database(engine)[source]

Initialize a database with the experiments table.