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

ProfileUploadTest::test_upload_gzip

First seen 8 hours ago in 78a4357
CI github-actions:test 5 runs
Average
75 ms
median 82 ms
max 86 ms
Phases
Setup 0.72 ms Call 74 ms Teardown 0.16 ms
Categories
Database 59 ms App code 1 ms Test code 0.36 ms Other (Libraries, Serialization, Unsampled) 14 ms

61 database queries per run

Needs 201 KB of memory (max 408 KB)

Duration per run

Where the time goes

Latest run in ci:github-actions:test, 44 minutes ago · open run
Show pytest frames
call82 ms98.9%
ProfileUploadTest.test_upload_gzipapps/api/tests.py:578 response = self.upload(gzip.compress(json.dumps(self.document()).encode()), content_encoding="gzip")75 ms90.3%
ProfileUploadTest.uploadapps/api/tests.py:49545 ms53.7%
_SharedTaskProxy.__call__potatoq/app.py:76345 ms53.7%
Task.__call__potatoq/task.py:18945 ms53.7%
process_profileapps/api/tasks.py:23927 ms32.2%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)11 ms12.9%
claim_partapps/projects/profiles.py:358 profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)2 ms2.1%
QuerySet.getdjango/db/models/query.py:6352 ms2.1%
QuerySet.__len__django/db/models/query.py:3722 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
claim_partapps/projects/profiles.py:359 ProfilePart.objects.filter(pk=part.pk).update(status=ProfilePart.StatusTypes.PENDING)2 ms2.1%
QuerySet.updatedjango/db/models/query.py:13002 ms2.1%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
claim_partapps/projects/profiles.py:3782 ms2.1%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(2 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet.get_or_createdjango/db/models/query.py:9942 ms2.1%
QuerySet.createdjango/db/models/query.py:6692 ms2.1%
Model.savedjango/db/models/base.py:8742 ms2.1%
Model.save_basedjango/db/models/base.py:9662 ms2.1%
Model._save_tabledjango/db/models/base.py:11622 ms2.1%
claim_partapps/projects/profiles.py:383 commit, _ = Commit.objects.get_or_create(2 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms2.1%
QuerySet.getdjango/db/models/query.py:6252 ms2.1%
QuerySet.filterdjango/db/models/query.py:15422 ms2.1%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms2.1%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms2.1%
Query.add_qdjango/db/models/sql/query.py:16712 ms2.1%
Query._add_qdjango/db/models/sql/query.py:17032 ms2.1%
claim_partapps/projects/profiles.py:4332 ms2.1%
claim_partapps/projects/profiles.py:4462 ms2.1%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms2.1%
Model.savedjango/db/models/base.py:8742 ms2.1%
Model.save_basedjango/db/models/base.py:9662 ms2.1%
Model._save_tabledjango/db/models/base.py:11102 ms2.1%
Model._do_updatedjango/db/models/base.py:12112 ms2.1%
QuerySet._updatedjango/db/models/query.py:13272 ms2.1%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms2.1%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
process_profile_partapps/projects/profiles.py:3447 ms8.6%
upsert_testsapps/projects/profiles.py:4517 ms8.6%
TestManager.upsertapps/projects/models.py:2294 ms4.3%
TestManager.slugs_forapps/projects/models.py:240 existing = dict(self.filter(project_id=project_id, name__in=names).values_list("name", "slug"))2 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms2.1%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
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 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms2.1%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.1%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order2 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms2.1%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms2.1%
QuerySet._insertdjango/db/models/query.py:19182 ms2.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
TestManager.upsertapps/projects/models.py:236 return {test.name: test for test in self.filter(project=project, name__in=names)}2 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
process_profile_partapps/projects/profiles.py:345 write_perfs(profile, part, entries, tests)5 ms6.4%
write_perfsapps/projects/profiles.py:458 TestPerf.objects.bulk_create(4 ms4.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms4.3%
QuerySet.bulk_createdjango/db/models/query.py:8334 ms4.3%
QuerySet._batched_insertdjango/db/models/query.py:19564 ms4.3%
QuerySet._insertdjango/db/models/query.py:19184 ms4.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19242 ms2.1%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18132 ms2.1%
SQLInsertCompiler.prepare_valuedjango/db/models/sql/compiler.py:17422 ms2.1%
Field.get_db_prep_savedjango/db/models/fields/__init__.py:10112 ms2.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
write_perfsapps/projects/profiles.py:457 TestPerf.objects.filter(profile=profile, part=part.index).delete()2 ms2.1%
QuerySet.deletedjango/db/models/query.py:12382 ms2.1%
Collector.deletedjango/db/models/deletion.py:4582 ms2.1%
Atomic.__enter__django/db/transaction.py:1832 ms2.1%
process_profile_partapps/projects/profiles.py:335 part = ProfilePart.objects.filter(pk=part.pk).first()2 ms2.1%
QuerySet.firstdjango/db/models/query.py:11452 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
process_profile_partapps/projects/profiles.py:3462 ms2.1%
write_snapshotsapps/projects/profiles.py:313 cursor.executemany(SNAPSHOT_UPSERT, batch)2 ms2.1%
CursorWrapper.executemanydjango/db/backends/utils.py:842 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executemanydjango/db/backends/utils.py:1142 ms2.1%
Cursor.executemanypsycopg/cursor.py:1372 ms2.1%
Connection._pipeline_nolockpsycopg/connection.py:4722 ms2.1%
Pipeline.__exit__psycopg/_pipeline.py:732 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
process_profileapps/api/tasks.py:25316 ms19.3%
_SharedTaskProxy.__call__potatoq/app.py:76316 ms19.3%
Task.__call__potatoq/task.py:18916 ms19.3%
finalize_profile_partsapps/api/tasks.py:259 if finalize_profile(profile_id):16 ms19.3%
finalize_profileapps/projects/profiles.py:4965 ms6.4%
add_perfsapps/projects/rollups.py:30 for perf in perfs:2 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.1%
add_perfsapps/projects/rollups.py:64 for row in TestDailyStats.objects.filter(2 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.1%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(2 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms2.1%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms2.1%
QuerySet._insertdjango/db/models/query.py:19182 ms2.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms2.1%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms2.1%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms2.1%
PostgresClientQuery.dumppsycopg/_queries.py:2992 ms2.1%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3002 ms2.1%
Dumper.quotepsycopg/adapt.py:592 ms2.1%
ListDumper.dumppsycopg/types/array.py:1842 ms2.1%
Atomic.__enter__django/db/transaction.py:2112 ms2.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.1%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms2.1%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
finalize_profileapps/projects/profiles.py:479 profile = Profile.objects.select_for_update(no_key=True).get(pk=profile_id)2 ms2.1%
QuerySet.getdjango/db/models/query.py:6352 ms2.1%
QuerySet.__len__django/db/models/query.py:3722 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
finalize_profileapps/projects/profiles.py:483 for part in ProfilePart.objects.filter(profile=profile).defer("document").order_by("index", "id"):2 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
finalize_profileapps/projects/profiles.py:4892 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet.filterdjango/db/models/query.py:15422 ms2.1%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms2.1%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms2.1%
finalize_profileapps/projects/profiles.py:492 for duplicate in duplicates:2 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ValuesIterable.__iter__django/db/models/query.py:2222 ms2.1%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.1%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.1%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.1%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms2.1%
Atomic.__exit__django/db/transaction.py:2472 ms2.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.1%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms2.1%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2752 ms2.1%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)2 ms2.1%
QuerySet.getdjango/db/models/query.py:6352 ms2.1%
QuerySet.__len__django/db/models/query.py:3722 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.1%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.1%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.1%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms2.1%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(30 ms36.5%
Client.postdjango/test/client.py:115330 ms36.5%
RequestFactory.postdjango/test/client.py:49930 ms36.5%
RequestFactory.genericdjango/test/client.py:67130 ms36.5%
Client.requestdjango/test/client.py:108230 ms36.5%
ClientHandler.__call__django/test/client.py:17316 ms19.3%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6216 ms19.3%
__init____init__:-116 ms19.3%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10416 ms19.3%
WhiteNoise.add_fileswhitenoise/base.py:10816 ms19.3%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12013 ms15.0%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13111 ms12.9%
WhiteNoise.get_static_filewhitenoise/base.py:2089 ms10.7%
StaticFile.__init__whitenoise/responders.py:734 ms4.3%
StaticFile.get_headerswhitenoise/responders.py:1672 ms2.1%
StaticFile.get_headerswhitenoise/responders.py:1712 ms2.1%
StaticFile.__init__whitenoise/responders.py:762 ms2.1%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1892 ms2.1%
StaticFile.__init__whitenoise/responders.py:772 ms2.1%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms2.1%
StaticFile.__init__whitenoise/responders.py:722 ms2.1%
StaticFile.get_file_statswhitenoise/responders.py:1632 ms2.1%
WhiteNoise.get_static_filewhitenoise/base.py:2032 ms2.1%
WhiteNoise.add_cache_headerswhitenoise/base.py:2242 ms2.1%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1762 ms2.1%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1972 ms2.1%
URLMixin.urldebug_toolbar/panels/staticfiles.py:202 ms2.1%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2052 ms2.1%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1862 ms2.1%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1154 ms4.3%
scantreewhitenoise/base.py:2624 ms4.3%
scantreewhitenoise/base.py:2624 ms4.3%
scantreewhitenoise/base.py:2644 ms4.3%
ClientHandler.__call__django/test/client.py:18614 ms17.2%
BaseHandler.get_responsedjango/core/handlers/base.py:14114 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13014 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12314 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3414 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
BaseHandler._get_responsedjango/core/handlers/base.py:19814 ms17.2%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6514 ms17.2%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:3714 ms17.2%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6414 ms17.2%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:7511 ms12.9%
profile_uploadapps/api/urls.py:1507 ms8.6%
get_or_create_numberedapps/projects/models.py:18 existing = model.objects.filter(project=project, **lookup).first()5 ms6.4%
QuerySet.firstdjango/db/models/query.py:11455 ms6.4%
QuerySet.__iter__django/db/models/query.py:3905 ms6.4%
QuerySet._fetch_alldjango/db/models/query.py:20005 ms6.4%
ModelIterable.__iter__django/db/models/query.py:1274 ms4.3%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15774 ms4.3%
SQLCompiler.get_convertersdjango/db/models/sql/compiler.py:15264 ms4.3%
Col.get_db_convertersdjango/db/models/expressions.py:13394 ms4.3%
Field.__eq__django/db/models/fields/__init__.py:6772 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.1%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:872 ms2.1%
SQLCompiler.get_order_bydjango/db/models/sql/compiler.py:4912 ms2.1%
SQLCompiler._order_by_pairsdjango/db/models/sql/compiler.py:3622 ms2.1%
Expression.__hash__django/db/models/expressions.py:5622 ms2.1%
cached_property.__get__django/utils/functional.py:472 ms2.1%
Expression.identitydjango/db/models/expressions.py:5522 ms2.1%
Expression._identitydjango/db/models/expressions.py:5302 ms2.1%
get_or_create_numberedapps/projects/models.py:24 return model.objects.create(project=project, number=number, **lookup, **(defaults or {})), True2 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet.createdjango/db/models/query.py:6692 ms2.1%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms2.1%
Model.savedjango/db/models/base.py:8742 ms2.1%
Model.save_basedjango/db/models/base.py:9662 ms2.1%
Model._save_tabledjango/db/models/base.py:11672 ms2.1%
Model._do_insertdjango/db/models/base.py:12182 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet._insertdjango/db/models/query.py:19182 ms2.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
profile_uploadapps/api/urls.py:152 part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()2 ms2.1%
QuerySet.firstdjango/db/models/query.py:11452 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.1%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.1%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.1%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3302 ms2.1%
profile_uploadapps/api/urls.py:1632 ms2.1%
Project.urlapps/projects/models.py:59 return reverse(name, args=[self.organization.slug, self.slug, *args])2 ms2.1%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms2.1%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms2.1%
QuerySet.getdjango/db/models/query.py:6352 ms2.1%
QuerySet.__len__django/db/models/query.py:3722 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.1%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))4 ms4.3%
touch_tokenapps/api/urls.py:59 SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)2 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms2.1%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
Atomic.__exit__django/db/transaction.py:2472 ms2.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.1%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms2.1%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.1%
TransactionTestCase._pre_setupdjango/test/testcases.py:1164 cls._fixture_setup()2 ms2.1%
TestCase._fixture_setupdjango/test/testcases.py:14782 ms2.1%
TestCase._enter_atomicsdjango/test/testcases.py:13962 ms2.1%
Atomic.__enter__django/db/transaction.py:2112 ms2.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.1%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms2.1%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3122 ms2.1%
ProfileUploadTest.test_upload_gzipapps/api/tests.py:5802 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet.getdjango/db/models/query.py:6352 ms2.1%
QuerySet.__len__django/db/models/query.py:3722 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
ProfileUploadTest.test_upload_gzipapps/api/tests.py:5822 ms2.1%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()2 ms2.1%
TestCase._fixture_teardowndjango/test/testcases.py:14952 ms2.1%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4842 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
Estimated from 46 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
16 ms
apps/projects/models.py:18
existing = model.objects.filter(project=project, **lookup).first()
get_or_create_numbered · Database
5 ms
apps/projects/models.py:466
super().save(*args, **kwargs)
Profile.save · Database
4 ms
apps/projects/profiles.py:458
TestPerf.objects.bulk_create(
write_perfs · Database
4 ms
apps/api/tasks.py:259
if finalize_profile(profile_id):
finalize_profile_parts · Database
4 ms
apps/api/urls.py:59
SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)
touch_token · Database
2 ms
apps/api/urls.py:73
touch_token(request.headers.get("Authorization"))
api_request.<locals>.decorator.<locals>.wrapped_view · Database
2 ms
apps/api/urls.py:152
part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()
profile_upload · Database
2 ms
apps/projects/models.py:59
return reverse(name, args=[self.organization.slug, self.slug, *args])
Project.url · Database
2 ms
apps/api/tasks.py:237
part = ProfilePart.objects.select_related("profile").get(id=part_id)
process_profile · Database
2 ms

Fixtures

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

Database

61 queries · 24 ms

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

4×
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_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"."…

Biggest pieces of work

call test body
apps/api/tests.py:578
79 ms
call _pre_setup
django/test/testcases.py:1164
2 ms
call _post_teardown
django/test/testcases.py:1240
2 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
44 minutes ago CI github-actions:test passed 83 ms 9caa567 main Profile
an hour ago CI github-actions:test passed 82 ms ec75501 main Profile
7 hours ago CI github-actions:test passed 86 ms d2c12e5 main Profile
8 hours ago CI github-actions:test passed 45 ms 0b902f6 main Profile
8 hours ago CI github-actions:test passed 78 ms 78a4357 main Profile