flakytest.dev anze3db flakytest
Tests / apps/projects/tests.py

AnalyticsTest::test_single_test

First seen 3 weeks ago in 78a4357
CI github-actions:test 12 runs
Average
23 ms
median 26 ms
max 28 ms
Phases
Setup 0.60 ms Call 22 ms Teardown 0.16 ms
Categories
Database 21 ms App code 0.09 ms Other (Unsampled, Deep copies, pytest) 1 ms

16 database queries per run

Needs 5 KB of memory (max 16 KB)

Duration per run

Where the time goes

Latest run in ci:github-actions:test, 16 hours ago · open run
Show pytest frames
call22 ms96.6%
AnalyticsTest.test_single_testapps/projects/tests.py:8208 ms34.5%
history_for_testapps/projects/analytics.py:806 for perf in TestPerf.objects.filter(test=test)6 ms27.6%
QuerySet.__iter__django/db/models/query.py:3906 ms27.6%
QuerySet._fetch_alldjango/db/models/query.py:20006 ms27.6%
ModelIterable.__iter__django/db/models/query.py:955 ms20.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16115 ms20.7%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms6.9%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms6.9%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms6.9%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:2532 ms6.9%
Query.get_select_maskdjango/db/models/sql/query.py:8912 ms6.9%
Query._get_defer_select_maskdjango/db/models/sql/query.py:8382 ms6.9%
Query._get_defer_select_maskdjango/db/models/sql/query.py:8202 ms6.9%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:9812 ms6.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms6.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms6.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms6.9%
Cursor.executepsycopg/cursor.py:1132 ms6.9%
Connection.waitpsycopg/connection.py:4952 ms6.9%
ModelIterable.__iter__django/db/models/query.py:1272 ms6.9%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15772 ms6.9%
SQLCompiler.get_convertersdjango/db/models/sql/compiler.py:15262 ms6.9%
history_for_testapps/projects/analytics.py:819 TestRun.objects.filter(test=test)2 ms6.9%
QuerySet.__iter__django/db/models/query.py:3902 ms6.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms6.9%
ModelIterable.__iter__django/db/models/query.py:952 ms6.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms6.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms6.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms6.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms6.9%
Cursor.executepsycopg/cursor.py:1132 ms6.9%
Connection.waitpsycopg/connection.py:4952 ms6.9%
AnalyticsTest.test_single_testapps/projects/tests.py:8255 ms20.7%
latest_perfapps/projects/analytics.py:846 return perfs.select_related("profile", "environment").order_by("-date").first()3 ms13.8%
QuerySet.firstdjango/db/models/query.py:11453 ms13.8%
QuerySet.__iter__django/db/models/query.py:3903 ms13.8%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms13.8%
ModelIterable.__iter__django/db/models/query.py:953 ms13.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms6.9%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms6.9%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms6.9%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms6.9%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms6.9%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms6.9%
Col.as_sqldjango/db/models/expressions.py:13252 ms6.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms6.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms6.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms6.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms6.9%
Cursor.executepsycopg/cursor.py:1132 ms6.9%
Connection.waitpsycopg/connection.py:4952 ms6.9%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms6.9%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3182 ms6.9%
BaseCursor._set_resultspsycopg/_cursor_base.py:5352 ms6.9%
BaseCursor._select_current_resultpsycopg/_cursor_base.py:5142 ms6.9%
resolve_scopeapps/projects/analytics.py:206 environments=list(Environment.objects.filter(project=project, kind=env)),2 ms6.9%
QuerySet.__iter__django/db/models/query.py:3902 ms6.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms6.9%
ModelIterable.__iter__django/db/models/query.py:952 ms6.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms6.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms6.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms6.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms6.9%
Cursor.executepsycopg/cursor.py:1132 ms6.9%
Connection.waitpsycopg/connection.py:4952 ms6.9%
AnalyticsTest.test_single_testapps/projects/tests.py:8243 ms13.8%
latest_perfapps/projects/analytics.py:846 return perfs.select_related("profile", "environment").order_by("-date").first()3 ms13.8%
QuerySet.firstdjango/db/models/query.py:11453 ms13.8%
QuerySet.__iter__django/db/models/query.py:3903 ms13.8%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms13.8%
ModelIterable.__iter__django/db/models/query.py:953 ms13.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms6.9%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms6.9%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms6.9%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms6.9%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3002 ms6.9%
SQLCompiler.get_related_selectionsdjango/db/models/sql/compiler.py:12662 ms6.9%
SQLCompiler.get_related_selectionsdjango/db/models/sql/compiler.py:12262 ms6.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms6.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms6.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms6.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms6.9%
Cursor.executepsycopg/cursor.py:1132 ms6.9%
Connection.waitpsycopg/connection.py:4952 ms6.9%
TransactionTestCase._pre_setupdjango/test/testcases.py:1164 cls._fixture_setup()2 ms6.9%
TestCase._fixture_setupdjango/test/testcases.py:14782 ms6.9%
TestCase._enter_atomicsdjango/test/testcases.py:13962 ms6.9%
Atomic.__enter__django/db/transaction.py:2112 ms6.9%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms6.9%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms6.9%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms6.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms6.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms6.9%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms6.9%
Cursor.executepsycopg/cursor.py:1132 ms6.9%
Connection.waitpsycopg/connection.py:4952 ms6.9%
AnalyticsTest.test_single_testapps/projects/tests.py:814 rows = environment_stats_for_test(test)2 ms6.9%
environment_stats_for_testapps/projects/analytics.py:748 for perf in TestPerf.objects.filter(test=test, date__gte=since).select_related("environment").order_by("date"):2 ms6.9%
QuerySet.__iter__django/db/models/query.py:3902 ms6.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms6.9%
ModelIterable.__iter__django/db/models/query.py:952 ms6.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms6.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms6.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms6.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms6.9%
Cursor.executepsycopg/cursor.py:1132 ms6.9%
Connection.waitpsycopg/connection.py:4952 ms6.9%
AnalyticsTest.test_single_testapps/projects/tests.py:8232 ms6.9%
latest_perfapps/projects/analytics.py:846 return perfs.select_related("profile", "environment").order_by("-date").first()2 ms6.9%
QuerySet.firstdjango/db/models/query.py:11452 ms6.9%
QuerySet.__iter__django/db/models/query.py:3902 ms6.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms6.9%
ModelIterable.__iter__django/db/models/query.py:952 ms6.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms6.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms6.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms6.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms6.9%
Cursor.executepsycopg/cursor.py:1132 ms6.9%
Connection.waitpsycopg/connection.py:4952 ms6.9%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()2 ms6.9%
TestCase._fixture_teardowndjango/test/testcases.py:14952 ms6.9%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4832 ms6.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms6.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms6.9%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms6.9%
Cursor.executepsycopg/cursor.py:1132 ms6.9%
Connection.waitpsycopg/connection.py:4952 ms6.9%
Estimated from 14 samples; phase durations are exact. Frames from pytest and pluggy are hidden .

