Database¶
These fixtures are related to Django database operation, including issued by ORM.
- class pytest_djangoapp.fixtures.db.Queries¶
Allows access to executed DB queries.
- clear(db_alias=None)¶
Clear queries for the given or default DB.
- Parameters
db_alias (str|unicode) – Database alias. Default is used if not given.
- clear_all()¶
Clears all queries logged for all DBs.
- get_log(db_alias=None)¶
- Parameters
db_alias (str|unicode) –
- Return type
deque
- sql(db_alias=None, drop_auxiliary=True)¶
Returns a list of queries executed using the given or default DB.
- Parameters
db_alias (str|unicode) – Database alias. Default is used if not given.
drop_auxiliary (bool) – Filter out auxiliary SQL like: * BEGIN * COMMIT * END
- Return type
list[str|unicode]
- time(db_alias=None)¶
Returns total time executing queries (in seconds) using the given or default DB.
- Parameters
db_alias (str|unicode) – Database alias. Default is used if not given.
- Return type
Decimal
- pytest_djangoapp.fixtures.db.db_queries(settings)¶
Allows access to executed DB queries.
Example:
def test_db(db_queries): # Previous queries cleared at the beginning. assert len(db_queries) == 0 ... # Do some DB-related stuff. # Assert total queries on all DBs. assert len(db_queries) == 10 # Default DBs SQLs with auxiliary commands filtered out by default. sqls = db_queries.sql() # Assert total execution time is less than a second. assert db_queries.time() < 1 # Drop SQL gathered so far on default DB. db_queries.clear()
Warning
Requires Django 1.9+ to work.
- Return type