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

ProfileUploadTest::test_a_changed_part_replaces_the_old_one

First seen 7 hours ago in 78a4357
CI github-actions:test 5 runs
Average
150 ms
median 157 ms
max 188 ms
Phases
Setup 13 ms Call 136 ms Teardown 0.18 ms
Categories
Database 106 ms App code 2 ms Factories 0.68 ms Test code 0.34 ms Other (Libraries, Unsampled, pytest) 41 ms

113 database queries per run

Needs 45 KB of memory (max 116 KB)

Duration per run

Where the time goes

Latest run in ci:github-actions:test, 15 minutes ago · open run
Show pytest frames
setup14 ms9.0%
TestCase.setUpClassdjango/test/testcases.py:1423 cls.cls_atomics = cls._enter_atomics()11 ms7.2%
TestCase._enter_atomicsdjango/test/testcases.py:139611 ms7.2%
Atomic.__enter__django/db/transaction.py:19811 ms7.2%
BaseDatabaseWrapper.get_autocommitdjango/db/backends/base/base.py:45411 ms7.2%
SimpleTestCase.ensure_connection_patch_method.<locals>.patched_ensure_connectiondjango/test/testcases.py:30311 ms7.2%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:2611 ms7.2%
BaseDatabaseWrapper.ensure_connectiondjango/db/backends/base/base.py:27911 ms7.2%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:2611 ms7.2%
BaseDatabaseWrapper.connectdjango/db/backends/base/base.py:25611 ms7.2%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:2611 ms7.2%
DatabaseWrapper.get_new_connectiondjango/db/backends/postgresql/base.py:33311 ms7.2%
Connection.connectpsycopg/connection.py:10911 ms7.2%
wait_connpsycopg/waiting.py:1416 ms3.6%
EpollSelector.select<stdlib>/selectors.py:4526 ms3.6%
wait_connpsycopg/waiting.py:1454 ms2.7%
BaseConnection._connect_genpsycopg/_connection_base.py:4394 ms2.7%
wait_connpsycopg/waiting.py:1361 ms0.9%
BaseConnection._connect_genpsycopg/_connection_base.py:4391 ms0.9%
TestCase.setUpClassdjango/test/testcases.py:1439 cls.setUpTestData()3 ms1.8%
ProfileUploadTest.setUpTestDataapps/api/tests.py:4803 ms1.8%
makemodel_bakery/baker.py:1473 ms1.8%
Baker.makemodel_bakery/baker.py:4063 ms1.8%
Baker._makemodel_bakery/baker.py:4711 ms0.9%
Baker.generate_valuemodel_bakery/baker.py:8001 ms0.9%
gen_relatedmodel_bakery/random_gen.py:2741 ms0.9%
makemodel_bakery/baker.py:1471 ms0.9%
Baker.makemodel_bakery/baker.py:4061 ms0.9%
Baker._makemodel_bakery/baker.py:4821 ms0.9%
Baker.instancemodel_bakery/baker.py:5351 ms0.9%
Model.savedjango/db/models/base.py:8741 ms0.9%
Model.save_basedjango/db/models/base.py:9661 ms0.9%
Model._save_tabledjango/db/models/base.py:11671 ms0.9%
Model._do_insertdjango/db/models/base.py:12181 ms0.9%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms0.9%
QuerySet._insertdjango/db/models/query.py:19181 ms0.9%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms0.9%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.9%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.9%
Cursor.executepsycopg/cursor.py:1131 ms0.9%
Connection.waitpsycopg/connection.py:4951 ms0.9%
Baker._makemodel_bakery/baker.py:4901 ms0.9%
Baker.create_by_related_namemodel_bakery/baker.py:5601 ms0.9%
makemodel_bakery/baker.py:1471 ms0.9%
Baker.makemodel_bakery/baker.py:4061 ms0.9%
Baker._makemodel_bakery/baker.py:4821 ms0.9%
Baker.instancemodel_bakery/baker.py:5321 ms0.9%
Baker._handle_generic_foreign_keysmodel_bakery/baker.py:7041 ms0.9%
call142 ms90.9%
ProfileUploadTest.test_a_changed_part_replaces_the_old_oneapps/api/tests.py:869 self.upload(document)81 ms52.0%
ProfileUploadTest.uploadapps/api/tests.py:49544 ms28.1%
_SharedTaskProxy.__call__potatoq/app.py:76344 ms28.1%
Task.__call__potatoq/task.py:18944 ms28.1%
process_profileapps/api/tasks.py:23931 ms19.5%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)14 ms8.7%
claim_partapps/projects/profiles.py:3783 ms2.2%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(3 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms2.2%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms1.1%
QuerySet.getdjango/db/models/query.py:6352 ms1.1%
QuerySet.__len__django/db/models/query.py:3722 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
ModelIterable.__iter__django/db/models/query.py:952 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
QuerySet.get_or_createdjango/db/models/query.py:9942 ms1.1%
QuerySet.createdjango/db/models/query.py:6692 ms1.1%
Model.savedjango/db/models/base.py:8742 ms1.1%
Model.save_basedjango/db/models/base.py:9662 ms1.1%
Model._save_tabledjango/db/models/base.py:11672 ms1.1%
Model._do_insertdjango/db/models/base.py:12182 ms1.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.1%
QuerySet._insertdjango/db/models/query.py:19182 ms1.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
claim_partapps/projects/profiles.py:383 commit, _ = Commit.objects.get_or_create(3 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms2.2%
QuerySet.get_or_createdjango/db/models/query.py:9923 ms2.2%
Atomic.__enter__django/db/transaction.py:2112 ms1.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.1%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.1%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
Atomic.__exit__django/db/transaction.py:2472 ms1.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.1%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.1%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
claim_partapps/projects/profiles.py:358 profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)2 ms1.1%
QuerySet.getdjango/db/models/query.py:6352 ms1.1%
QuerySet.__len__django/db/models/query.py:3722 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
ModelIterable.__iter__django/db/models/query.py:952 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
claim_partapps/projects/profiles.py:359 ProfilePart.objects.filter(pk=part.pk).update(status=ProfilePart.StatusTypes.PENDING)2 ms1.1%
QuerySet.updatedjango/db/models/query.py:13002 ms1.1%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
claim_partapps/projects/profiles.py:360 ProfilePart.objects.filter(profile=profile, index=part.index, id__lt=part.id).delete() # superseded uploads2 ms1.1%
QuerySet.deletedjango/db/models/query.py:12382 ms1.1%
Collector.deletedjango/db/models/deletion.py:4712 ms1.1%
QuerySet._raw_deletedjango/db/models/query.py:12602 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
claim_partapps/projects/profiles.py:4462 ms1.1%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.1%
Model.savedjango/db/models/base.py:8742 ms1.1%
Model.save_basedjango/db/models/base.py:9662 ms1.1%
Model._save_tabledjango/db/models/base.py:11102 ms1.1%
Model._do_updatedjango/db/models/base.py:12112 ms1.1%
QuerySet._updatedjango/db/models/query.py:13272 ms1.1%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.1%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.1%
process_profile_partapps/projects/profiles.py:3447 ms4.3%
upsert_testsapps/projects/profiles.py:4517 ms4.3%
TestManager.upsertapps/projects/models.py:2293 ms2.2%
TestManager.slugs_forapps/projects/models.py:240 existing = dict(self.filter(project_id=project_id, name__in=names).values_list("name", "slug"))3 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.1%
QuerySet.filterdjango/db/models/query.py:15422 ms1.1%
QuerySet.__iter__django/db/models/query.py:3902 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms1.1%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order2 ms1.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.1%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms1.1%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.1%
QuerySet._insertdjango/db/models/query.py:19182 ms1.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
TestManager.upsertapps/projects/models.py:236 return {test.name: test for test in self.filter(project=project, name__in=names)}2 ms1.1%
QuerySet.__iter__django/db/models/query.py:3902 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
ModelIterable.__iter__django/db/models/query.py:952 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
process_profile_partapps/projects/profiles.py:345 write_perfs(profile, part, entries, tests)3 ms2.2%
write_perfsapps/projects/profiles.py:458 TestPerf.objects.bulk_create(3 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms2.2%
QuerySet.bulk_createdjango/db/models/query.py:8333 ms2.2%
QuerySet._batched_insertdjango/db/models/query.py:19563 ms2.2%
QuerySet._insertdjango/db/models/query.py:19183 ms2.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19253 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:793 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms2.2%
Cursor.executepsycopg/cursor.py:1133 ms2.2%
Connection.waitpsycopg/connection.py:4953 ms2.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms1.1%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms1.1%
PostgresClientQuery.convertpsycopg/_queries.py:2842 ms1.1%
_query2pg_client_nocachepsycopg/_queries.py:3292 ms1.1%
_split_querypsycopg/_queries.py:4432 ms1.1%
<lambda><string>:12 ms1.1%
<GC>~2 ms1.1%
process_profile_partapps/projects/profiles.py:3463 ms2.2%
write_snapshotsapps/projects/profiles.py:3122 ms1.1%
write_snapshots.<locals>.<genexpr>apps/projects/profiles.py:3102 ms1.1%
write_snapshots.<locals>.rowapps/projects/profiles.py:306 compress(json.dumps(snapshot_document(document, entry), separators=(",", ":")).encode()),2 ms1.1%
snapshot_documentapps/projects/profiles.py:2152 ms1.1%
SysMonitor.sysmon_py_startcoverage/sysmon.py:3652 ms1.1%
bytes_to_linescoverage/sysmon.py:1932 ms1.1%
write_snapshotsapps/projects/profiles.py:313 cursor.executemany(SNAPSHOT_UPSERT, batch)2 ms1.1%
CursorWrapper.executemanydjango/db/backends/utils.py:842 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executemanydjango/db/backends/utils.py:1142 ms1.1%
Cursor.executemanypsycopg/cursor.py:1372 ms1.1%
Connection._pipeline_nolockpsycopg/connection.py:4722 ms1.1%
Pipeline.__exit__psycopg/_pipeline.py:732 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
process_profile_partapps/projects/profiles.py:335 part = ProfilePart.objects.filter(pk=part.pk).first()2 ms1.1%
QuerySet.firstdjango/db/models/query.py:11452 ms1.1%
QuerySet.__iter__django/db/models/query.py:3902 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
ModelIterable.__iter__django/db/models/query.py:952 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.1%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.1%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.1%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms1.1%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5742 ms1.1%
process_profile_partapps/projects/profiles.py:347 ProfilePart.objects.filter(pk=part.pk).update(2 ms1.1%
QuerySet.updatedjango/db/models/query.py:13002 ms1.1%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
process_profileapps/api/tasks.py:25312 ms7.6%
_SharedTaskProxy.__call__potatoq/app.py:76312 ms7.6%
Task.__call__potatoq/task.py:18912 ms7.6%
finalize_profile_partsapps/api/tasks.py:259 if finalize_profile(profile_id):12 ms7.6%
finalize_profileapps/projects/profiles.py:4968 ms5.4%
add_perfsapps/projects/rollups.py:64 for row in TestDailyStats.objects.filter(3 ms2.2%
QuerySet.__iter__django/db/models/query.py:3903 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms2.2%
ModelIterable.__iter__django/db/models/query.py:953 ms2.2%
Query.get_compilerdjango/db/models/sql/query.py:3692 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(3 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms2.2%
QuerySet.bulk_createdjango/db/models/query.py:8333 ms2.2%
QuerySet._batched_insertdjango/db/models/query.py:19563 ms2.2%
QuerySet._insertdjango/db/models/query.py:19183 ms2.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19253 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:793 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms2.2%
Cursor.executepsycopg/cursor.py:1133 ms2.2%
Connection.waitpsycopg/connection.py:4953 ms2.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms1.1%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms1.1%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms1.1%
PostgresClientQuery.dumppsycopg/_queries.py:2992 ms1.1%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3002 ms1.1%
ListDumper.get_keypsycopg/types/array.py:1262 ms1.1%
add_perfsapps/projects/rollups.py:30 for perf in perfs:2 ms1.1%
QuerySet.__iter__django/db/models/query.py:3902 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
ModelIterable.__iter__django/db/models/query.py:952 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:9812 ms1.1%
finalize_profileapps/projects/profiles.py:5042 ms1.1%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.1%
Model.savedjango/db/models/base.py:8742 ms1.1%
Model.save_basedjango/db/models/base.py:9662 ms1.1%
Model._save_tabledjango/db/models/base.py:11102 ms1.1%
Model._do_updatedjango/db/models/base.py:12112 ms1.1%
QuerySet._updatedjango/db/models/query.py:13272 ms1.1%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.1%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
Atomic.__exit__django/db/transaction.py:2472 ms1.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.1%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.1%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.1%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)2 ms1.1%
QuerySet.getdjango/db/models/query.py:6352 ms1.1%
QuerySet.__len__django/db/models/query.py:3722 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
ModelIterable.__iter__django/db/models/query.py:952 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(37 ms23.8%
Client.postdjango/test/client.py:115337 ms23.8%
RequestFactory.postdjango/test/client.py:49937 ms23.8%
RequestFactory.genericdjango/test/client.py:67137 ms23.8%
Client.requestdjango/test/client.py:108237 ms23.8%
ClientHandler.__call__django/test/client.py:17324 ms15.2%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6224 ms15.2%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10424 ms15.2%
WhiteNoise.add_fileswhitenoise/base.py:10824 ms15.2%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12019 ms11.9%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13119 ms11.9%
WhiteNoise.get_static_filewhitenoise/base.py:20815 ms9.7%
StaticFile.__init__whitenoise/responders.py:737 ms4.3%
StaticFile.get_headerswhitenoise/responders.py:1673 ms2.2%
StaticFile.get_headerswhitenoise/responders.py:1762 ms1.1%
formatdate<stdlib>/email/utils.py:2662 ms1.1%
StaticFile.get_headerswhitenoise/responders.py:1712 ms1.1%
StaticFile.__init__whitenoise/responders.py:743 ms2.2%
parsedate<stdlib>/email/_parseaddr.py:1853 ms2.2%
StaticFile.__init__whitenoise/responders.py:723 ms2.2%
StaticFile.get_file_statswhitenoise/responders.py:1613 ms2.2%
__init____init__:-12 ms1.1%
FileEntry.__init__whitenoise/responders.py:2632 ms1.1%
FileEntry.stat_regular_filewhitenoise/responders.py:2762 ms1.1%
<GC>~2 ms1.1%
StaticFile.__init__whitenoise/responders.py:772 ms1.1%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms1.1%
WhiteNoise.get_static_filewhitenoise/base.py:2033 ms2.2%
WhiteNoise.add_cache_headerswhitenoise/base.py:2242 ms1.1%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1762 ms1.1%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1972 ms1.1%
URLMixin.urldebug_toolbar/panels/staticfiles.py:202 ms1.1%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1155 ms3.2%
scantreewhitenoise/base.py:2625 ms3.2%
scantreewhitenoise/base.py:2625 ms3.2%
scantreewhitenoise/base.py:2642 ms1.1%
scantreewhitenoise/base.py:2622 ms1.1%
scantreewhitenoise/base.py:2622 ms1.1%
scantreewhitenoise/base.py:2622 ms1.1%
scantreewhitenoise/base.py:2642 ms1.1%
scantreewhitenoise/base.py:2602 ms1.1%
ClientHandler.__call__django/test/client.py:18614 ms8.7%
BaseHandler.get_responsedjango/core/handlers/base.py:14114 ms8.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms8.7%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13014 ms8.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms8.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms8.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms8.7%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12314 ms8.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms8.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms8.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms7.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms7.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms7.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms7.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms7.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms7.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms7.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms7.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms7.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms7.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms7.6%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3412 ms7.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms7.6%
BaseHandler._get_responsedjango/core/handlers/base.py:19812 ms7.6%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6512 ms7.6%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:3712 ms7.6%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6412 ms7.6%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:757 ms4.3%
profile_uploadapps/api/urls.py:1503 ms2.2%
get_or_create_numberedapps/projects/models.py:21 number = next_number(model, project.pk)2 ms1.1%
next_numberapps/projects/models.py:35 return (model.objects.filter(project_id=project_id).aggregate(last=models.Max("number"))["last"] or 0) + 12 ms1.1%
QuerySet.aggregatedjango/db/models/query.py:5942 ms1.1%
Query.get_aggregationdjango/db/models/sql/query.py:6332 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
get_or_create_numberedapps/projects/models.py:24 return model.objects.create(project=project, number=number, **lookup, **(defaults or {})), True2 ms1.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.1%
QuerySet.createdjango/db/models/query.py:6692 ms1.1%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.1%
Model.savedjango/db/models/base.py:8742 ms1.1%
Model.save_basedjango/db/models/base.py:9662 ms1.1%
Model._save_tabledjango/db/models/base.py:11672 ms1.1%
Model._do_insertdjango/db/models/base.py:12182 ms1.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.1%
QuerySet._insertdjango/db/models/query.py:19182 ms1.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
profile_uploadapps/api/urls.py:152 part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()2 ms1.1%
QuerySet.firstdjango/db/models/query.py:11452 ms1.1%
QuerySet.__iter__django/db/models/query.py:3902 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
ModelIterable.__iter__django/db/models/query.py:952 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.1%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:872 ms1.1%
SQLCompiler.get_order_bydjango/db/models/sql/compiler.py:4912 ms1.1%
SQLCompiler._order_by_pairsdjango/db/models/sql/compiler.py:3592 ms1.1%
Expression.__hash__django/db/models/expressions.py:5622 ms1.1%
cached_property.__get__django/utils/functional.py:472 ms1.1%
Expression.identitydjango/db/models/expressions.py:5522 ms1.1%
Expression._identitydjango/db/models/expressions.py:5362 ms1.1%
profile_uploadapps/api/urls.py:154 part = ProfilePart.objects.create(2 ms1.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.1%
QuerySet.createdjango/db/models/query.py:6692 ms1.1%
Model.savedjango/db/models/base.py:8742 ms1.1%
Model.save_basedjango/db/models/base.py:9662 ms1.1%
Model._save_tabledjango/db/models/base.py:11672 ms1.1%
Model._do_insertdjango/db/models/base.py:12182 ms1.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.1%
QuerySet._insertdjango/db/models/query.py:19182 ms1.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:72 project = get_object_or_404(Project, secrettokens__token=request.headers.get("Authorization"))3 ms2.2%
get_object_or_404django/shortcuts.py:903 ms2.2%
QuerySet.getdjango/db/models/query.py:6353 ms2.2%
QuerySet.__len__django/db/models/query.py:3723 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms2.2%
ModelIterable.__iter__django/db/models/query.py:953 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:793 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms2.2%
Cursor.executepsycopg/cursor.py:1133 ms2.2%
Connection.waitpsycopg/connection.py:4953 ms2.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3182 ms1.1%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))2 ms1.1%
touch_tokenapps/api/urls.py:59 SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)2 ms1.1%
QuerySet.updatedjango/db/models/query.py:13002 ms1.1%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
ProfileUploadTest.test_a_changed_part_replaces_the_old_oneapps/api/tests.py:87239 ms24.9%
ProfileUploadTest.uploadapps/api/tests.py:49527 ms17.3%
_SharedTaskProxy.__call__potatoq/app.py:76327 ms17.3%
Task.__call__potatoq/task.py:18927 ms17.3%
process_profileapps/api/tasks.py:23924 ms15.2%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)10 ms6.5%
claim_partapps/projects/profiles.py:3633 ms2.2%
add_perfsapps/projects/rollups.py:64 for row in TestDailyStats.objects.filter(2 ms1.1%
QuerySet.__iter__django/db/models/query.py:3902 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
ModelIterable.__iter__django/db/models/query.py:1282 ms1.1%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(2 ms1.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.1%
QuerySet.bulk_createdjango/db/models/query.py:8162 ms1.1%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.1%
QuerySet._insertdjango/db/models/query.py:19182 ms1.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
claim_partapps/projects/profiles.py:358 profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)2 ms1.1%
QuerySet.getdjango/db/models/query.py:6352 ms1.1%
QuerySet.__len__django/db/models/query.py:3722 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
ModelIterable.__iter__django/db/models/query.py:952 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:8862 ms1.1%
claim_partapps/projects/profiles.py:359 ProfilePart.objects.filter(pk=part.pk).update(status=ProfilePart.StatusTypes.PENDING)2 ms1.1%
QuerySet.updatedjango/db/models/query.py:13002 ms1.1%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.1%
claim_partapps/projects/profiles.py:360 ProfilePart.objects.filter(profile=profile, index=part.index, id__lt=part.id).delete() # superseded uploads2 ms1.1%
QuerySet.deletedjango/db/models/query.py:12382 ms1.1%
Collector.deletedjango/db/models/deletion.py:4712 ms1.1%
QuerySet._raw_deletedjango/db/models/query.py:12602 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
claim_partapps/projects/profiles.py:4462 ms1.1%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.1%
Model.savedjango/db/models/base.py:8742 ms1.1%
Model.save_basedjango/db/models/base.py:9662 ms1.1%
Model._save_tabledjango/db/models/base.py:11102 ms1.1%
Model._do_updatedjango/db/models/base.py:12112 ms1.1%
QuerySet._updatedjango/db/models/query.py:13272 ms1.1%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.1%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.1%
SQLUpdateCompiler.as_sqldjango/db/models/sql/compiler.py:20782 ms1.1%
SQLCompiler.quote_name_unless_aliasdjango/db/models/sql/compiler.py:5692 ms1.1%
DatabaseOperations.quote_namedjango/db/backends/postgresql/operations.py:1892 ms1.1%
process_profile_partapps/projects/profiles.py:3445 ms3.2%
upsert_testsapps/projects/profiles.py:4515 ms3.2%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order3 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms2.2%
QuerySet.bulk_createdjango/db/models/query.py:8082 ms1.1%
QuerySet._prepare_for_bulk_createdjango/db/models/query.py:6922 ms1.1%
Model._prepare_related_fields_for_savedjango/db/models/base.py:12632 ms1.1%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms1.1%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.1%
QuerySet._insertdjango/db/models/query.py:19182 ms1.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
TestManager.upsertapps/projects/models.py:236 return {test.name: test for test in self.filter(project=project, name__in=names)}2 ms1.1%
QuerySet.__iter__django/db/models/query.py:3902 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
ModelIterable.__iter__django/db/models/query.py:952 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
process_profile_partapps/projects/profiles.py:3463 ms2.2%
write_snapshotsapps/projects/profiles.py:313 cursor.executemany(SNAPSHOT_UPSERT, batch)3 ms2.2%
CursorWrapper.executemanydjango/db/backends/utils.py:843 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms2.2%
CursorWrapper._executemanydjango/db/backends/utils.py:1142 ms1.1%
Cursor.executemanypsycopg/cursor.py:1372 ms1.1%
Connection._pipeline_nolockpsycopg/connection.py:4722 ms1.1%
Pipeline.__exit__psycopg/_pipeline.py:732 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
process_profile_partapps/projects/profiles.py:335 part = ProfilePart.objects.filter(pk=part.pk).first()2 ms1.1%
QuerySet.firstdjango/db/models/query.py:11452 ms1.1%
QuerySet.__iter__django/db/models/query.py:3902 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
ModelIterable.__iter__django/db/models/query.py:952 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
process_profile_partapps/projects/profiles.py:338 or ProfilePart.objects.filter(profile_id=part.profile_id, index=part.index, id__gt=part.id).exists()2 ms1.1%
QuerySet.existsdjango/db/models/query.py:13372 ms1.1%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms1.1%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
process_profile_partapps/projects/profiles.py:345 write_perfs(profile, part, entries, tests)2 ms1.1%
write_perfsapps/projects/profiles.py:457 TestPerf.objects.filter(profile=profile, part=part.index).delete()2 ms1.1%
QuerySet.deletedjango/db/models/query.py:12382 ms1.1%
Collector.deletedjango/db/models/deletion.py:4712 ms1.1%
QuerySet._raw_deletedjango/db/models/query.py:12602 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.1%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)3 ms2.2%
QuerySet.getdjango/db/models/query.py:6353 ms2.2%
QuerySet.__len__django/db/models/query.py:3723 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms2.2%
ModelIterable.__iter__django/db/models/query.py:953 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:793 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(12 ms7.6%
Client.postdjango/test/client.py:115312 ms7.6%
RequestFactory.postdjango/test/client.py:49912 ms7.6%
RequestFactory.genericdjango/test/client.py:67112 ms7.6%
Client.requestdjango/test/client.py:108212 ms7.6%
ClientHandler.__call__django/test/client.py:18612 ms7.6%
BaseHandler.get_responsedjango/core/handlers/base.py:14112 ms7.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms7.6%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13012 ms7.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms7.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms7.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms7.6%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12312 ms7.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms7.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms7.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms7.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms7.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms7.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms7.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms7.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms7.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms7.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms7.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms7.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms7.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms7.6%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3412 ms7.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms7.6%
BaseHandler._get_responsedjango/core/handlers/base.py:19812 ms7.6%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6512 ms7.6%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:3712 ms7.6%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6412 ms7.6%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:757 ms4.3%
profile_uploadapps/api/urls.py:154 part = ProfilePart.objects.create(3 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms2.2%
QuerySet.createdjango/db/models/query.py:6693 ms2.2%
Model.savedjango/db/models/base.py:8743 ms2.2%
Model.save_basedjango/db/models/base.py:9462 ms1.1%
Model.save_basedjango/db/models/base.py:9662 ms1.1%
Model._save_tabledjango/db/models/base.py:11672 ms1.1%
Model._do_insertdjango/db/models/base.py:12182 ms1.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.1%
QuerySet._insertdjango/db/models/query.py:19182 ms1.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
profile_uploadapps/api/urls.py:1502 ms1.1%
get_or_create_numberedapps/projects/models.py:18 existing = model.objects.filter(project=project, **lookup).first()2 ms1.1%
QuerySet.firstdjango/db/models/query.py:11452 ms1.1%
QuerySet.__iter__django/db/models/query.py:3902 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
ModelIterable.__iter__django/db/models/query.py:952 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.1%
profile_uploadapps/api/urls.py:152 part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()2 ms1.1%
QuerySet.firstdjango/db/models/query.py:11452 ms1.1%
QuerySet.__iter__django/db/models/query.py:3902 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
ModelIterable.__iter__django/db/models/query.py:952 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16222 ms1.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.1%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:72 project = get_object_or_404(Project, secrettokens__token=request.headers.get("Authorization"))3 ms2.2%
get_object_or_404django/shortcuts.py:903 ms2.2%
QuerySet.getdjango/db/models/query.py:6353 ms2.2%
QuerySet.__len__django/db/models/query.py:3723 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms2.2%
ModelIterable.__iter__django/db/models/query.py:952 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.1%
ModelIterable.__iter__django/db/models/query.py:1282 ms1.1%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15772 ms1.1%
SQLCompiler.get_convertersdjango/db/models/sql/compiler.py:15262 ms1.1%
Col.get_db_convertersdjango/db/models/expressions.py:13402 ms1.1%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))2 ms1.1%
touch_tokenapps/api/urls.py:59 SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)2 ms1.1%
QuerySet.__iter__django/db/models/query.py:3902 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms1.1%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
ProfileUploadTest.test_a_changed_part_replaces_the_old_oneapps/api/tests.py:87514 ms8.7%
_SharedTaskProxy.__call__potatoq/app.py:76314 ms8.7%
Task.__call__potatoq/task.py:18914 ms8.7%
finalize_profile_partsapps/api/tasks.py:259 if finalize_profile(profile_id):12 ms7.6%
finalize_profileapps/projects/profiles.py:4967 ms4.3%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(3 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms2.2%
QuerySet.bulk_createdjango/db/models/query.py:8163 ms2.2%
QuerySet._batched_insertdjango/db/models/query.py:19563 ms2.2%
QuerySet._insertdjango/db/models/query.py:19183 ms2.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19242 ms1.1%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18692 ms1.1%
SQLInsertCompiler.assemble_as_sqldjango/db/backends/postgresql/compiler.py:522 ms1.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
add_perfsapps/projects/rollups.py:30 for perf in perfs:2 ms1.1%
QuerySet.__iter__django/db/models/query.py:3902 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
ModelIterable.__iter__django/db/models/query.py:952 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.1%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:882 ms1.1%
WhereNode.split_having_qualifydjango/db/models/sql/where.py:472 ms1.1%
add_perfsapps/projects/rollups.py:64 for row in TestDailyStats.objects.filter(2 ms1.1%
QuerySet.__iter__django/db/models/query.py:3902 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
ModelIterable.__iter__django/db/models/query.py:952 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.1%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.1%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.1%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms1.1%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.1%
Col.as_sqldjango/db/models/expressions.py:13252 ms1.1%
finalize_profileapps/projects/profiles.py:479 profile = Profile.objects.select_for_update(no_key=True).get(pk=profile_id)2 ms1.1%
QuerySet.getdjango/db/models/query.py:6352 ms1.1%
QuerySet.__len__django/db/models/query.py:3722 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
ModelIterable.__iter__django/db/models/query.py:952 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
finalize_profileapps/projects/profiles.py:488 ProfilePart.objects.filter(profile=profile).exclude(pk__in=[part.pk for part in current]).delete()2 ms1.1%
QuerySet.deletedjango/db/models/query.py:12382 ms1.1%
Collector.deletedjango/db/models/deletion.py:4712 ms1.1%
QuerySet._raw_deletedjango/db/models/query.py:12602 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
finalize_profileapps/projects/profiles.py:5042 ms1.1%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.1%
Model.savedjango/db/models/base.py:8742 ms1.1%
Model.save_basedjango/db/models/base.py:9662 ms1.1%
Model._save_tabledjango/db/models/base.py:11102 ms1.1%
Model._do_updatedjango/db/models/base.py:12112 ms1.1%
QuerySet._updatedjango/db/models/query.py:13272 ms1.1%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.1%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
finalize_profile_partsapps/api/tasks.py:2602 ms1.1%
QuerySet.getdjango/db/models/query.py:6252 ms1.1%
QuerySet.filterdjango/db/models/query.py:15422 ms1.1%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.1%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.1%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.1%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.1%
Query.build_filterdjango/db/models/sql/query.py:16132 ms1.1%
Query.build_lookupdjango/db/models/sql/query.py:14302 ms1.1%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()3 ms2.2%
TestCase._fixture_teardowndjango/test/testcases.py:14953 ms2.2%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4833 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:793 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1033 ms2.2%
Cursor.executepsycopg/cursor.py:1133 ms2.2%
Connection.waitpsycopg/connection.py:4953 ms2.2%
ProfileUploadTest.test_a_changed_part_replaces_the_old_oneapps/api/tests.py:8682 ms1.1%
ProfileUploadTest.documentapps/api/tests.py:5002 ms1.1%
make_test_entryapps/projects/testing.py:1142 ms1.1%
SysMonitor.sysmon_py_startcoverage/sysmon.py:3942 ms1.1%
ProfileUploadTest.test_a_changed_part_replaces_the_old_oneapps/api/tests.py:8762 ms1.1%
QuerySet.__iter__django/db/models/query.py:3902 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms1.1%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.1%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:872 ms1.1%
SQLCompiler.get_order_bydjango/db/models/sql/compiler.py:4922 ms1.1%
BaseExpression.resolve_expressiondjango/db/models/expressions.py:2972 ms1.1%
ProfileUploadTest.test_a_changed_part_replaces_the_old_oneapps/api/tests.py:8782 ms1.1%
ProfileUploadTest.daily_runsapps/api/tests.py:7482 ms1.1%
QuerySet.__iter__django/db/models/query.py:3902 ms1.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.1%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms1.1%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.1%
Cursor.executepsycopg/cursor.py:1132 ms1.1%
Connection.waitpsycopg/connection.py:4952 ms1.1%
Estimated from 94 samples; phase durations are exact. Frames from pytest and pluggy are hidden .

Hot lines in your code

apps/api/tests.py:487
response = self.client.post(
ProfileUploadTest.upload · Libraries
25 ms
apps/projects/models.py:466
super().save(*args, **kwargs)
Profile.save · Database
8 ms
apps/projects/rollups.py:88
TestDailyStats.objects.bulk_create(
add_perfs · Database
8 ms
apps/api/urls.py:72
project = get_object_or_404(Project, secrettokens__token=request.headers.get("Authorization"))
api_request.<locals>.decorator.<locals>.wrapped_view · Database
7 ms
apps/projects/rollups.py:64
for row in TestDailyStats.objects.filter(
add_perfs · Database
7 ms
apps/api/urls.py:154
part = ProfilePart.objects.create(
profile_upload · Database
5 ms
apps/api/tasks.py:237
part = ProfilePart.objects.select_related("profile").get(id=part_id)
process_profile · Database
5 ms
apps/projects/models.py:230
self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order
TestManager.upsert · Database
5 ms
apps/projects/profiles.py:313
cursor.executemany(SNAPSHOT_UPSERT, batch)
write_snapshots · Database
5 ms
apps/api/urls.py:59
SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)
touch_token · Database
3 ms

Fixtures

Exact setup time
_unittest_setUpClass_fixture_ProfileUploadTest class 13 ms
_django_setup_unittest class 0.28 ms
_django_set_urlconf function 0.06 ms
_live_server_helper function 0.04 ms
_django_db_marker function 0.04 ms
_template_string_if_invalid_marker function 0.04 ms
_dj_autoclear_mailbox function 0.04 ms
_django_clear_site_cache function 0.03 ms
monkeypatch function 0.02 ms

Database

113 queries · 57 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"."…
7×
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…
4×
SELECT "projects_project"."id", "projects_project"."organization_id", "projects_project"."name", "projects_project"."slug", "projects_project"."public", "projects_project"."description", "projects_project"."date_created", "projects_project"."date_updated", "projects_project"."created_by_id" FROM "p…
4×
SELECT "projects_testdailystats"."id", "projects_testdailystats"."project_id", "projects_testdailystats"."test_id", "projects_testdailystats"."environment_id", "projects_testdailystats"."day", "projects_testdailystats"."runs", "projects_testdailystats"."failures", "projects_testdailystats"."duratio…

Biggest pieces of work

call test body
apps/api/tests.py:869
139 ms
setup setUpClass
django/test/testcases.py:1423
14 ms
call _post_teardown
django/test/testcases.py:1240
3 ms

Reliability

5 results · 0 CI failures · 0 local failures

This test hasn't failed recently.

History

Latest 5 results, oldest first in the strip
When Environment Outcome Duration Commit
15 minutes ago CI github-actions:test passed 157 ms 9caa567 main Profile
40 minutes ago CI github-actions:test passed 151 ms ec75501 main Profile
7 hours ago CI github-actions:test passed 188 ms d2c12e5 main Profile
7 hours ago CI github-actions:test passed 97 ms 0b902f6 main Profile
7 hours ago CI github-actions:test passed 157 ms 78a4357 main Profile