Tests / apps/api/tests.py
ProfileUploadTest::test_complete_profiles_are_not_marked_incomplete
First seen 7 hours ago in 78a4357
CI
github-actions:test
5 runs
Average
115 ms
median 122 ms
max 136 ms
max 136 ms
Phases
Setup 0.70 ms
Call 114 ms
Teardown 0.18 ms
Categories
Database 76 ms
App code 2 ms
Factories 0.32 ms
Other (Libraries, Unsampled, pytest, Serialization) 37 ms
105 database queries per run
Needs 0 KB of memory (max 0 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 14 minutes ago ·
open run
call121 ms99.3%
ProfileUploadTest.test_complete_profiles_are_not_marked_incompleteapps/api/tests.py:846 self.upload(part)104 ms85.4%
ProfileUploadTest.uploadapps/api/tests.py:49555 ms45.2%
_SharedTaskProxy.__call__potatoq/app.py:76355 ms45.2%
Task.__call__potatoq/task.py:18955 ms45.2%
process_profileapps/api/tasks.py:23940 ms32.7%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)20 ms16.3%
claim_partapps/projects/profiles.py:358 profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)5 ms3.8%
QuerySet.getdjango/db/models/query.py:6353 ms2.5%
QuerySet.__len__django/db/models/query.py:3723 ms2.5%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms2.5%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.3%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.3%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.3%
ModelIterable.__iter__django/db/models/query.py:1272 ms1.3%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15772 ms1.3%
SQLCompiler.get_convertersdjango/db/models/sql/compiler.py:15262 ms1.3%
Col.get_db_convertersdjango/db/models/expressions.py:13402 ms1.3%
Field.get_db_convertersdjango/db/models/fields/__init__.py:9222 ms1.3%
QuerySet.getdjango/db/models/query.py:6252 ms1.3%
claim_partapps/projects/profiles.py:3785 ms3.8%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(3 ms2.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms2.5%
QuerySet.get_or_createdjango/db/models/query.py:9923 ms2.5%
Atomic.__enter__django/db/transaction.py:2112 ms1.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.3%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.3%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
Atomic.__exit__django/db/transaction.py:2472 ms1.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.3%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.3%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
get_or_create_environmentapps/projects/environments.py:79 obj.save(update_fields=update_fields)2 ms1.3%
Model.savedjango/db/models/base.py:8742 ms1.3%
Model.save_basedjango/db/models/base.py:9662 ms1.3%
Model._save_tabledjango/db/models/base.py:11102 ms1.3%
Model._do_updatedjango/db/models/base.py:12112 ms1.3%
QuerySet._updatedjango/db/models/query.py:13272 ms1.3%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.3%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
claim_partapps/projects/profiles.py:383 commit, _ = Commit.objects.get_or_create(5 ms3.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:875 ms3.8%
QuerySet.get_or_createdjango/db/models/query.py:9923 ms2.5%
Atomic.__enter__django/db/transaction.py:2112 ms1.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.3%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.3%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
Atomic.__exit__django/db/transaction.py:2472 ms1.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.3%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.3%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms1.3%
QuerySet.getdjango/db/models/query.py:6352 ms1.3%
QuerySet.__len__django/db/models/query.py:3722 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
claim_partapps/projects/profiles.py:4463 ms2.5%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)3 ms2.5%
Model.savedjango/db/models/base.py:8743 ms2.5%
Model.save_basedjango/db/models/base.py:9663 ms2.5%
Model._save_tabledjango/db/models/base.py:11103 ms2.5%
Model._do_updatedjango/db/models/base.py:12113 ms2.5%
QuerySet._updatedjango/db/models/query.py:13273 ms2.5%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21403 ms2.5%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21113 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:793 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms2.5%
Cursor.executepsycopg/cursor.py:1133 ms2.5%
Connection.waitpsycopg/connection.py:4953 ms2.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.3%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.3%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.3%
claim_partapps/projects/profiles.py:359 ProfilePart.objects.filter(pk=part.pk).update(status=ProfilePart.StatusTypes.PENDING)2 ms1.3%
QuerySet.updatedjango/db/models/query.py:13002 ms1.3%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
claim_partapps/projects/profiles.py:360 ProfilePart.objects.filter(profile=profile, index=part.index, id__lt=part.id).delete() # superseded uploads2 ms1.3%
QuerySet.deletedjango/db/models/query.py:12382 ms1.3%
Collector.deletedjango/db/models/deletion.py:4712 ms1.3%
QuerySet._raw_deletedjango/db/models/query.py:12602 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
process_profile_partapps/projects/profiles.py:3446 ms5.0%
upsert_testsapps/projects/profiles.py:4516 ms5.0%
TestManager.upsertapps/projects/models.py:2293 ms2.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))3 ms2.5%
QuerySet.__iter__django/db/models/query.py:3903 ms2.5%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms2.5%
FlatValuesListIterable.__iter__django/db/models/query.py:2773 ms2.5%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15733 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:793 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms2.5%
Cursor.executepsycopg/cursor.py:1133 ms2.5%
Connection.waitpsycopg/connection.py:4953 ms2.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.3%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.3%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.3%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order2 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms1.3%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.3%
QuerySet._insertdjango/db/models/query.py:19182 ms1.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
TestManager.upsertapps/projects/models.py:236 return {test.name: test for test in self.filter(project=project, name__in=names)}2 ms1.3%
QuerySet.__iter__django/db/models/query.py:3902 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
process_profile_partapps/projects/profiles.py:345 write_perfs(profile, part, entries, tests)6 ms5.0%
write_perfsapps/projects/profiles.py:457 TestPerf.objects.filter(profile=profile, part=part.index).delete()2 ms1.3%
QuerySet.deletedjango/db/models/query.py:12382 ms1.3%
Collector.deletedjango/db/models/deletion.py:4712 ms1.3%
QuerySet._raw_deletedjango/db/models/query.py:12602 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
Atomic.__exit__django/db/transaction.py:2472 ms1.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.3%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.3%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
Atomic.__enter__django/db/transaction.py:2112 ms1.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.3%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.3%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
write_perfsapps/projects/profiles.py:458 TestPerf.objects.bulk_create(2 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms1.3%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.3%
QuerySet._insertdjango/db/models/query.py:19182 ms1.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19242 ms1.3%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18132 ms1.3%
process_profile_partapps/projects/profiles.py:335 part = ProfilePart.objects.filter(pk=part.pk).first()3 ms2.5%
QuerySet.firstdjango/db/models/query.py:11453 ms2.5%
QuerySet.__iter__django/db/models/query.py:3903 ms2.5%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms2.5%
ModelIterable.__iter__django/db/models/query.py:953 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.3%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.3%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.3%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.3%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms1.3%
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.3%
QuerySet.existsdjango/db/models/query.py:13372 ms1.3%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms1.3%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
process_profile_partapps/projects/profiles.py:3462 ms1.3%
write_snapshotsapps/projects/profiles.py:313 cursor.executemany(SNAPSHOT_UPSERT, batch)2 ms1.3%
CursorWrapper.executemanydjango/db/backends/utils.py:842 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executemanydjango/db/backends/utils.py:1142 ms1.3%
Cursor.executemanypsycopg/cursor.py:1372 ms1.3%
Connection._pipeline_nolockpsycopg/connection.py:4722 ms1.3%
Pipeline.__exit__psycopg/_pipeline.py:732 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
process_profileapps/api/tasks.py:25312 ms10.1%
_SharedTaskProxy.__call__potatoq/app.py:76312 ms10.1%
Task.__call__potatoq/task.py:18912 ms10.1%
finalize_profile_partsapps/api/tasks.py:259 if finalize_profile(profile_id):11 ms8.8%
finalize_profileapps/projects/profiles.py:479 profile = Profile.objects.select_for_update(no_key=True).get(pk=profile_id)3 ms2.5%
QuerySet.getdjango/db/models/query.py:6353 ms2.5%
QuerySet.__len__django/db/models/query.py:3723 ms2.5%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms2.5%
ModelIterable.__iter__django/db/models/query.py:953 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.3%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.3%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.3%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.3%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms1.3%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.3%
Col.as_sqldjango/db/models/expressions.py:13252 ms1.3%
finalize_profileapps/projects/profiles.py:4963 ms2.5%
add_perfsapps/projects/rollups.py:722 ms1.3%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(2 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms1.3%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.3%
QuerySet._insertdjango/db/models/query.py:19182 ms1.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
finalize_profileapps/projects/profiles.py:483 for part in ProfilePart.objects.filter(profile=profile).defer("document").order_by("index", "id"):2 ms1.3%
QuerySet.__iter__django/db/models/query.py:3902 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
finalize_profileapps/projects/profiles.py:492 for duplicate in duplicates:2 ms1.3%
QuerySet.__iter__django/db/models/query.py:3902 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ValuesIterable.__iter__django/db/models/query.py:2222 ms1.3%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
finalize_profileapps/projects/profiles.py:5042 ms1.3%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.3%
Model.savedjango/db/models/base.py:8742 ms1.3%
Model.save_basedjango/db/models/base.py:9662 ms1.3%
Model._save_tabledjango/db/models/base.py:11102 ms1.3%
Model._do_updatedjango/db/models/base.py:12112 ms1.3%
QuerySet._updatedjango/db/models/query.py:13272 ms1.3%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.3%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
finalize_profile_partsapps/api/tasks.py:2602 ms1.3%
QuerySet.getdjango/db/models/query.py:6352 ms1.3%
QuerySet.__len__django/db/models/query.py:3722 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms1.3%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)3 ms2.5%
QuerySet.getdjango/db/models/query.py:6353 ms2.5%
QuerySet.__len__django/db/models/query.py:3723 ms2.5%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms2.5%
ModelIterable.__iter__django/db/models/query.py:953 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:793 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms2.5%
Cursor.executepsycopg/cursor.py:1133 ms2.5%
Connection.waitpsycopg/connection.py:4953 ms2.5%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(49 ms40.2%
Client.postdjango/test/client.py:115349 ms40.2%
RequestFactory.postdjango/test/client.py:49949 ms40.2%
RequestFactory.genericdjango/test/client.py:67149 ms40.2%
Client.requestdjango/test/client.py:108249 ms40.2%
ClientHandler.__call__django/test/client.py:17328 ms22.6%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6228 ms22.6%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10428 ms22.6%
WhiteNoise.add_fileswhitenoise/base.py:10826 ms21.4%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12018 ms15.1%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13117 ms13.8%
WhiteNoise.get_static_filewhitenoise/base.py:20815 ms12.6%
StaticFile.__init__whitenoise/responders.py:778 ms6.3%
StaticFile.get_alternativeswhitenoise/responders.py:2068 ms6.3%
compile<stdlib>/re/__init__.py:2898 ms6.3%
<GC>~8 ms6.3%
StaticFile.__init__whitenoise/responders.py:733 ms2.5%
StaticFile.get_headerswhitenoise/responders.py:1702 ms1.3%
StaticFile.get_headerswhitenoise/responders.py:1762 ms1.3%
StaticFile.__init__whitenoise/responders.py:763 ms2.5%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1893 ms2.5%
Headers.__getitem__<stdlib>/wsgiref/headers.py:832 ms1.3%
Headers.get<stdlib>/wsgiref/headers.py:1052 ms1.3%
StaticFile.__init__whitenoise/responders.py:722 ms1.3%
StaticFile.get_file_statswhitenoise/responders.py:1612 ms1.3%
WhiteNoise.get_static_filewhitenoise/base.py:2022 ms1.3%
WhiteNoise.add_mime_headerswhitenoise/base.py:2162 ms1.3%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1158 ms6.3%
scantreewhitenoise/base.py:2628 ms6.3%
scantreewhitenoise/base.py:2625 ms3.8%
scantreewhitenoise/base.py:2623 ms2.5%
scantreewhitenoise/base.py:2623 ms2.5%
scantreewhitenoise/base.py:2623 ms2.5%
scantreewhitenoise/base.py:2643 ms2.5%
scantreewhitenoise/base.py:2602 ms1.3%
scantreewhitenoise/base.py:2603 ms2.5%
WhiteNoise.add_fileswhitenoise/base.py:1072 ms1.3%
isdir<frozen genericpath>:522 ms1.3%
ClientHandler.__call__django/test/client.py:18621 ms17.6%
BaseHandler.get_responsedjango/core/handlers/base.py:14121 ms17.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms17.6%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13021 ms17.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms17.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms17.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms17.6%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12321 ms17.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5520 ms16.3%
MiddlewareMixin.__call__django/utils/deprecation.py:30920 ms16.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5520 ms16.3%
MiddlewareMixin.__call__django/utils/deprecation.py:30920 ms16.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5520 ms16.3%
MiddlewareMixin.__call__django/utils/deprecation.py:30920 ms16.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5520 ms16.3%
MiddlewareMixin.__call__django/utils/deprecation.py:30920 ms16.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5520 ms16.3%
MiddlewareMixin.__call__django/utils/deprecation.py:30920 ms16.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5520 ms16.3%
MiddlewareMixin.__call__django/utils/deprecation.py:30920 ms16.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5520 ms16.3%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3420 ms16.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5520 ms16.3%
BaseHandler._get_responsedjango/core/handlers/base.py:19820 ms16.3%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6520 ms16.3%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:3720 ms16.3%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6420 ms16.3%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:7514 ms11.3%
profile_uploadapps/api/urls.py:1508 ms6.3%
get_or_create_numberedapps/projects/models.py:18 existing = model.objects.filter(project=project, **lookup).first()5 ms3.8%
QuerySet.firstdjango/db/models/query.py:11455 ms3.8%
QuerySet.__iter__django/db/models/query.py:3905 ms3.8%
QuerySet._fetch_alldjango/db/models/query.py:20005 ms3.8%
ModelIterable.__iter__django/db/models/query.py:955 ms3.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16113 ms2.5%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7673 ms2.5%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:863 ms2.5%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:753 ms2.5%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3173 ms2.5%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5783 ms2.5%
Col.as_sqldjango/db/models/expressions.py:13252 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
get_or_create_numberedapps/projects/models.py:21 number = next_number(model, project.pk)2 ms1.3%
next_numberapps/projects/models.py:35 return (model.objects.filter(project_id=project_id).aggregate(last=models.Max("number"))["last"] or 0) + 12 ms1.3%
QuerySet.aggregatedjango/db/models/query.py:5942 ms1.3%
Query.get_aggregationdjango/db/models/sql/query.py:6382 ms1.3%
get_or_create_numberedapps/projects/models.py:24 return model.objects.create(project=project, number=number, **lookup, **(defaults or {})), True2 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet.createdjango/db/models/query.py:6692 ms1.3%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.3%
Model.savedjango/db/models/base.py:8742 ms1.3%
Model.save_basedjango/db/models/base.py:9662 ms1.3%
Model._save_tabledjango/db/models/base.py:11672 ms1.3%
Model._do_insertdjango/db/models/base.py:12182 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet._insertdjango/db/models/query.py:19182 ms1.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
profile_uploadapps/api/urls.py:154 part = ProfilePart.objects.create(3 ms2.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms2.5%
QuerySet.createdjango/db/models/query.py:6672 ms1.3%
QuerySet.createdjango/db/models/query.py:6692 ms1.3%
Model.savedjango/db/models/base.py:8742 ms1.3%
Model.save_basedjango/db/models/base.py:9662 ms1.3%
Model._save_tabledjango/db/models/base.py:11672 ms1.3%
Model._do_insertdjango/db/models/base.py:12182 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet._insertdjango/db/models/query.py:19182 ms1.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
profile_uploadapps/api/urls.py:1632 ms1.3%
Project.urlapps/projects/models.py:59 return reverse(name, args=[self.organization.slug, self.slug, *args])2 ms1.3%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms1.3%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms1.3%
QuerySet.getdjango/db/models/query.py:6252 ms1.3%
QuerySet.filterdjango/db/models/query.py:15422 ms1.3%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.3%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.3%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.3%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.3%
Query.build_filterdjango/db/models/sql/query.py:15282 ms1.3%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.3%
Query.build_filterdjango/db/models/sql/query.py:16112 ms1.3%
Query._get_coldjango/db/models/sql/query.py:4512 ms1.3%
profile_uploadapps/api/urls.py:152 part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()2 ms1.3%
QuerySet.firstdjango/db/models/query.py:11452 ms1.3%
QuerySet.__iter__django/db/models/query.py:3902 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))5 ms3.8%
touch_tokenapps/api/urls.py:59 SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)5 ms3.8%
QuerySet.__iter__django/db/models/query.py:3903 ms2.5%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms2.5%
FlatValuesListIterable.__iter__django/db/models/query.py:2773 ms2.5%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15733 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.3%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.3%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.3%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.3%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
QuerySet.updatedjango/db/models/query.py:13002 ms1.3%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
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.3%
get_object_or_404django/shortcuts.py:902 ms1.3%
QuerySet.getdjango/db/models/query.py:6352 ms1.3%
QuerySet.__len__django/db/models/query.py:3722 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
ProfileUploadTest.test_complete_profiles_are_not_marked_incompleteapps/api/tests.py:8473 ms2.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms2.5%
QuerySet.createdjango/db/models/query.py:6693 ms2.5%
Profile.saveapps/projects/models.py:465 self.number = next_number(type(self), self.project_id)2 ms1.3%
next_numberapps/projects/models.py:35 return (model.objects.filter(project_id=project_id).aggregate(last=models.Max("number"))["last"] or 0) + 12 ms1.3%
QuerySet.aggregatedjango/db/models/query.py:5942 ms1.3%
Query.get_aggregationdjango/db/models/sql/query.py:6332 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.3%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms1.3%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms1.3%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.3%
Model.savedjango/db/models/base.py:8742 ms1.3%
Model.save_basedjango/db/models/base.py:9662 ms1.3%
Model._save_tabledjango/db/models/base.py:11672 ms1.3%
Model._do_insertdjango/db/models/base.py:12182 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet._insertdjango/db/models/query.py:19182 ms1.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
ProfileUploadTest.test_complete_profiles_are_not_marked_incompleteapps/api/tests.py:8523 ms2.5%
_SharedTaskProxy.__call__potatoq/app.py:7633 ms2.5%
Task.__call__potatoq/task.py:1893 ms2.5%
mark_incomplete_profilesapps/api/tasks.py:2802 ms1.3%
QuerySet.values_listdjango/db/models/query.py:14582 ms1.3%
QuerySet._valuesdjango/db/models/query.py:14092 ms1.3%
Query.set_valuesdjango/db/models/sql/query.py:25872 ms1.3%
Query.add_fieldsdjango/db/models/sql/query.py:22662 ms1.3%
Query.setup_joinsdjango/db/models/sql/query.py:19812 ms1.3%
mark_incomplete_profilesapps/api/tasks.py:2832 ms1.3%
QuerySet.__iter__django/db/models/query.py:3902 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms1.3%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()3 ms2.5%
TestCase._fixture_teardowndjango/test/testcases.py:14952 ms1.3%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4832 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
TestCase._fixture_teardowndjango/test/testcases.py:14972 ms1.3%
TestCase._rollback_atomicsdjango/test/testcases.py:14052 ms1.3%
Atomic.__exit__django/db/transaction.py:2832 ms1.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.3%
BaseDatabaseWrapper.savepoint_rollbackdjango/db/backends/base/base.py:4132 ms1.3%
BaseDatabaseWrapper._savepoint_rollbackdjango/db/backends/base/base.py:3712 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
TransactionTestCase._pre_setupdjango/test/testcases.py:1164 cls._fixture_setup()2 ms1.3%
TestCase._fixture_setupdjango/test/testcases.py:14782 ms1.3%
TestCase._enter_atomicsdjango/test/testcases.py:13962 ms1.3%
Atomic.__enter__django/db/transaction.py:2112 ms1.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.3%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.3%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
ProfileUploadTest.test_complete_profiles_are_not_marked_incompleteapps/api/tests.py:8482 ms1.3%
makemodel_bakery/baker.py:1472 ms1.3%
Baker.makemodel_bakery/baker.py:4062 ms1.3%
Baker._makemodel_bakery/baker.py:4822 ms1.3%
Baker.instancemodel_bakery/baker.py:5352 ms1.3%
Model.savedjango/db/models/base.py:8742 ms1.3%
Model.save_basedjango/db/models/base.py:9662 ms1.3%
Model._save_tabledjango/db/models/base.py:11672 ms1.3%
Model._do_insertdjango/db/models/base.py:12182 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet._insertdjango/db/models/query.py:19182 ms1.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
ProfileUploadTest.test_complete_profiles_are_not_marked_incompleteapps/api/tests.py:8502 ms1.3%
QuerySet.__iter__django/db/models/query.py:3902 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.3%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.3%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.3%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.3%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:2552 ms1.3%
SQLCompiler.get_default_columnsdjango/db/models/sql/compiler.py:10302 ms1.3%
ProfileUploadTest.test_complete_profiles_are_not_marked_incompleteapps/api/tests.py:8512 ms1.3%
ProfileUploadTest.ageapps/api/tests.py:8122 ms1.3%
QuerySet.updatedjango/db/models/query.py:13002 ms1.3%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.3%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.3%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.3%
ProfileUploadTest.test_complete_profiles_are_not_marked_incompleteapps/api/tests.py:8542 ms1.3%
QuerySet.__iter__django/db/models/query.py:3902 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms1.3%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
Estimated from 79 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
|
29 ms |
|
apps/projects/models.py:466
super().save(*args, **kwargs)
Profile.save
· Database
|
8 ms |
|
apps/api/urls.py:59
SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)
touch_token
· Database
|
5 ms |
|
apps/projects/models.py:18
existing = model.objects.filter(project=project, **lookup).first()
get_or_create_numbered
· Database
|
5 ms |
|
apps/projects/profiles.py:358
profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)
claim_part
· Database
|
5 ms |
|
apps/projects/profiles.py:383
commit, _ = Commit.objects.get_or_create(
claim_part
· Database
|
5 ms |
|
apps/api/tasks.py:237
part = ProfilePart.objects.select_related("profile").get(id=part_id)
process_profile
· Database
|
3 ms |
|
apps/projects/models.py:35
return (model.objects.filter(project_id=project_id).aggregate(last=models.Max("number"))["last"] or 0) + 1
next_number
· Database
|
3 ms |
|
apps/api/urls.py:154
part = ProfilePart.objects.create(
profile_upload
· Database
|
3 ms |
|
apps/projects/profiles.py:335
part = ProfilePart.objects.filter(pk=part.pk).first()
process_profile_part
· Database
|
3 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.05 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _django_clear_site_cache function | 0.04 ms |
| _django_db_marker function | 0.04 ms |
| _django_set_urlconf function | 0.03 ms |
| _live_server_helper function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
105 queries · 41 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…
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×
INSERT INTO "projects_profilepart" ("profile_id", "index", "count", "checksum", "status", "error", "tests_count", "document", "document_size", "date_created", "date_processed") VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) RETURNING "projects_profilepart"."id"
3×
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:846
|
116 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
3 ms |
|
call _pre_setup
django/test/testcases.py:1164
|
2 ms |
Reliability
5 results · 0 CI failures · 0 local failuresThis test hasn't failed recently.
History
Latest 5 results, oldest first in the strip| When | Environment | Outcome | Duration | |
|---|---|---|---|---|
| 14 minutes ago | CI github-actions:test | passed | 122 ms | Profile |
| 39 minutes ago | CI github-actions:test | passed | 123 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 136 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 76 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 120 ms | Profile |