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

StorageTest::test_prune_old_data

First seen 3 weeks ago in 78a4357
CI github-actions:test 12 runs
Average
78 ms
median 84 ms
max 94 ms
Phases
Setup 0.69 ms Call 77 ms Teardown 0.19 ms
Categories
Database 73 ms App code 1 ms Test code 0.14 ms Other (Libraries, Unsampled, Serialization, pytest, ...) 3 ms

107 database queries per run

Needs 0 KB of memory (max 0 KB)

Duration per run

Where the time goes

Latest run in ci:github-actions:test, 16 hours ago · open run
Show pytest frames
call77 ms98.9%
StorageTest.test_prune_old_dataapps/projects/tests.py:1251 newer_local = store_profile(31 ms40.3%
store_profileapps/projects/testing.py:37316 ms20.1%
process_profile_partapps/projects/profiles.py:363 profile = claim_part(part, document)9 ms11.0%
claim_partapps/projects/profiles.py:4673 ms3.7%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)3 ms3.7%
Model.savedjango/db/models/base.py:8743 ms3.7%
Model.save_basedjango/db/models/base.py:9663 ms3.7%
Model._save_tabledjango/db/models/base.py:11103 ms3.7%
Model._do_updatedjango/db/models/base.py:12113 ms3.7%
QuerySet._updatedjango/db/models/query.py:13273 ms3.7%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21403 ms3.7%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21113 ms3.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms1.8%
SQLUpdateCompiler.as_sqldjango/db/models/sql/compiler.py:20881 ms1.8%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5781 ms1.8%
WhereNode.as_sqldjango/db/models/sql/where.py:1511 ms1.8%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5781 ms1.8%
Exact.as_sqldjango/db/models/lookups.py:4071 ms1.8%
BuiltinLookup.as_sqldjango/db/models/lookups.py:2381 ms1.8%
BuiltinLookup.process_lhsdjango/db/models/lookups.py:2301 ms1.8%
Lookup.process_lhsdjango/db/models/lookups.py:1091 ms1.8%
BaseExpression.resolve_expressiondjango/db/models/expressions.py:3071 ms1.8%
BaseExpression.resolve_expression.<locals>.<genexpr>django/db/models/expressions.py:3071 ms1.8%
<GC>~1 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
claim_partapps/projects/profiles.py:379 profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)1 ms1.8%
QuerySet.getdjango/db/models/query.py:6351 ms1.8%
QuerySet.__len__django/db/models/query.py:3721 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
ModelIterable.__iter__django/db/models/query.py:951 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
claim_partapps/projects/profiles.py:397 project = profile.project1 ms1.8%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2571 ms1.8%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2221 ms1.8%
QuerySet.getdjango/db/models/query.py:6351 ms1.8%
QuerySet.__len__django/db/models/query.py:3721 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
ModelIterable.__iter__django/db/models/query.py:1271 ms1.8%
claim_partapps/projects/profiles.py:3991 ms1.8%
get_or_create_environmentapps/projects/environments.py:79 obj.save(update_fields=update_fields)1 ms1.8%
Model.savedjango/db/models/base.py:8741 ms1.8%
Model.save_basedjango/db/models/base.py:9661 ms1.8%
Model._save_tabledjango/db/models/base.py:11101 ms1.8%
Model._do_updatedjango/db/models/base.py:12111 ms1.8%
QuerySet._updatedjango/db/models/query.py:13271 ms1.8%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21401 ms1.8%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms1.8%
SQLUpdateCompiler.as_sqldjango/db/models/sql/compiler.py:20881 ms1.8%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5781 ms1.8%
WhereNode.as_sqldjango/db/models/sql/where.py:1511 ms1.8%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5781 ms1.8%
claim_partapps/projects/profiles.py:404 commit, _ = Commit.objects.get_or_create(1 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet.get_or_createdjango/db/models/query.py:9871 ms1.8%
QuerySet.getdjango/db/models/query.py:6351 ms1.8%
QuerySet.__len__django/db/models/query.py:3721 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
ModelIterable.__iter__django/db/models/query.py:951 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
process_profile_partapps/projects/profiles.py:3653 ms3.7%
upsert_testsapps/projects/profiles.py:4723 ms3.7%
TestManager.upsertapps/projects/models.py:2291 ms1.8%
TestManager.slugs_forapps/projects/models.py:240 existing = dict(self.filter(project_id=project_id, name__in=names).values_list("name", "slug"))1 ms1.8%
QuerySet.__iter__django/db/models/query.py:3901 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
ValuesListIterable.__iter__django/db/models/query.py:2381 ms1.8%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
TestManager.upsertapps/projects/models.py:236 return {test.name: test for test in self.filter(project=project, name__in=names)}1 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet.filterdjango/db/models/query.py:15421 ms1.8%
QuerySet._filter_or_excludedjango/db/models/query.py:15551 ms1.8%
process_profile_partapps/projects/profiles.py:356 part = ProfilePart.objects.filter(pk=part.pk).first()1 ms1.8%
QuerySet.firstdjango/db/models/query.py:11451 ms1.8%
QuerySet.__iter__django/db/models/query.py:3901 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
ModelIterable.__iter__django/db/models/query.py:951 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
process_profile_partapps/projects/profiles.py:3661 ms1.8%
write_perfsapps/projects/profiles.py:479 TestPerf.objects.bulk_create(1 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet.bulk_createdjango/db/models/query.py:8331 ms1.8%
QuerySet._batched_insertdjango/db/models/query.py:19561 ms1.8%
QuerySet._insertdjango/db/models/query.py:19181 ms1.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
store_profileapps/projects/testing.py:374 finalize_profile(profile.id)9 ms11.0%
finalize_profileapps/projects/profiles.py:5173 ms3.7%
add_perfsapps/projects/rollups.py:64 for row in TestDailyStats.objects.filter(1 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet.filterdjango/db/models/query.py:15421 ms1.8%
QuerySet._filter_or_excludedjango/db/models/query.py:15601 ms1.8%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15701 ms1.8%
Query.add_qdjango/db/models/sql/query.py:16711 ms1.8%
Query._add_qdjango/db/models/sql/query.py:17031 ms1.8%
Query.build_filterdjango/db/models/sql/query.py:15511 ms1.8%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(1 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet.bulk_createdjango/db/models/query.py:8331 ms1.8%
QuerySet._batched_insertdjango/db/models/query.py:19561 ms1.8%
QuerySet._insertdjango/db/models/query.py:19181 ms1.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19241 ms1.8%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18831 ms1.8%
DatabaseOperations.bulk_insert_sqldjango/db/backends/postgresql/operations.py:1561 ms1.8%
finalize_profileapps/projects/profiles.py:5111 ms1.8%
QuerySet.deletedjango/db/models/query.py:12381 ms1.8%
Collector.deletedjango/db/models/deletion.py:4711 ms1.8%
QuerySet._raw_deletedjango/db/models/query.py:12601 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms1.8%
SQLDeleteCompiler.as_sqldjango/db/models/sql/compiler.py:20061 ms1.8%
SQLDeleteCompiler._as_sqldjango/db/models/sql/compiler.py:19921 ms1.8%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5781 ms1.8%
finalize_profileapps/projects/profiles.py:513 for duplicate in duplicates:1 ms1.8%
QuerySet.__iter__django/db/models/query.py:3901 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
ValuesIterable.__iter__django/db/models/query.py:2221 ms1.8%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
finalize_profileapps/projects/profiles.py:516 Environment.objects.select_for_update(no_key=True).filter(pk=profile.environment_id).first()1 ms1.8%
QuerySet.firstdjango/db/models/query.py:11451 ms1.8%
QuerySet.__iter__django/db/models/query.py:3901 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
ModelIterable.__iter__django/db/models/query.py:951 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
finalize_profileapps/projects/profiles.py:5251 ms1.8%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)1 ms1.8%
Model.savedjango/db/models/base.py:8741 ms1.8%
Model.save_basedjango/db/models/base.py:9661 ms1.8%
Model._save_tabledjango/db/models/base.py:11101 ms1.8%
Model._do_updatedjango/db/models/base.py:12111 ms1.8%
QuerySet._updatedjango/db/models/query.py:13271 ms1.8%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21401 ms1.8%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
store_profileapps/projects/testing.py:3714 ms5.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms5.5%
QuerySet.createdjango/db/models/query.py:6694 ms5.5%
Profile.saveapps/projects/models.py:4653 ms3.7%
next_numberapps/projects/models.py:35 return (model.objects.filter(project_id=project_id).aggregate(last=models.Max("number"))["last"] or 0) + 13 ms3.7%
QuerySet.aggregatedjango/db/models/query.py:5943 ms3.7%
Query.get_aggregationdjango/db/models/sql/query.py:6333 ms3.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms3.7%
CursorWrapper.executedjango/db/backends/utils.py:793 ms3.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms3.7%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms3.7%
Cursor.executepsycopg/cursor.py:1133 ms3.7%
Connection.waitpsycopg/connection.py:4953 ms3.7%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)1 ms1.8%
Model.savedjango/db/models/base.py:8741 ms1.8%
Model.save_basedjango/db/models/base.py:9661 ms1.8%
Model._save_tabledjango/db/models/base.py:11671 ms1.8%
Model._do_insertdjango/db/models/base.py:12181 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet._insertdjango/db/models/query.py:19181 ms1.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
store_profileapps/projects/testing.py:372 part = ProfilePart.objects.create(profile=profile, index=0, document=compress(data), document_size=len(data))1 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet.createdjango/db/models/query.py:6691 ms1.8%
Model.savedjango/db/models/base.py:8741 ms1.8%
Model.save_basedjango/db/models/base.py:9661 ms1.8%
Model._save_tabledjango/db/models/base.py:11671 ms1.8%
Model._do_insertdjango/db/models/base.py:12181 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet._insertdjango/db/models/query.py:19181 ms1.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
store_profileapps/projects/testing.py:375 profile.refresh_from_db()1 ms1.8%
Model.refresh_from_dbdjango/db/models/base.py:7581 ms1.8%
QuerySet.getdjango/db/models/query.py:6351 ms1.8%
QuerySet.__len__django/db/models/query.py:3721 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
ModelIterable.__iter__django/db/models/query.py:951 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
StorageTest.test_prune_old_dataapps/projects/tests.py:124723 ms29.3%
store_profileapps/projects/testing.py:37314 ms18.3%
process_profile_partapps/projects/profiles.py:363 profile = claim_part(part, document)7 ms9.2%
claim_partapps/projects/profiles.py:3993 ms3.7%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(3 ms3.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms3.7%
QuerySet.get_or_createdjango/db/models/query.py:9871 ms1.8%
QuerySet.getdjango/db/models/query.py:6351 ms1.8%
QuerySet.__len__django/db/models/query.py:3721 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
ModelIterable.__iter__django/db/models/query.py:951 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
QuerySet.get_or_createdjango/db/models/query.py:9941 ms1.8%
QuerySet.createdjango/db/models/query.py:6691 ms1.8%
Model.savedjango/db/models/base.py:8741 ms1.8%
Model.save_basedjango/db/models/base.py:9661 ms1.8%
Model._save_tabledjango/db/models/base.py:11671 ms1.8%
Model._do_insertdjango/db/models/base.py:12181 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet._insertdjango/db/models/query.py:19181 ms1.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
claim_partapps/projects/profiles.py:397 project = profile.project1 ms1.8%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2571 ms1.8%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2221 ms1.8%
QuerySet.getdjango/db/models/query.py:6351 ms1.8%
QuerySet.__len__django/db/models/query.py:3721 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
ModelIterable.__iter__django/db/models/query.py:951 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms1.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7671 ms1.8%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:861 ms1.8%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:751 ms1.8%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:2551 ms1.8%
claim_partapps/projects/profiles.py:404 commit, _ = Commit.objects.get_or_create(1 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet.get_or_createdjango/db/models/query.py:9871 ms1.8%
QuerySet.getdjango/db/models/query.py:6351 ms1.8%
QuerySet.__len__django/db/models/query.py:3721 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
ModelIterable.__iter__django/db/models/query.py:951 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
claim_partapps/projects/profiles.py:4671 ms1.8%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)1 ms1.8%
Model.savedjango/db/models/base.py:8741 ms1.8%
Model.save_basedjango/db/models/base.py:9661 ms1.8%
Model._save_tabledjango/db/models/base.py:11101 ms1.8%
Model._do_updatedjango/db/models/base.py:12111 ms1.8%
QuerySet._updatedjango/db/models/query.py:13271 ms1.8%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21401 ms1.8%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
process_profile_partapps/projects/profiles.py:3654 ms5.5%
upsert_testsapps/projects/profiles.py:4724 ms5.5%
TestManager.upsertapps/projects/models.py:2291 ms1.8%
TestManager.slugs_forapps/projects/models.py:240 existing = dict(self.filter(project_id=project_id, name__in=names).values_list("name", "slug"))1 ms1.8%
QuerySet.__iter__django/db/models/query.py:3901 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
ValuesListIterable.__iter__django/db/models/query.py:2381 ms1.8%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms1.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7671 ms1.8%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:881 ms1.8%
WhereNode.split_having_qualifydjango/db/models/sql/where.py:471 ms1.8%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order1 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet.bulk_createdjango/db/models/query.py:8331 ms1.8%
QuerySet._batched_insertdjango/db/models/query.py:19561 ms1.8%
QuerySet._insertdjango/db/models/query.py:19181 ms1.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
BaseCursor._execute_genpsycopg/_cursor_base.py:2051 ms1.8%
BaseCursor._convert_querypsycopg/_cursor_base.py:4651 ms1.8%
PostgresClientQuery.convertpsycopg/_queries.py:2891 ms1.8%
PostgresClientQuery.dumppsycopg/_queries.py:2991 ms1.8%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3001 ms1.8%
TestManager.upsertapps/projects/models.py:236 return {test.name: test for test in self.filter(project=project, name__in=names)}1 ms1.8%
QuerySet.__iter__django/db/models/query.py:3901 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
ModelIterable.__iter__django/db/models/query.py:951 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
process_profile_partapps/projects/profiles.py:3661 ms1.8%
write_perfsapps/projects/profiles.py:478 TestPerf.objects.filter(profile=profile, part=part.index).delete()1 ms1.8%
QuerySet.deletedjango/db/models/query.py:12381 ms1.8%
Collector.deletedjango/db/models/deletion.py:4711 ms1.8%
QuerySet._raw_deletedjango/db/models/query.py:12601 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
process_profile_partapps/projects/profiles.py:368 ProfilePart.objects.filter(pk=part.pk).update(1 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet.filterdjango/db/models/query.py:15421 ms1.8%
QuerySet._filter_or_excludedjango/db/models/query.py:15551 ms1.8%
QuerySet._chaindjango/db/models/query.py:19731 ms1.8%
store_profileapps/projects/testing.py:374 finalize_profile(profile.id)6 ms7.3%
finalize_profileapps/projects/profiles.py:5173 ms3.7%
add_perfsapps/projects/rollups.py:64 for row in TestDailyStats.objects.filter(1 ms1.8%
QuerySet.__iter__django/db/models/query.py:3901 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
ModelIterable.__iter__django/db/models/query.py:951 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms1.8%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2861 ms1.8%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:781 ms1.8%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(1 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet.bulk_createdjango/db/models/query.py:8331 ms1.8%
QuerySet._batched_insertdjango/db/models/query.py:19561 ms1.8%
QuerySet._insertdjango/db/models/query.py:19181 ms1.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
finalize_profileapps/projects/profiles.py:500 profile = Profile.objects.select_for_update(no_key=True).get(pk=profile_id)1 ms1.8%
QuerySet.getdjango/db/models/query.py:6351 ms1.8%
QuerySet.__len__django/db/models/query.py:3721 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
ModelIterable.__iter__django/db/models/query.py:951 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms1.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7671 ms1.8%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:861 ms1.8%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:751 ms1.8%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3171 ms1.8%
store_profileapps/projects/testing.py:3711 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet.createdjango/db/models/query.py:6691 ms1.8%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)1 ms1.8%
Model.savedjango/db/models/base.py:8741 ms1.8%
Model.save_basedjango/db/models/base.py:9661 ms1.8%
Model._save_tabledjango/db/models/base.py:11671 ms1.8%
Model._do_insertdjango/db/models/base.py:12181 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet._insertdjango/db/models/query.py:19181 ms1.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19241 ms1.8%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18691 ms1.8%
SQLInsertCompiler.assemble_as_sqldjango/db/backends/postgresql/compiler.py:641 ms1.8%
SQLInsertCompiler.assemble_as_sqldjango/db/models/sql/compiler.py:17701 ms1.8%
store_profileapps/projects/testing.py:372 part = ProfilePart.objects.create(profile=profile, index=0, document=compress(data), document_size=len(data))1 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet.createdjango/db/models/query.py:6691 ms1.8%
Model.savedjango/db/models/base.py:8741 ms1.8%
Model.save_basedjango/db/models/base.py:9661 ms1.8%
Model._save_tabledjango/db/models/base.py:11671 ms1.8%
Model._do_insertdjango/db/models/base.py:12181 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet._insertdjango/db/models/query.py:19181 ms1.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19231 ms1.8%
StorageTest.test_prune_old_dataapps/projects/tests.py:12786 ms7.3%
_SharedTaskProxy.__call__potatoq/app.py:7636 ms7.3%
Task.__call__potatoq/task.py:1896 ms7.3%
prune_old_dataapps/api/tasks.py:307 .update(document=b"", document_size=0)1 ms1.8%
QuerySet.updatedjango/db/models/query.py:13001 ms1.8%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms1.8%
SQLUpdateCompiler.as_sqldjango/db/models/sql/compiler.py:20311 ms1.8%
SQLUpdateCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:21941 ms1.8%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:871 ms1.8%
SQLCompiler.get_order_bydjango/db/models/sql/compiler.py:5281 ms1.8%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5781 ms1.8%
prune_old_dataapps/api/tasks.py:3091 ms1.8%
prune_old_dataapps/api/tasks.py:318 while ids := list(rows.values_list("id", flat=True)[:batch_size]):1 ms1.8%
QuerySet.__iter__django/db/models/query.py:3901 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
FlatValuesListIterable.__iter__django/db/models/query.py:2771 ms1.8%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
prune_old_dataapps/api/tasks.py:3191 ms1.8%
QuerySet.deletedjango/db/models/query.py:12381 ms1.8%
Collector.deletedjango/db/models/deletion.py:4711 ms1.8%
QuerySet._raw_deletedjango/db/models/query.py:12601 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
StorageTest.test_prune_old_dataapps/projects/tests.py:12654 ms5.5%
_SharedTaskProxy.__call__potatoq/app.py:7634 ms5.5%
Task.__call__potatoq/task.py:1894 ms5.5%
prune_old_dataapps/api/tasks.py:3001 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet.annotatedjango/db/models/query.py:16991 ms1.8%
QuerySet._annotatedjango/db/models/query.py:17511 ms1.8%
prune_old_dataapps/api/tasks.py:306 .exclude(profile_id__in=list(keep))1 ms1.8%
QuerySet.__iter__django/db/models/query.py:3901 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
FlatValuesListIterable.__iter__django/db/models/query.py:2771 ms1.8%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
prune_old_dataapps/api/tasks.py:318 while ids := list(rows.values_list("id", flat=True)[:batch_size]):1 ms1.8%
QuerySet.values_listdjango/db/models/query.py:14581 ms1.8%
QuerySet._valuesdjango/db/models/query.py:14001 ms1.8%
QuerySet._chaindjango/db/models/query.py:19731 ms1.8%
QuerySet._clonedjango/db/models/query.py:19861 ms1.8%
Query.chaindjango/db/models/sql/query.py:4331 ms1.8%
Query.clonedjango/db/models/sql/query.py:3971 ms1.8%
StorageTest.test_prune_old_dataapps/projects/tests.py:1277 TestDailyStats.objects.filter(test=self.test, environment=self.first.environment).update(day=two_years_ago)3 ms3.7%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2571 ms1.8%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2221 ms1.8%
QuerySet.getdjango/db/models/query.py:6351 ms1.8%
QuerySet.__len__django/db/models/query.py:3721 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
ModelIterable.__iter__django/db/models/query.py:951 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms1.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7671 ms1.8%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:861 ms1.8%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:751 ms1.8%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:2551 ms1.8%
QuerySet.updatedjango/db/models/query.py:13001 ms1.8%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()3 ms3.7%
TestCase._fixture_teardowndjango/test/testcases.py:14951 ms1.8%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4831 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
TestCase._fixture_teardowndjango/test/testcases.py:14971 ms1.8%
TestCase._rollback_atomicsdjango/test/testcases.py:14051 ms1.8%
Atomic.__exit__django/db/transaction.py:2861 ms1.8%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms1.8%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4311 ms1.8%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3751 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms1.8%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2861 ms1.8%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:781 ms1.8%
StorageTest.test_prune_old_dataapps/projects/tests.py:12621 ms1.8%
QuerySet.updatedjango/db/models/query.py:13001 ms1.8%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
StorageTest.test_prune_old_dataapps/projects/tests.py:12691 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet.getdjango/db/models/query.py:6351 ms1.8%
QuerySet.__len__django/db/models/query.py:3721 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
ModelIterable.__iter__django/db/models/query.py:1071 ms1.8%
StorageTest.test_prune_old_dataapps/projects/tests.py:12711 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.8%
QuerySet.getdjango/db/models/query.py:6351 ms1.8%
QuerySet.__len__django/db/models/query.py:3721 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.8%
ModelIterable.__iter__django/db/models/query.py:951 ms1.8%
StorageTest.test_prune_old_dataapps/projects/tests.py:12731 ms1.8%
QuerySet.existsdjango/db/models/query.py:13371 ms1.8%
Query.has_resultsdjango/db/models/sql/query.py:6811 ms1.8%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15921 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.8%
Cursor.executepsycopg/cursor.py:1131 ms1.8%
Connection.waitpsycopg/connection.py:4951 ms1.8%
Estimated from 54 samples; phase durations are exact. Frames from pytest and pluggy are hidden .

Hot lines in your code

apps/projects/models.py:466
super().save(*args, **kwargs)
Profile.save · Database
9 ms
apps/projects/models.py:35
return (model.objects.filter(project_id=project_id).aggregate(last=models.Max("number"))["last"] or 0) + 1
next_number · Database
3 ms
apps/projects/testing.py:372
part = ProfilePart.objects.create(profile=profile, index=0, document=compress(data), document_size=len(data))
store_profile · Database
3 ms
apps/projects/profiles.py:397
project = profile.project
claim_part · Database
3 ms
apps/projects/environments.py:63
obj, created = Environment.objects.get_or_create(
get_or_create_environment · Database
3 ms
apps/projects/profiles.py:404
commit, _ = Commit.objects.get_or_create(
claim_part · Database
3 ms
apps/projects/models.py:240
existing = dict(self.filter(project_id=project_id, name__in=names).values_list("name", "slug"))
TestManager.slugs_for · Database
3 ms
apps/projects/models.py:236
return {test.name: test for test in self.filter(project=project, name__in=names)}
TestManager.upsert · Database
3 ms
apps/projects/rollups.py:64
for row in TestDailyStats.objects.filter(
add_perfs · Database
3 ms
apps/projects/rollups.py:88
TestDailyStats.objects.bulk_create(
add_perfs · Database
3 ms

Fixtures

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

Database

107 queries · 35 ms

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

8×
SELECT "projects_profilepart"."id", "projects_profilepart"."profile_id", "projects_profilepart"."index", "projects_profilepart"."count", "projects_profilepart"."checksum", "projects_profilepart"."status", "projects_profilepart"."error", "projects_profilepart"."tests_count", "projects_profilepart"."…
6×
SELECT "projects_profile"."id", "projects_profile"."project_id", "projects_profile"."number", "projects_profile"."environment_id", "projects_profile"."session_id", "projects_profile"."run_id", "projects_profile"."commit_id", "projects_profile"."ingest_id", "projects_profile"."external_id", "project…
5×
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…
3×
SELECT "projects_testperf"."id" AS "id" FROM "projects_testperf" WHERE "projects_testperf"."date" < %s LIMIT ?
3×
SELECT "projects_testdailystats"."id" AS "id" FROM "projects_testdailystats" WHERE "projects_testdailystats"."day" < %s LIMIT ?

Biggest pieces of work

call test body
apps/projects/tests.py:1251
73 ms
call _post_teardown
django/test/testcases.py:1240
3 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 78 ms e141198 main Profile
1 week, 5 days ago CI github-actions:test passed 57 ms 46ec2aa main Profile
2 weeks, 1 day ago CI github-actions:test passed 84 ms afde85b main Profile
2 weeks, 1 day ago CI github-actions:test passed 67 ms fe29f9d main Profile
2 weeks, 1 day ago CI github-actions:test passed 85 ms 044719a main Profile
2 weeks, 2 days ago CI github-actions:test passed 59 ms b3fedae main Profile
2 weeks, 4 days ago CI github-actions:test passed 93 ms 43c4eda main Profile
2 weeks, 6 days ago CI github-actions:test passed 85 ms 9caa567 main Profile
2 weeks, 6 days ago CI github-actions:test passed 84 ms ec75501 main Profile
3 weeks ago CI github-actions:test passed 94 ms d2c12e5 main Profile
3 weeks ago CI github-actions:test passed 53 ms 0b902f6 main Profile
3 weeks ago CI github-actions:test passed 93 ms 78a4357 main Profile