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

ProfileUploadTest::test_a_failed_part_can_be_uploaded_again

First seen 8 hours ago in 78a4357
CI github-actions:test 5 runs
Average
108 ms
median 113 ms
max 127 ms
Phases
Setup 0.88 ms Call 107 ms Teardown 0.16 ms
Categories
Database 72 ms App code 0.36 ms Other (Libraries, Unsampled, Serialization, Mocking, ...) 36 ms

95 database queries per run

Needs 6 KB of memory (max 16 KB)

Duration per run

Where the time goes

Latest run in ci:github-actions:test, an hour ago · open run
Show pytest frames
setup0.85 ms0.8%
call110 ms99.1%
ProfileUploadTest.test_a_failed_part_can_be_uploaded_againapps/api/tests.py:882 self.upload(document)77 ms69.4%
ProfileUploadTest.uploadapps/api/tests.py:49544 ms39.6%
_SharedTaskProxy.__call__potatoq/app.py:76344 ms39.6%
Task.__call__potatoq/task.py:18944 ms39.6%
process_profileapps/api/tasks.py:23928 ms24.8%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)15 ms13.2%
claim_partapps/projects/profiles.py:3784 ms3.3%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(4 ms3.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms3.3%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms1.7%
QuerySet.getdjango/db/models/query.py:6352 ms1.7%
QuerySet.__len__django/db/models/query.py:3722 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
QuerySet.get_or_createdjango/db/models/query.py:9942 ms1.7%
QuerySet.createdjango/db/models/query.py:6692 ms1.7%
Model.savedjango/db/models/base.py:8742 ms1.7%
Model.save_basedjango/db/models/base.py:9662 ms1.7%
Model._save_tabledjango/db/models/base.py:11672 ms1.7%
Model._do_insertdjango/db/models/base.py:12182 ms1.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.7%
QuerySet._insertdjango/db/models/query.py:19182 ms1.7%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
claim_partapps/projects/profiles.py:383 commit, _ = Commit.objects.get_or_create(4 ms3.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms3.3%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms1.7%
QuerySet.getdjango/db/models/query.py:6352 ms1.7%
QuerySet.__len__django/db/models/query.py:3722 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
QuerySet.get_or_createdjango/db/models/query.py:9942 ms1.7%
QuerySet.createdjango/db/models/query.py:6692 ms1.7%
Model.savedjango/db/models/base.py:8742 ms1.7%
Model.save_basedjango/db/models/base.py:9662 ms1.7%
Model._save_tabledjango/db/models/base.py:11672 ms1.7%
Model._do_insertdjango/db/models/base.py:12182 ms1.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.7%
QuerySet._insertdjango/db/models/query.py:19182 ms1.7%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
Atomic.__enter__django/db/transaction.py:2112 ms1.7%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.7%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.7%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.7%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.7%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.7%
claim_partapps/projects/profiles.py:360 ProfilePart.objects.filter(profile=profile, index=part.index, id__lt=part.id).delete() # superseded uploads2 ms1.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.7%
QuerySet.filterdjango/db/models/query.py:15422 ms1.7%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.7%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.7%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.7%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.7%
Query.build_filterdjango/db/models/sql/query.py:15772 ms1.7%
Query.setup_joinsdjango/db/models/sql/query.py:19872 ms1.7%
Query.joindjango/db/models/sql/query.py:11442 ms1.7%
claim_partapps/projects/profiles.py:376 project = profile.project2 ms1.7%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms1.7%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms1.7%
QuerySet.getdjango/db/models/query.py:6352 ms1.7%
QuerySet.__len__django/db/models/query.py:3722 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
claim_partapps/projects/profiles.py:4462 ms1.7%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.7%
Model.savedjango/db/models/base.py:8742 ms1.7%
Model.save_basedjango/db/models/base.py:9662 ms1.7%
Model._save_tabledjango/db/models/base.py:11102 ms1.7%
Model._do_updatedjango/db/models/base.py:12112 ms1.7%
QuerySet._updatedjango/db/models/query.py:13272 ms1.7%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.7%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms1.7%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms1.7%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms1.7%
PostgresClientQuery.dumppsycopg/_queries.py:2992 ms1.7%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3002 ms1.7%
process_profile_partapps/projects/profiles.py:3446 ms5.0%
upsert_testsapps/projects/profiles.py:4516 ms5.0%
TestManager.upsertapps/projects/models.py:2294 ms3.3%
TestManager.slugs_forapps/projects/models.py:240 existing = dict(self.filter(project_id=project_id, name__in=names).values_list("name", "slug"))2 ms1.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.7%
QuerySet.filterdjango/db/models/query.py:15422 ms1.7%
QuerySet._filter_or_excludedjango/db/models/query.py:15552 ms1.7%
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.7%
QuerySet.__iter__django/db/models/query.py:3902 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms1.7%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.7%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order2 ms1.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.7%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms1.7%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.7%
QuerySet._insertdjango/db/models/query.py:19182 ms1.7%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms1.7%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms1.7%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms1.7%
PostgresClientQuery.dumppsycopg/_queries.py:2992 ms1.7%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3002 ms1.7%
process_profile_partapps/projects/profiles.py:345 write_perfs(profile, part, entries, tests)6 ms5.0%
write_perfsapps/projects/profiles.py:458 TestPerf.objects.bulk_create(4 ms3.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms3.3%
QuerySet.bulk_createdjango/db/models/query.py:8334 ms3.3%
QuerySet._batched_insertdjango/db/models/query.py:19564 ms3.3%
QuerySet._insertdjango/db/models/query.py:19184 ms3.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19242 ms1.7%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18132 ms1.7%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
write_perfsapps/projects/profiles.py:457 TestPerf.objects.filter(profile=profile, part=part.index).delete()2 ms1.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.7%
QuerySet.filterdjango/db/models/query.py:15422 ms1.7%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.7%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.7%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.7%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.7%
Query.build_filterdjango/db/models/sql/query.py:15992 ms1.7%
Query.trim_joinsdjango/db/models/sql/query.py:20192 ms1.7%
process_profile_partapps/projects/profiles.py:3462 ms1.7%
write_snapshotsapps/projects/profiles.py:313 cursor.executemany(SNAPSHOT_UPSERT, batch)2 ms1.7%
CursorWrapper.executemanydjango/db/backends/utils.py:842 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executemanydjango/db/backends/utils.py:1142 ms1.7%
Cursor.executemanypsycopg/cursor.py:1372 ms1.7%
Connection._pipeline_nolockpsycopg/connection.py:4722 ms1.7%
Pipeline.__exit__psycopg/_pipeline.py:732 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
process_profileapps/api/tasks.py:25313 ms11.6%
_SharedTaskProxy.__call__potatoq/app.py:76313 ms11.6%
Task.__call__potatoq/task.py:18913 ms11.6%
finalize_profile_partsapps/api/tasks.py:259 if finalize_profile(profile_id):13 ms11.6%
finalize_profileapps/projects/profiles.py:4966 ms5.0%
add_perfsapps/projects/rollups.py:30 for perf in perfs:2 ms1.7%
QuerySet.__iter__django/db/models/query.py:3902 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
add_perfsapps/projects/rollups.py:64 for row in TestDailyStats.objects.filter(2 ms1.7%
QuerySet.__iter__django/db/models/query.py:3902 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(2 ms1.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.7%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms1.7%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.7%
QuerySet._insertdjango/db/models/query.py:19182 ms1.7%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms1.7%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms1.7%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms1.7%
PostgresClientQuery.dumppsycopg/_queries.py:2992 ms1.7%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3002 ms1.7%
Dumper.quotepsycopg/adapt.py:632 ms1.7%
<GC>~2 ms1.7%
Atomic.__enter__django/db/transaction.py:2112 ms1.7%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.7%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.7%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
finalize_profileapps/projects/profiles.py:479 profile = Profile.objects.select_for_update(no_key=True).get(pk=profile_id)2 ms1.7%
QuerySet.getdjango/db/models/query.py:6352 ms1.7%
QuerySet.__len__django/db/models/query.py:3722 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
finalize_profileapps/projects/profiles.py:483 for part in ProfilePart.objects.filter(profile=profile).defer("document").order_by("index", "id"):2 ms1.7%
QuerySet.__iter__django/db/models/query.py:3902 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
Atomic.__exit__django/db/transaction.py:2472 ms1.7%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.7%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.7%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)4 ms3.3%
QuerySet.getdjango/db/models/query.py:6354 ms3.3%
QuerySet.__len__django/db/models/query.py:3724 ms3.3%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms3.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.7%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.7%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:882 ms1.7%
ModelIterable.__iter__django/db/models/query.py:1322 ms1.7%
RelatedPopulator.populatedjango/db/models/query.py:27682 ms1.7%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(33 ms29.7%
Client.postdjango/test/client.py:115333 ms29.7%
RequestFactory.postdjango/test/client.py:49933 ms29.7%
RequestFactory.genericdjango/test/client.py:67133 ms29.7%
Client.requestdjango/test/client.py:108233 ms29.7%
ClientHandler.__call__django/test/client.py:17320 ms18.2%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6220 ms18.2%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10420 ms18.2%
WhiteNoise.add_fileswhitenoise/base.py:10820 ms18.2%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12015 ms13.2%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13115 ms13.2%
WhiteNoise.get_static_filewhitenoise/base.py:20811 ms9.9%
StaticFile.__init__whitenoise/responders.py:776 ms5.0%
StaticFile.get_alternativeswhitenoise/responders.py:2014 ms3.3%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms1.7%
__init____init__:-12 ms1.7%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:492 ms1.7%
StaticFile.__init__whitenoise/responders.py:722 ms1.7%
StaticFile.get_file_statswhitenoise/responders.py:1612 ms1.7%
StaticFile.__init__whitenoise/responders.py:742 ms1.7%
parsedate<stdlib>/email/_parseaddr.py:1852 ms1.7%
WhiteNoise.get_static_filewhitenoise/base.py:2034 ms3.3%
WhiteNoise.add_cache_headerswhitenoise/base.py:2244 ms3.3%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1764 ms3.3%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1974 ms3.3%
URLMixin.urldebug_toolbar/panels/staticfiles.py:202 ms1.7%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2052 ms1.7%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1862 ms1.7%
FileSystemStorage.urldjango/core/files/storage/filesystem.py:2122 ms1.7%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1156 ms5.0%
scantreewhitenoise/base.py:2626 ms5.0%
scantreewhitenoise/base.py:2624 ms3.3%
scantreewhitenoise/base.py:2622 ms1.7%
scantreewhitenoise/base.py:2622 ms1.7%
scantreewhitenoise/base.py:2622 ms1.7%
scantreewhitenoise/base.py:2642 ms1.7%
scantreewhitenoise/base.py:2602 ms1.7%
ClientHandler.__call__django/test/client.py:18613 ms11.6%
BaseHandler.get_responsedjango/core/handlers/base.py:14113 ms11.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms11.6%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13013 ms11.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms11.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30913 ms11.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms11.6%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12313 ms11.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms11.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30913 ms11.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms11.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30913 ms11.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms11.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30913 ms11.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms11.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30913 ms11.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms11.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30913 ms11.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms11.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30913 ms11.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms11.6%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3413 ms11.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms11.6%
BaseHandler._get_responsedjango/core/handlers/base.py:19813 ms11.6%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6513 ms11.6%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:3713 ms11.6%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6413 ms11.6%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:759 ms8.3%
profile_uploadapps/api/urls.py:1504 ms3.3%
get_or_create_numberedapps/projects/models.py:24 return model.objects.create(project=project, number=number, **lookup, **(defaults or {})), True2 ms1.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.7%
QuerySet.createdjango/db/models/query.py:6692 ms1.7%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.7%
Model.savedjango/db/models/base.py:8742 ms1.7%
Model.save_basedjango/db/models/base.py:9662 ms1.7%
Model._save_tabledjango/db/models/base.py:10572 ms1.7%
get_or_create_numberedapps/projects/models.py:23 with transaction.atomic():2 ms1.7%
Atomic.__exit__django/db/transaction.py:2472 ms1.7%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.7%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.7%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.7%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.7%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.7%
profile_uploadapps/api/urls.py:152 part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()2 ms1.7%
QuerySet.firstdjango/db/models/query.py:11452 ms1.7%
QuerySet.__iter__django/db/models/query.py:3902 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
profile_uploadapps/api/urls.py:154 part = ProfilePart.objects.create(2 ms1.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.7%
QuerySet.createdjango/db/models/query.py:6692 ms1.7%
Model.savedjango/db/models/base.py:8742 ms1.7%
Model.save_basedjango/db/models/base.py:9662 ms1.7%
Model._save_tabledjango/db/models/base.py:11672 ms1.7%
Model._do_insertdjango/db/models/base.py:12182 ms1.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.7%
QuerySet._insertdjango/db/models/query.py:19182 ms1.7%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
profile_uploadapps/api/urls.py:1632 ms1.7%
Project.urlapps/projects/models.py:59 return reverse(name, args=[self.organization.slug, self.slug, *args])2 ms1.7%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms1.7%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms1.7%
QuerySet.getdjango/db/models/query.py:6352 ms1.7%
QuerySet.__len__django/db/models/query.py:3722 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
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.7%
get_object_or_404django/shortcuts.py:902 ms1.7%
QuerySet.getdjango/db/models/query.py:6352 ms1.7%
QuerySet.__len__django/db/models/query.py:3722 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))2 ms1.7%
touch_tokenapps/api/urls.py:59 SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)2 ms1.7%
QuerySet.__iter__django/db/models/query.py:3902 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms1.7%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16222 ms1.7%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:192 ms1.7%
ProfileUploadTest.test_a_failed_part_can_be_uploaded_againapps/api/tests.py:88528 ms24.8%
ProfileUploadTest.uploadapps/api/tests.py:49522 ms19.8%
_SharedTaskProxy.__call__potatoq/app.py:76322 ms19.8%
Task.__call__potatoq/task.py:18922 ms19.8%
process_profileapps/api/tasks.py:23918 ms16.5%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)13 ms11.6%
claim_partapps/projects/profiles.py:3634 ms3.3%
add_perfsapps/projects/rollups.py:64 for row in TestDailyStats.objects.filter(2 ms1.7%
QuerySet.__iter__django/db/models/query.py:3902 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(2 ms1.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.7%
QuerySet.bulk_createdjango/db/models/query.py:8162 ms1.7%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.7%
QuerySet._insertdjango/db/models/query.py:19182 ms1.7%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
claim_partapps/projects/profiles.py:358 profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)2 ms1.7%
QuerySet.getdjango/db/models/query.py:6352 ms1.7%
QuerySet.__len__django/db/models/query.py:3722 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.7%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.7%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.7%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.7%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms1.7%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.7%
Col.as_sqldjango/db/models/expressions.py:13252 ms1.7%
SQLCompiler.quote_name_unless_aliasdjango/db/backends/postgresql/compiler.py:342 ms1.7%
SQLCompiler.quote_name_unless_aliasdjango/db/models/sql/compiler.py:5692 ms1.7%
claim_partapps/projects/profiles.py:359 ProfilePart.objects.filter(pk=part.pk).update(status=ProfilePart.StatusTypes.PENDING)2 ms1.7%
QuerySet.updatedjango/db/models/query.py:12732 ms1.7%
Query.chaindjango/db/models/sql/query.py:4372 ms1.7%
claim_partapps/projects/profiles.py:360 ProfilePart.objects.filter(profile=profile, index=part.index, id__lt=part.id).delete() # superseded uploads2 ms1.7%
QuerySet.deletedjango/db/models/query.py:12382 ms1.7%
Collector.deletedjango/db/models/deletion.py:4712 ms1.7%
QuerySet._raw_deletedjango/db/models/query.py:12602 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
claim_partapps/projects/profiles.py:383 commit, _ = Commit.objects.get_or_create(2 ms1.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.7%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms1.7%
QuerySet.getdjango/db/models/query.py:6352 ms1.7%
QuerySet.__len__django/db/models/query.py:3722 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
claim_partapps/projects/profiles.py:4462 ms1.7%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.7%
Model.savedjango/db/models/base.py:8742 ms1.7%
Model.save_basedjango/db/models/base.py:9662 ms1.7%
Model._save_tabledjango/db/models/base.py:11102 ms1.7%
Model._do_updatedjango/db/models/base.py:12112 ms1.7%
QuerySet._updatedjango/db/models/query.py:13272 ms1.7%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.7%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
process_profile_partapps/projects/profiles.py:3464 ms3.3%
write_snapshotsapps/projects/profiles.py:3122 ms1.7%
write_snapshots.<locals>.<genexpr>apps/projects/profiles.py:3102 ms1.7%
write_snapshots.<locals>.rowapps/projects/profiles.py:306 compress(json.dumps(snapshot_document(document, entry), separators=(",", ":")).encode()),2 ms1.7%
compressapps/projects/profiles.py:108 return gzip.compress(data, compresslevel=6)2 ms1.7%
compress<stdlib>/gzip.py:6682 ms1.7%
write_snapshotsapps/projects/profiles.py:313 cursor.executemany(SNAPSHOT_UPSERT, batch)2 ms1.7%
CursorWrapper.executemanydjango/db/backends/utils.py:842 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executemanydjango/db/backends/utils.py:1142 ms1.7%
Cursor.executemanypsycopg/cursor.py:1372 ms1.7%
Connection._pipeline_nolockpsycopg/connection.py:4722 ms1.7%
Pipeline.__exit__psycopg/_pipeline.py:732 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
process_profile_partapps/projects/profiles.py:345 write_perfs(profile, part, entries, tests)2 ms1.7%
write_perfsapps/projects/profiles.py:458 TestPerf.objects.bulk_create(2 ms1.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.7%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms1.7%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.7%
QuerySet._insertdjango/db/models/query.py:19182 ms1.7%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)2 ms1.7%
QuerySet.getdjango/db/models/query.py:6352 ms1.7%
QuerySet.__len__django/db/models/query.py:3722 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
process_profileapps/api/tasks.py:2512 ms1.7%
CallableMixin.__call__<stdlib>/unittest/mock.py:11762 ms1.7%
CallableMixin._mock_call<stdlib>/unittest/mock.py:11802 ms1.7%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(6 ms5.0%
Client.postdjango/test/client.py:11536 ms5.0%
RequestFactory.postdjango/test/client.py:4996 ms5.0%
RequestFactory.genericdjango/test/client.py:6716 ms5.0%
Client.requestdjango/test/client.py:10826 ms5.0%
ClientHandler.__call__django/test/client.py:1866 ms5.0%
BaseHandler.get_responsedjango/core/handlers/base.py:1416 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms5.0%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1306 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms5.0%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1236 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms5.0%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:346 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms5.0%
BaseHandler._get_responsedjango/core/handlers/base.py:1986 ms5.0%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:656 ms5.0%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:376 ms5.0%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:646 ms5.0%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:754 ms3.3%
profile_uploadapps/api/urls.py:1592 ms1.7%
compressapps/projects/profiles.py:108 return gzip.compress(data, compresslevel=6)2 ms1.7%
compress<stdlib>/gzip.py:6682 ms1.7%
profile_uploadapps/api/urls.py:1632 ms1.7%
Project.urlapps/projects/models.py:59 return reverse(name, args=[self.organization.slug, self.slug, *args])2 ms1.7%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms1.7%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms1.7%
QuerySet.getdjango/db/models/query.py:6352 ms1.7%
QuerySet.__len__django/db/models/query.py:3722 ms1.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.7%
ModelIterable.__iter__django/db/models/query.py:952 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))2 ms1.7%
Atomic.__enter__django/db/transaction.py:2112 ms1.7%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.7%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.7%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
TransactionTestCase._pre_setupdjango/test/testcases.py:1164 cls._fixture_setup()2 ms1.7%
TestCase._fixture_setupdjango/test/testcases.py:14782 ms1.7%
TestCase._enter_atomicsdjango/test/testcases.py:13962 ms1.7%
Atomic.__enter__django/db/transaction.py:2112 ms1.7%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.7%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.7%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
ProfileUploadTest.test_a_failed_part_can_be_uploaded_againapps/api/tests.py:8832 ms1.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.7%
QuerySet.updatedjango/db/models/query.py:13002 ms1.7%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()2 ms1.7%
TestCase._fixture_teardowndjango/test/testcases.py:14952 ms1.7%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4832 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.7%
Cursor.executepsycopg/cursor.py:1132 ms1.7%
Connection.waitpsycopg/connection.py:4952 ms1.7%
Estimated from 61 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
20 ms
apps/projects/models.py:466
super().save(*args, **kwargs)
Profile.save · Database
6 ms
apps/api/tasks.py:237
part = ProfilePart.objects.select_related("profile").get(id=part_id)
process_profile · Database
6 ms
apps/projects/profiles.py:383
commit, _ = Commit.objects.get_or_create(
claim_part · Database
6 ms
apps/projects/profiles.py:458
TestPerf.objects.bulk_create(
write_perfs · Database
6 ms
apps/projects/models.py:59
return reverse(name, args=[self.organization.slug, self.slug, *args])
Project.url · Database
4 ms
apps/projects/profiles.py:360
ProfilePart.objects.filter(profile=profile, index=part.index, id__lt=part.id).delete() # superseded uploads
claim_part · Database
4 ms
apps/projects/environments.py:63
obj, created = Environment.objects.get_or_create(
get_or_create_environment · Database
4 ms
apps/projects/profiles.py:313
cursor.executemany(SNAPSHOT_UPSERT, batch)
write_snapshots · Database
4 ms
apps/api/tasks.py:259
if finalize_profile(profile_id):
finalize_profile_parts · Database
4 ms

Fixtures

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

Database

95 queries · 38 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"."…
5×
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:882
106 ms
call _pre_setup
django/test/testcases.py:1164
2 ms
call _post_teardown
django/test/testcases.py:1240
2 ms
setup pytest internals 0.85 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
an hour ago CI github-actions:test passed 111 ms 9caa567 main Profile
an hour ago CI github-actions:test passed 113 ms ec75501 main Profile
8 hours ago CI github-actions:test passed 127 ms d2c12e5 main Profile
8 hours ago CI github-actions:test passed 71 ms 0b902f6 main Profile
8 hours ago CI github-actions:test passed 120 ms 78a4357 main Profile