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

ProfileUploadTest::test_reupload_replaces_profile

First seen 7 hours ago in 78a4357
CI github-actions:test 5 runs
Average
107 ms
median 113 ms
max 129 ms
Phases
Setup 0.80 ms Call 106 ms Teardown 0.18 ms
Categories
Database 67 ms App code 4 ms Other (Libraries, pytest, Unsampled, Serialization) 36 ms

96 database queries per run

Needs 307 KB of memory (max 708 KB)

Duration per run

Where the time goes

Latest run in ci:github-actions:test, 18 minutes ago · open run
Show pytest frames
call112 ms99.0%
ProfileUploadTest.test_reupload_replaces_profileapps/api/tests.py:701 self.upload(self.document(run_id="same-run"))77 ms68.1%
ProfileUploadTest.uploadapps/api/tests.py:49540 ms35.6%
_SharedTaskProxy.__call__potatoq/app.py:76340 ms35.6%
Task.__call__potatoq/task.py:18940 ms35.6%
process_profileapps/api/tasks.py:23924 ms21.7%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)10 ms9.3%
claim_partapps/projects/profiles.py:3783 ms3.1%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(3 ms3.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.5%
QuerySet.get_or_createdjango/db/models/query.py:9922 ms1.5%
Atomic.__exit__django/db/transaction.py:2472 ms1.5%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.5%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.5%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
claim_partapps/projects/profiles.py:358 profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)2 ms1.5%
QuerySet.getdjango/db/models/query.py:6352 ms1.5%
QuerySet.__len__django/db/models/query.py:3722 ms1.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.5%
ModelIterable.__iter__django/db/models/query.py:952 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.5%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.5%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.5%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.5%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms1.5%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5742 ms1.5%
claim_partapps/projects/profiles.py:360 ProfilePart.objects.filter(profile=profile, index=part.index, id__lt=part.id).delete() # superseded uploads2 ms1.5%
QuerySet.deletedjango/db/models/query.py:12382 ms1.5%
Collector.deletedjango/db/models/deletion.py:4712 ms1.5%
QuerySet._raw_deletedjango/db/models/query.py:12602 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
claim_partapps/projects/profiles.py:383 commit, _ = Commit.objects.get_or_create(2 ms1.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.5%
QuerySet.get_or_createdjango/db/models/query.py:9922 ms1.5%
Atomic.__exit__django/db/transaction.py:2472 ms1.5%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.5%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.5%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
claim_partapps/projects/profiles.py:4462 ms1.5%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.5%
Model.savedjango/db/models/base.py:8742 ms1.5%
Model.save_basedjango/db/models/base.py:9662 ms1.5%
Model._save_tabledjango/db/models/base.py:11102 ms1.5%
Model._do_updatedjango/db/models/base.py:12112 ms1.5%
QuerySet._updatedjango/db/models/query.py:13272 ms1.5%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.5%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
process_profile_partapps/projects/profiles.py:3445 ms4.6%
upsert_testsapps/projects/profiles.py:4515 ms4.6%
TestManager.upsertapps/projects/models.py:2292 ms1.5%
TestManager.slugs_forapps/projects/models.py:242 taken = set(self.filter(project_id=project_id, slug__in=set(new.values())).values_list("slug", flat=True))2 ms1.5%
QuerySet.__iter__django/db/models/query.py:3902 ms1.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.5%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms1.5%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order2 ms1.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.5%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms1.5%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.5%
QuerySet._insertdjango/db/models/query.py:19182 ms1.5%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
TestManager.upsertapps/projects/models.py:236 return {test.name: test for test in self.filter(project=project, name__in=names)}2 ms1.5%
QuerySet.__iter__django/db/models/query.py:3902 ms1.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.5%
ModelIterable.__iter__django/db/models/query.py:952 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
process_profile_partapps/projects/profiles.py:345 write_perfs(profile, part, entries, tests)3 ms3.1%
write_perfsapps/projects/profiles.py:457 TestPerf.objects.filter(profile=profile, part=part.index).delete()2 ms1.5%
QuerySet.deletedjango/db/models/query.py:12382 ms1.5%
Collector.deletedjango/db/models/deletion.py:4712 ms1.5%
QuerySet._raw_deletedjango/db/models/query.py:12602 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
write_perfsapps/projects/profiles.py:458 TestPerf.objects.bulk_create(2 ms1.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.5%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms1.5%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.5%
QuerySet._insertdjango/db/models/query.py:19182 ms1.5%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms1.5%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms1.5%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms1.5%
PostgresClientQuery.dumppsycopg/_queries.py:2992 ms1.5%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3002 ms1.5%
process_profile_partapps/projects/profiles.py:3463 ms3.1%
write_snapshotsapps/projects/profiles.py:3122 ms1.5%
write_snapshots.<locals>.<genexpr>apps/projects/profiles.py:3102 ms1.5%
write_snapshots.<locals>.rowapps/projects/profiles.py:306 compress(json.dumps(snapshot_document(document, entry), separators=(",", ":")).encode()),2 ms1.5%
compressapps/projects/profiles.py:108 return gzip.compress(data, compresslevel=6)2 ms1.5%
compress<stdlib>/gzip.py:6682 ms1.5%
write_snapshotsapps/projects/profiles.py:313 cursor.executemany(SNAPSHOT_UPSERT, batch)2 ms1.5%
CursorWrapper.executemanydjango/db/backends/utils.py:842 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executemanydjango/db/backends/utils.py:1142 ms1.5%
Cursor.executemanypsycopg/cursor.py:1372 ms1.5%
Connection._pipeline_nolockpsycopg/connection.py:4722 ms1.5%
Pipeline.__exit__psycopg/_pipeline.py:732 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
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.5%
QuerySet.existsdjango/db/models/query.py:13372 ms1.5%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms1.5%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
process_profileapps/api/tasks.py:25314 ms12.4%
_SharedTaskProxy.__call__potatoq/app.py:76314 ms12.4%
Task.__call__potatoq/task.py:18914 ms12.4%
finalize_profile_partsapps/api/tasks.py:259 if finalize_profile(profile_id):12 ms10.8%
finalize_profileapps/projects/profiles.py:4963 ms3.1%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(3 ms3.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms3.1%
QuerySet.bulk_createdjango/db/models/query.py:8333 ms3.1%
QuerySet._batched_insertdjango/db/models/query.py:19563 ms3.1%
QuerySet._insertdjango/db/models/query.py:19183 ms3.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19232 ms1.5%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.5%
BaseDatabaseWrapper.cursordjango/db/backends/base/base.py:3202 ms1.5%
BaseDatabaseWrapper._cursordjango/db/backends/base/base.py:2982 ms1.5%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.5%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
finalize_profileapps/projects/profiles.py:479 profile = Profile.objects.select_for_update(no_key=True).get(pk=profile_id)2 ms1.5%
QuerySet.getdjango/db/models/query.py:6352 ms1.5%
QuerySet.__len__django/db/models/query.py:3722 ms1.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.5%
ModelIterable.__iter__django/db/models/query.py:952 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
finalize_profileapps/projects/profiles.py:488 ProfilePart.objects.filter(profile=profile).exclude(pk__in=[part.pk for part in current]).delete()2 ms1.5%
QuerySet.deletedjango/db/models/query.py:12382 ms1.5%
Collector.deletedjango/db/models/deletion.py:4712 ms1.5%
QuerySet._raw_deletedjango/db/models/query.py:12602 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
finalize_profileapps/projects/profiles.py:491 duplicates = rows.values("test").annotate(count=Count("id"), keep=Max("id")).filter(count__gt=1)2 ms1.5%
QuerySet.valuesdjango/db/models/query.py:14142 ms1.5%
QuerySet._valuesdjango/db/models/query.py:14092 ms1.5%
Query.set_valuesdjango/db/models/sql/query.py:26042 ms1.5%
finalize_profileapps/projects/profiles.py:5042 ms1.5%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.5%
Model.savedjango/db/models/base.py:8742 ms1.5%
Model.save_basedjango/db/models/base.py:9662 ms1.5%
Model._save_tabledjango/db/models/base.py:11102 ms1.5%
Model._do_updatedjango/db/models/base.py:12112 ms1.5%
QuerySet._updatedjango/db/models/query.py:13272 ms1.5%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.5%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
finalize_profile_partsapps/api/tasks.py:2602 ms1.5%
QuerySet.getdjango/db/models/query.py:6352 ms1.5%
QuerySet.__len__django/db/models/query.py:3722 ms1.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.5%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms1.5%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)2 ms1.5%
QuerySet.getdjango/db/models/query.py:6352 ms1.5%
QuerySet.__len__django/db/models/query.py:3722 ms1.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.5%
ModelIterable.__iter__django/db/models/query.py:952 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(35 ms31.0%
Client.postdjango/test/client.py:115335 ms31.0%
RequestFactory.postdjango/test/client.py:49935 ms31.0%
RequestFactory.genericdjango/test/client.py:67135 ms31.0%
Client.requestdjango/test/client.py:108235 ms31.0%
ClientHandler.__call__django/test/client.py:17321 ms18.6%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6221 ms18.6%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10419 ms17.0%
WhiteNoise.add_fileswhitenoise/base.py:10819 ms17.0%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12014 ms12.4%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13112 ms10.8%
WhiteNoise.get_static_filewhitenoise/base.py:2087 ms6.2%
StaticFile.__init__whitenoise/responders.py:733 ms3.1%
StaticFile.get_headerswhitenoise/responders.py:1782 ms1.5%
parsedate<stdlib>/email/_parseaddr.py:1852 ms1.5%
StaticFile.get_headerswhitenoise/responders.py:1762 ms1.5%
StaticFile.__init__whitenoise/responders.py:772 ms1.5%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms1.5%
__init____init__:-12 ms1.5%
Headers.__init__<stdlib>/wsgiref/headers.py:362 ms1.5%
<GC>~2 ms1.5%
StaticFile.__init__whitenoise/responders.py:722 ms1.5%
StaticFile.get_file_statswhitenoise/responders.py:1612 ms1.5%
__init____init__:-12 ms1.5%
FileEntry.__init__whitenoise/responders.py:2632 ms1.5%
FileEntry.stat_regular_filewhitenoise/responders.py:2762 ms1.5%
<GC>~2 ms1.5%
WhiteNoise.get_static_filewhitenoise/base.py:2035 ms4.6%
WhiteNoise.add_cache_headerswhitenoise/base.py:2245 ms4.6%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1765 ms4.6%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1975 ms4.6%
URLMixin.urldebug_toolbar/panels/staticfiles.py:205 ms4.6%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2055 ms4.6%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1845 ms4.6%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1155 ms4.6%
scantreewhitenoise/base.py:2625 ms4.6%
scantreewhitenoise/base.py:2625 ms4.6%
scantreewhitenoise/base.py:2623 ms3.1%
scantreewhitenoise/base.py:2623 ms3.1%
scantreewhitenoise/base.py:2642 ms1.5%
scantreewhitenoise/base.py:2622 ms1.5%
scantreewhitenoise/base.py:2642 ms1.5%
scantreewhitenoise/base.py:2642 ms1.5%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:1112 ms1.5%
WhiteNoise.add_fileswhitenoise/base.py:1082 ms1.5%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1202 ms1.5%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:1312 ms1.5%
WhiteNoise.get_static_filewhitenoise/base.py:2082 ms1.5%
StaticFile.__init__whitenoise/responders.py:732 ms1.5%
StaticFile.get_headerswhitenoise/responders.py:1762 ms1.5%
formatdate<stdlib>/email/utils.py:2662 ms1.5%
format_datetime<stdlib>/email/utils.py:2842 ms1.5%
ClientHandler.__call__django/test/client.py:18614 ms12.4%
BaseHandler.get_responsedjango/core/handlers/base.py:14114 ms12.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms12.4%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13014 ms12.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms12.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms12.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms12.4%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12314 ms12.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms12.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms12.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms12.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms12.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms12.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms12.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms12.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms12.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms12.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms12.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms12.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms12.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms12.4%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3414 ms12.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms12.4%
BaseHandler._get_responsedjango/core/handlers/base.py:19814 ms12.4%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6514 ms12.4%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:3714 ms12.4%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6414 ms12.4%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:759 ms7.7%
profile_uploadapps/api/urls.py:1505 ms4.6%
get_or_create_numberedapps/projects/models.py:18 existing = model.objects.filter(project=project, **lookup).first()3 ms3.1%
QuerySet.firstdjango/db/models/query.py:11402 ms1.5%
QuerySet.firstdjango/db/models/query.py:11452 ms1.5%
QuerySet.__iter__django/db/models/query.py:3902 ms1.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.5%
ModelIterable.__iter__django/db/models/query.py:952 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
get_or_create_numberedapps/projects/models.py:24 return model.objects.create(project=project, number=number, **lookup, **(defaults or {})), True2 ms1.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.5%
QuerySet.createdjango/db/models/query.py:6692 ms1.5%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.5%
Model.savedjango/db/models/base.py:8742 ms1.5%
Model.save_basedjango/db/models/base.py:9662 ms1.5%
Model._save_tabledjango/db/models/base.py:11672 ms1.5%
Model._do_insertdjango/db/models/base.py:12182 ms1.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.5%
QuerySet._insertdjango/db/models/query.py:19182 ms1.5%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
profile_uploadapps/api/urls.py:152 part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()2 ms1.5%
QuerySet.firstdjango/db/models/query.py:11452 ms1.5%
QuerySet.__iter__django/db/models/query.py:3902 ms1.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.5%
ModelIterable.__iter__django/db/models/query.py:952 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.5%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.5%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.5%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.5%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:2552 ms1.5%
SQLCompiler.get_default_columnsdjango/db/models/sql/compiler.py:10302 ms1.5%
profile_uploadapps/api/urls.py:1592 ms1.5%
compressapps/projects/profiles.py:108 return gzip.compress(data, compresslevel=6)2 ms1.5%
compress<stdlib>/gzip.py:6682 ms1.5%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))3 ms3.1%
touch_tokenapps/api/urls.py:56 .filter(Q(date_last_used__lt=now - TOKEN_TOUCH_INTERVAL) | Q(date_last_used=None), token=token)2 ms1.5%
QuerySet.filterdjango/db/models/query.py:15422 ms1.5%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.5%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.5%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.5%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.5%
Query.build_filterdjango/db/models/sql/query.py:15282 ms1.5%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.5%
Query.build_filterdjango/db/models/sql/query.py:15772 ms1.5%
Query.setup_joinsdjango/db/models/sql/query.py:19272 ms1.5%
touch_tokenapps/api/urls.py:59 SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)2 ms1.5%
QuerySet.updatedjango/db/models/query.py:13002 ms1.5%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16222 ms1.5%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.5%
BaseDatabaseWrapper.cursordjango/db/backends/base/base.py:3202 ms1.5%
BaseDatabaseWrapper._cursordjango/db/backends/base/base.py:2982 ms1.5%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.5%
DatabaseWrapper.create_cursordjango/db/backends/postgresql/base.py:4302 ms1.5%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:72 project = get_object_or_404(Project, secrettokens__token=request.headers.get("Authorization"))2 ms1.5%
get_object_or_404django/shortcuts.py:902 ms1.5%
QuerySet.getdjango/db/models/query.py:6352 ms1.5%
QuerySet.__len__django/db/models/query.py:3722 ms1.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.5%
ModelIterable.__iter__django/db/models/query.py:952 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.5%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.5%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.5%
ProfileUploadTest.uploadapps/api/tests.py:485 body = json.dumps(body).encode()2 ms1.5%
dumps<stdlib>/json/__init__.py:2342 ms1.5%
JSONEncoder.encode<stdlib>/json/encoder.py:2022 ms1.5%
JSONEncoder.iterencode<stdlib>/json/encoder.py:2632 ms1.5%
ProfileUploadTest.test_reupload_replaces_profileapps/api/tests.py:70330 ms26.3%
ProfileUploadTest.uploadapps/api/tests.py:49519 ms17.0%
_SharedTaskProxy.__call__potatoq/app.py:76319 ms17.0%
Task.__call__potatoq/task.py:18919 ms17.0%
process_profileapps/api/tasks.py:23919 ms17.0%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)10 ms9.3%
claim_partapps/projects/profiles.py:3633 ms3.1%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(3 ms3.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms3.1%
QuerySet.bulk_createdjango/db/models/query.py:8163 ms3.1%
QuerySet._batched_insertdjango/db/models/query.py:19563 ms3.1%
QuerySet._insertdjango/db/models/query.py:19183 ms3.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19253 ms3.1%
CursorWrapper.executedjango/db/backends/utils.py:793 ms3.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms3.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms1.5%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms1.5%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms1.5%
PostgresClientQuery.dumppsycopg/_queries.py:2992 ms1.5%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3002 ms1.5%
ListDumper.upgradepsycopg/types/array.py:1442 ms1.5%
claim_partapps/projects/profiles.py:358 profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)2 ms1.5%
QuerySet.getdjango/db/models/query.py:6352 ms1.5%
QuerySet.__len__django/db/models/query.py:3722 ms1.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.5%
ModelIterable.__iter__django/db/models/query.py:952 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
claim_partapps/projects/profiles.py:3782 ms1.5%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(2 ms1.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.5%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms1.5%
QuerySet.getdjango/db/models/query.py:6252 ms1.5%
QuerySet.filterdjango/db/models/query.py:15422 ms1.5%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.5%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.5%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.5%
claim_partapps/projects/profiles.py:383 commit, _ = Commit.objects.get_or_create(2 ms1.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.5%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms1.5%
QuerySet.getdjango/db/models/query.py:6352 ms1.5%
QuerySet.__len__django/db/models/query.py:3722 ms1.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.5%
ModelIterable.__iter__django/db/models/query.py:952 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
claim_partapps/projects/profiles.py:4462 ms1.5%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.5%
Model.savedjango/db/models/base.py:8742 ms1.5%
Model.save_basedjango/db/models/base.py:9662 ms1.5%
Model._save_tabledjango/db/models/base.py:11102 ms1.5%
Model._do_updatedjango/db/models/base.py:12112 ms1.5%
QuerySet._updatedjango/db/models/query.py:13272 ms1.5%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.5%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
process_profile_partapps/projects/profiles.py:345 write_perfs(profile, part, entries, tests)3 ms3.1%
Atomic.__enter__django/db/transaction.py:2112 ms1.5%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.5%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.5%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
Atomic.__exit__django/db/transaction.py:2472 ms1.5%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.5%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.5%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
process_profile_partapps/projects/profiles.py:3412 ms1.5%
load_documentapps/projects/profiles.py:112 return json.loads(gzip.decompress(bytes(part.document)))2 ms1.5%
loads<stdlib>/json/__init__.py:3712 ms1.5%
JSONDecoder.decode<stdlib>/json/decoder.py:3582 ms1.5%
JSONDecoder.raw_decode<stdlib>/json/decoder.py:3742 ms1.5%
process_profile_partapps/projects/profiles.py:3442 ms1.5%
upsert_testsapps/projects/profiles.py:4512 ms1.5%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order2 ms1.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.5%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms1.5%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.5%
QuerySet._insertdjango/db/models/query.py:19182 ms1.5%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
process_profile_partapps/projects/profiles.py:347 ProfilePart.objects.filter(pk=part.pk).update(2 ms1.5%
QuerySet.updatedjango/db/models/query.py:13002 ms1.5%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(10 ms9.3%
Client.postdjango/test/client.py:115310 ms9.3%
RequestFactory.postdjango/test/client.py:49910 ms9.3%
RequestFactory.genericdjango/test/client.py:67110 ms9.3%
Client.requestdjango/test/client.py:108210 ms9.3%
ClientHandler.__call__django/test/client.py:18610 ms9.3%
BaseHandler.get_responsedjango/core/handlers/base.py:14110 ms9.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms9.3%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13010 ms9.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms9.3%
MiddlewareMixin.__call__django/utils/deprecation.py:30910 ms9.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms9.3%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12310 ms9.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms9.3%
MiddlewareMixin.__call__django/utils/deprecation.py:30910 ms9.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms9.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms7.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms7.7%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms7.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms7.7%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms7.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms7.7%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms7.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms7.7%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms7.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms7.7%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:349 ms7.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms7.7%
BaseHandler._get_responsedjango/core/handlers/base.py:1989 ms7.7%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:659 ms7.7%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:379 ms7.7%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:649 ms7.7%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:757 ms6.2%
profile_uploadapps/api/urls.py:1502 ms1.5%
get_or_create_numberedapps/projects/models.py:18 existing = model.objects.filter(project=project, **lookup).first()2 ms1.5%
QuerySet.firstdjango/db/models/query.py:11452 ms1.5%
QuerySet.__iter__django/db/models/query.py:3902 ms1.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.5%
ModelIterable.__iter__django/db/models/query.py:952 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
profile_uploadapps/api/urls.py:152 part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()2 ms1.5%
QuerySet.firstdjango/db/models/query.py:11452 ms1.5%
QuerySet.__iter__django/db/models/query.py:3902 ms1.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.5%
ModelIterable.__iter__django/db/models/query.py:952 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
profile_uploadapps/api/urls.py:154 part = ProfilePart.objects.create(2 ms1.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.5%
QuerySet.createdjango/db/models/query.py:6692 ms1.5%
Model.savedjango/db/models/base.py:8742 ms1.5%
Model.save_basedjango/db/models/base.py:9662 ms1.5%
Model._save_tabledjango/db/models/base.py:11672 ms1.5%
Model._do_insertdjango/db/models/base.py:12182 ms1.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.5%
QuerySet._insertdjango/db/models/query.py:19182 ms1.5%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
profile_uploadapps/api/urls.py:1632 ms1.5%
Project.urlapps/projects/models.py:59 return reverse(name, args=[self.organization.slug, self.slug, *args])2 ms1.5%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms1.5%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms1.5%
QuerySet.getdjango/db/models/query.py:6352 ms1.5%
QuerySet.__len__django/db/models/query.py:3722 ms1.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.5%
ModelIterable.__iter__django/db/models/query.py:952 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))2 ms1.5%
touch_tokenapps/api/urls.py:59 SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)2 ms1.5%
QuerySet.__iter__django/db/models/query.py:3902 ms1.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.5%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms1.5%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
MiddlewareMixin.__call__django/utils/deprecation.py:3082 ms1.5%
CommonMiddleware.process_requestdjango/middleware/common.py:482 ms1.5%
HttpRequest.get_hostdjango/http/request.py:1952 ms1.5%
validate_hostdjango/http/request.py:8412 ms1.5%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()3 ms3.1%
TestCase._fixture_teardowndjango/test/testcases.py:14942 ms1.5%
TestCase._should_check_constraintsdjango/test/testcases.py:15032 ms1.5%
DatabaseWrapper.is_usabledjango/db/backends/postgresql/base.py:4922 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
TestCase._fixture_teardowndjango/test/testcases.py:14952 ms1.5%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4842 ms1.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.5%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.5%
Cursor.executepsycopg/cursor.py:1132 ms1.5%
Connection.waitpsycopg/connection.py:4952 ms1.5%
ProfileUploadTest.test_reupload_replaces_profileapps/api/tests.py:7042 ms1.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.5%
QuerySet.getdjango/db/models/query.py:6352 ms1.5%
QuerySet.__len__django/db/models/query.py:3722 ms1.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.5%
ModelIterable.__iter__django/db/models/query.py:1272 ms1.5%
SQLCompiler.apply_convertersdjango/db/models/sql/compiler.py:15422 ms1.5%
JSONField.from_db_valuedjango/db/models/fields/json.py:922 ms1.5%
loads<stdlib>/json/__init__.py:3712 ms1.5%
JSONDecoder.decode<stdlib>/json/decoder.py:3582 ms1.5%
Estimated from 64 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
23 ms
apps/projects/models.py:466
super().save(*args, **kwargs)
Profile.save · Database
7 ms
apps/projects/rollups.py:88
TestDailyStats.objects.bulk_create(
add_perfs · Database
7 ms
apps/projects/models.py:18
existing = model.objects.filter(project=project, **lookup).first()
get_or_create_numbered · Database
5 ms
apps/projects/environments.py:63
obj, created = Environment.objects.get_or_create(
get_or_create_environment · 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
apps/api/urls.py:152
part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()
profile_upload · Database
3 ms
apps/projects/profiles.py:108
return gzip.compress(data, compresslevel=6)
compress · Libraries
3 ms
apps/projects/profiles.py:358
profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)
claim_part · Database
3 ms
apps/projects/profiles.py:383
commit, _ = Commit.objects.get_or_create(
claim_part · Database
3 ms

Fixtures

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

Database

96 queries · 38 ms

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

7×
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…
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_environment"."id", "projects_environment"."project_id", "projects_environment"."name", "projects_environment"."kind", "projects_environment"."provider", "projects_environment"."details", "projects_environment"."date_first_seen", "projects_environment"."date_last_seen" FROM "project…

Biggest pieces of work

call test body
apps/api/tests.py:701
108 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
18 minutes ago CI github-actions:test passed 113 ms 9caa567 main Profile
44 minutes ago CI github-actions:test passed 111 ms ec75501 main Profile
7 hours ago CI github-actions:test passed 129 ms d2c12e5 main Profile
7 hours ago CI github-actions:test passed 69 ms 0b902f6 main Profile
7 hours ago CI github-actions:test passed 113 ms 78a4357 main Profile