Hot lines in your code

apps/projects/analytics.py:846
return perfs.select_related("profile", "environment").order_by("-date").first()
latest_perf · Database
8 ms
apps/projects/analytics.py:806
for perf in TestPerf.objects.filter(test=test)
history_for_test · Database
6 ms
apps/projects/analytics.py:748
for perf in TestPerf.objects.filter(test=test, date__gte=since).select_related("environment").order_by("date"):
environment_stats_for_test · Database
2 ms
apps/projects/analytics.py:819
TestRun.objects.filter(test=test)
history_for_test · Database
2 ms
apps/projects/analytics.py:206
environments=list(Environment.objects.filter(project=project, kind=env)),
resolve_scope · Database
2 ms

Fixtures

Exact setup time
_django_db_marker function 0.06 ms
_dj_autoclear_mailbox function 0.04 ms
_django_set_urlconf function 0.03 ms
_template_string_if_invalid_marker function 0.03 ms
_live_server_helper function 0.03 ms
_django_clear_site_cache function 0.03 ms
monkeypatch function 0.02 ms

Database

16 queries · 9 ms

Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).

5×
SELECT "projects_testperf"."id", "projects_testperf"."project_id", "projects_testperf"."test_id", "projects_testperf"."profile_id", "projects_testperf"."part", "projects_testperf"."environment_id", "projects_testperf"."outcome", "projects_testperf"."duration", "projects_testperf"."setup", "projects…
4×
SELECT "projects_environment"."id", "projects_environment"."project_id", "projects_environment"."name", "projects_environment"."kind", "projects_environment"."provider", "projects_environment"."details", "projects_environment"."date_first_seen", "projects_environment"."date_last_seen" FROM "project…

Biggest pieces of work

call test body
apps/projects/tests.py:814
19 ms
call _pre_setup
django/test/testcases.py:1164
2 ms
call _post_teardown
django/test/testcases.py:1240
2 ms

Reliability

12 results · 0 CI failures · 0 local failures

This test hasn't failed recently.

History

Latest 12 results, oldest first in the strip
When Environment Outcome Duration Commit
16 hours ago CI github-actions:test passed 22 ms e141198 main Profile
1 week, 5 days ago CI github-actions:test passed 14 ms 46ec2aa main Profile
2 weeks, 1 day ago CI github-actions:test passed 26 ms afde85b main Profile
2 weeks, 1 day ago CI github-actions:test passed 19 ms fe29f9d main Profile
2 weeks, 1 day ago CI github-actions:test passed 25 ms 044719a main Profile
2 weeks, 2 days ago CI github-actions:test passed 17 ms b3fedae main Profile
2 weeks, 4 days ago CI github-actions:test passed 28 ms 43c4eda main Profile
2 weeks, 6 days ago CI github-actions:test passed 26 ms 9caa567 main Profile
2 weeks, 6 days ago CI github-actions:test passed 26 ms ec75501 main Profile
3 weeks ago CI github-actions:test passed 27 ms d2c12e5 main Profile
3 weeks ago CI github-actions:test passed 16 ms 0b902f6 main Profile
3 weeks ago CI github-actions:test passed 27 ms 78a4357 main Profile