Skip to main content

Decorator for measuring the time and number of database queries

Project description

Decorator for measuring the time and number of database queries

Project Status
CI/CD Latest Release
Quality Coverage
Package PyPI - Version PyPI - Support Python Versions Project PyPI - Downloads
Meta types - Mypy License - MIT code style - Ruff

Provides a decorator for measuring the time and number of database queries

Install

  1. Install package
    pip install capture-db-queries
    

About decorator

capture_queries decorator it can call the body of the decorated function the specified number of times for multiple measurements, it can validate the total number of queries.

  • Optional parameters:
    • assert_q_count: The expected number of database requests is otherwise "AssertionError: N not less than or equal to N queries"
    • number_runs: The number of runs of the test function _
    • verbose: Displaying the final results of the test measurements
    • advanced_verb: Displaying the result of each test measurement
    • queries: Displaying raw SQL queries to the database

About context manager

ExtCaptureQueriesContext

  • Optional parameters:
    • assert_q_count: The expected number of database requests is otherwise "AssertionError: N not less than or equal to N queries"
    • verbose: Displaying the final results of the test measurements
    • queries: Displaying raw SQL queries to the database

Usage example

from capture_db_queries.decorators import capture_queries


@capture_queries(number_runs=2, advanced_verb=True)
def _():
    response = self.client.get(url)

>>> Test 1 | Queries count: 10 | Execution time: 0.04s
>>> Test 2 | Queries count: 10 | Execution time: 0.04s
>>> Tests count: 2  |  Total queries count: 20  |  Total execution time: 0.08s  |  Median time one test is: 0.041s
from capture_db_queries.decorators import ExtCaptureQueriesContext


with ExtCaptureQueriesContext():
    response = self.client.get(url)

>>> Queries count: 164  |  Execution time: 0.923s

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

capture_db_queries-1.0.1.tar.gz (16.4 kB view hashes)

Uploaded Source

Built Distribution

capture_db_queries-1.0.1-py3-none-any.whl (7.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page