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

ProfileUploadTest::test_upload_json

First seen 3 weeks ago in 78a4357
CI github-actions:test 12 runs
Average
92 ms
median 96 ms
max 158 ms
Phases
Setup 0.69 ms Call 91 ms Teardown 0.17 ms
Categories
Database 54 ms App code 2 ms Test code 0.32 ms Other (Libraries, Serialization, pytest, Unsampled) 35 ms

71 database queries per run

Needs 159 KB of memory (max 604 KB)

Duration per run

Where the time goes

Latest run in ci:github-actions:test, 16 hours ago · open run
Show pytest frames
call82 ms98.9%
ProfileUploadTest.test_upload_jsonapps/api/tests.py:515 response = self.upload(document)68 ms81.7%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(34 ms40.9%
Client.postdjango/test/client.py:115334 ms40.9%
RequestFactory.postdjango/test/client.py:49934 ms40.9%
RequestFactory.genericdjango/test/client.py:67134 ms40.9%
Client.requestdjango/test/client.py:108234 ms40.9%
ClientHandler.__call__django/test/client.py:18625 ms30.1%
BaseHandler.get_responsedjango/core/handlers/base.py:14125 ms30.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms30.1%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13025 ms30.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms30.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30925 ms30.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms30.1%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12325 ms30.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms30.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30925 ms30.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms30.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30925 ms30.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms30.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30925 ms30.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms30.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30925 ms30.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms30.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30925 ms30.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms30.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30925 ms30.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms30.1%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3425 ms30.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms30.1%
BaseHandler._get_responsedjango/core/handlers/base.py:19825 ms30.1%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6525 ms30.1%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:3725 ms30.1%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6425 ms30.1%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:7525 ms30.1%
profile_uploadapps/api/urls.py:15020 ms23.7%
get_or_create_numberedapps/projects/models.py:18 existing = model.objects.filter(project=project, **lookup).first()18 ms21.5%
QuerySet.firstdjango/db/models/query.py:114518 ms21.5%
QuerySet.__iter__django/db/models/query.py:39018 ms21.5%
QuerySet._fetch_alldjango/db/models/query.py:200018 ms21.5%
ModelIterable.__iter__django/db/models/query.py:9518 ms21.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:162418 ms21.5%
CursorWrapper.executedjango/db/backends/utils.py:7918 ms21.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9218 ms21.5%
CursorWrapper._executedjango/db/backends/utils.py:10514 ms17.2%
Cursor.executepsycopg/cursor.py:11314 ms17.2%
Connection.waitpsycopg/connection.py:49514 ms17.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:20614 ms17.2%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:28614 ms17.2%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:7814 ms17.2%
get_or_create_numberedapps/projects/models.py:24 return model.objects.create(project=project, number=number, **lookup, **(defaults or {})), True2 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.createdjango/db/models/query.py:6692 ms2.2%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms2.2%
Model.savedjango/db/models/base.py:8742 ms2.2%
Model.save_basedjango/db/models/base.py:9662 ms2.2%
Model._save_tabledjango/db/models/base.py:11672 ms2.2%
Model._do_insertdjango/db/models/base.py:12182 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet._insertdjango/db/models/query.py:19182 ms2.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
profile_uploadapps/api/urls.py:152 part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()2 ms2.2%
QuerySet.firstdjango/db/models/query.py:11452 ms2.2%
QuerySet.__iter__django/db/models/query.py:3902 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.2%
ModelIterable.__iter__django/db/models/query.py:952 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
profile_uploadapps/api/urls.py:154 part = ProfilePart.objects.create(2 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.createdjango/db/models/query.py:6692 ms2.2%
Model.savedjango/db/models/base.py:8742 ms2.2%
Model.save_basedjango/db/models/base.py:9662 ms2.2%
Model._save_tabledjango/db/models/base.py:11672 ms2.2%
Model._do_insertdjango/db/models/base.py:12182 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet._insertdjango/db/models/query.py:19182 ms2.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
profile_uploadapps/api/urls.py:1632 ms2.2%
Project.urlapps/projects/models.py:59 return reverse(name, args=[self.organization.slug, self.slug, *args])2 ms2.2%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms2.2%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms2.2%
QuerySet.getdjango/db/models/query.py:6352 ms2.2%
QuerySet.__len__django/db/models/query.py:3722 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.2%
ModelIterable.__iter__django/db/models/query.py:952 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
ClientHandler.__call__django/test/client.py:1739 ms10.8%
BaseHandler.load_middlewaredjango/core/handlers/base.py:629 ms10.8%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:1049 ms10.8%
WhiteNoise.add_fileswhitenoise/base.py:1089 ms10.8%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1207 ms8.6%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:1317 ms8.6%
WhiteNoise.get_static_filewhitenoise/base.py:2084 ms4.3%
StaticFile.__init__whitenoise/responders.py:742 ms2.2%
parsedate<stdlib>/email/_parseaddr.py:1852 ms2.2%
StaticFile.__init__whitenoise/responders.py:772 ms2.2%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms2.2%
WhiteNoise.get_static_filewhitenoise/base.py:2034 ms4.3%
WhiteNoise.add_cache_headerswhitenoise/base.py:2244 ms4.3%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1764 ms4.3%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1974 ms4.3%
URLMixin.urldebug_toolbar/panels/staticfiles.py:202 ms2.2%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2052 ms2.2%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1862 ms2.2%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1152 ms2.2%
scantreewhitenoise/base.py:2622 ms2.2%
scantreewhitenoise/base.py:2622 ms2.2%
scantreewhitenoise/base.py:2642 ms2.2%
ProfileUploadTest.uploadapps/api/tests.py:49534 ms40.9%
_SharedTaskProxy.__call__potatoq/app.py:76334 ms40.9%
Task.__call__potatoq/task.py:18934 ms40.9%
process_profileapps/api/tasks.py:23921 ms25.8%
process_profile_partapps/projects/profiles.py:363 profile = claim_part(part, document)9 ms10.8%
claim_partapps/projects/profiles.py:379 profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)2 ms2.2%
QuerySet.getdjango/db/models/query.py:6252 ms2.2%
QuerySet.filterdjango/db/models/query.py:15422 ms2.2%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms2.2%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms2.2%
Query.add_qdjango/db/models/sql/query.py:16712 ms2.2%
Query._add_qdjango/db/models/sql/query.py:16992 ms2.2%
claim_partapps/projects/profiles.py:381 ProfilePart.objects.filter(profile=profile, index=part.index, id__lt=part.id).delete() # superseded uploads2 ms2.2%
QuerySet.deletedjango/db/models/query.py:12382 ms2.2%
Collector.deletedjango/db/models/deletion.py:4712 ms2.2%
QuerySet._raw_deletedjango/db/models/query.py:12602 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
claim_partapps/projects/profiles.py:3992 ms2.2%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(2 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms2.2%
QuerySet.getdjango/db/models/query.py:6352 ms2.2%
claim_partapps/projects/profiles.py:404 commit, _ = Commit.objects.get_or_create(2 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.get_or_createdjango/db/models/query.py:9942 ms2.2%
QuerySet.createdjango/db/models/query.py:6692 ms2.2%
Model.savedjango/db/models/base.py:8742 ms2.2%
Model.save_basedjango/db/models/base.py:9662 ms2.2%
Model._save_tabledjango/db/models/base.py:11672 ms2.2%
Model._do_insertdjango/db/models/base.py:12182 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet._insertdjango/db/models/query.py:19182 ms2.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
claim_partapps/projects/profiles.py:4672 ms2.2%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms2.2%
Model.savedjango/db/models/base.py:8742 ms2.2%
Model.save_basedjango/db/models/base.py:9662 ms2.2%
Model._save_tabledjango/db/models/base.py:11102 ms2.2%
Model._do_updatedjango/db/models/base.py:12112 ms2.2%
QuerySet._updatedjango/db/models/query.py:13272 ms2.2%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms2.2%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
process_profile_partapps/projects/profiles.py:3655 ms6.5%
upsert_testsapps/projects/profiles.py:4725 ms6.5%
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.2%
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.2%
QuerySet.__iter__django/db/models/query.py:3902 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.2%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms2.2%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order2 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms2.2%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms2.2%
QuerySet._insertdjango/db/models/query.py:19182 ms2.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
process_profile_partapps/projects/profiles.py:3664 ms4.3%
write_perfsapps/projects/profiles.py:478 TestPerf.objects.filter(profile=profile, part=part.index).delete()2 ms2.2%
QuerySet.deletedjango/db/models/query.py:12382 ms2.2%
Collector.deletedjango/db/models/deletion.py:4582 ms2.2%
write_perfsapps/projects/profiles.py:479 TestPerf.objects.bulk_create(2 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms2.2%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms2.2%
QuerySet._insertdjango/db/models/query.py:19182 ms2.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
process_profile_partapps/projects/profiles.py:3674 ms4.3%
write_snapshotsapps/projects/profiles.py:3332 ms2.2%
write_snapshots.<locals>.<genexpr>apps/projects/profiles.py:3312 ms2.2%
write_snapshots.<locals>.rowapps/projects/profiles.py:3262 ms2.2%
segments_ofapps/projects/profiles.py:1962 ms2.2%
write_snapshotsapps/projects/profiles.py:334 cursor.executemany(SNAPSHOT_UPSERT, batch)2 ms2.2%
CursorWrapper.executemanydjango/db/backends/utils.py:842 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executemanydjango/db/backends/utils.py:1142 ms2.2%
Cursor.executemanypsycopg/cursor.py:1372 ms2.2%
Connection._pipeline_nolockpsycopg/connection.py:4722 ms2.2%
Pipeline.__exit__psycopg/_pipeline.py:732 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
process_profileapps/api/tasks.py:25311 ms12.9%
_SharedTaskProxy.__call__potatoq/app.py:76311 ms12.9%
Task.__call__potatoq/task.py:18911 ms12.9%
finalize_profile_partsapps/api/tasks.py:25911 ms12.9%
finalize_profileapps/projects/profiles.py:5174 ms4.3%
add_perfsapps/projects/rollups.py:30 for perf in perfs:2 ms2.2%
QuerySet.__iter__django/db/models/query.py:3902 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.2%
ModelIterable.__iter__django/db/models/query.py:952 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(2 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms2.2%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms2.2%
QuerySet._insertdjango/db/models/query.py:19182 ms2.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
finalize_profileapps/projects/profiles.py:500 profile = Profile.objects.select_for_update(no_key=True).get(pk=profile_id)2 ms2.2%
QuerySet.getdjango/db/models/query.py:6352 ms2.2%
QuerySet.__len__django/db/models/query.py:3722 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.2%
ModelIterable.__iter__django/db/models/query.py:952 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
finalize_profileapps/projects/profiles.py:504 for part in ProfilePart.objects.filter(profile=profile).defer("document").order_by("index", "id"):2 ms2.2%
QuerySet.__iter__django/db/models/query.py:3902 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.2%
ModelIterable.__iter__django/db/models/query.py:952 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
finalize_profileapps/projects/profiles.py:516 Environment.objects.select_for_update(no_key=True).filter(pk=profile.environment_id).first()2 ms2.2%
QuerySet.firstdjango/db/models/query.py:11452 ms2.2%
QuerySet.__iter__django/db/models/query.py:3902 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.2%
ModelIterable.__iter__django/db/models/query.py:952 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
finalize_profileapps/projects/profiles.py:5252 ms2.2%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms2.2%
Model.savedjango/db/models/base.py:8742 ms2.2%
Model.save_basedjango/db/models/base.py:9662 ms2.2%
Model._save_tabledjango/db/models/base.py:11102 ms2.2%
Model._do_updatedjango/db/models/base.py:12112 ms2.2%
QuerySet._updatedjango/db/models/query.py:13272 ms2.2%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms2.2%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)2 ms2.2%
QuerySet.getdjango/db/models/query.py:6352 ms2.2%
QuerySet.__len__django/db/models/query.py:3722 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.2%
ModelIterable.__iter__django/db/models/query.py:952 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.2%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.2%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.2%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.2%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms2.2%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms2.2%
Col.as_sqldjango/db/models/expressions.py:13252 ms2.2%
ProfileUploadTest.test_upload_jsonapps/api/tests.py:513 def test_upload_json(self):2 ms2.2%
SysMonitor.sysmon_py_startcoverage/sysmon.py:3652 ms2.2%
bytes_to_linescoverage/sysmon.py:1962 ms2.2%
ProfileUploadTest.test_upload_jsonapps/api/tests.py:5172 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.getdjango/db/models/query.py:6352 ms2.2%
QuerySet.__len__django/db/models/query.py:3722 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.2%
ModelIterable.__iter__django/db/models/query.py:952 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
ProfileUploadTest.test_upload_jsonapps/api/tests.py:5252 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.getdjango/db/models/query.py:6352 ms2.2%
QuerySet.__len__django/db/models/query.py:3722 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.2%
ModelIterable.__iter__django/db/models/query.py:952 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
ProfileUploadTest.test_upload_jsonapps/api/tests.py:5322 ms2.2%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms2.2%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms2.2%
QuerySet.getdjango/db/models/query.py:6352 ms2.2%
QuerySet.__len__django/db/models/query.py:3722 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.2%
ModelIterable.__iter__django/db/models/query.py:1272 ms2.2%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15772 ms2.2%
SQLCompiler.get_convertersdjango/db/models/sql/compiler.py:15262 ms2.2%
Col.get_db_convertersdjango/db/models/expressions.py:13402 ms2.2%
ProfileUploadTest.test_upload_jsonapps/api/tests.py:5492 ms2.2%
QuerySet.__iter__django/db/models/query.py:3902 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.2%
ModelIterable.__iter__django/db/models/query.py:952 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.2%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.2%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.2%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.2%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms2.2%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms2.2%
Col.as_sqldjango/db/models/expressions.py:13252 ms2.2%
SQLCompiler.quote_name_unless_aliasdjango/db/backends/postgresql/compiler.py:342 ms2.2%
SQLCompiler.quote_name_unless_aliasdjango/db/models/sql/compiler.py:5582 ms2.2%
ProfileUploadTest.test_upload_jsonapps/api/tests.py:5612 ms2.2%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms2.2%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms2.2%
QuerySet.getdjango/db/models/query.py:6352 ms2.2%
QuerySet.__len__django/db/models/query.py:3722 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.2%
ModelIterable.__iter__django/db/models/query.py:952 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms2.2%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms2.2%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms2.2%
ProfileUploadTest.test_upload_jsonapps/api/tests.py:5642 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.getdjango/db/models/query.py:6352 ms2.2%
QuerySet.__len__django/db/models/query.py:3722 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.2%
ModelIterable.__iter__django/db/models/query.py:952 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
ProfileUploadTest.test_upload_jsonapps/api/tests.py:5752 ms2.2%
QuerySet.countdjango/db/models/query.py:6102 ms2.2%
Estimated from 46 samples; phase durations are exact. Frames from pytest and pluggy are hidden .

Hot lines in your code

apps/projects/models.py:18
existing = model.objects.filter(project=project, **lookup).first()
get_or_create_numbered · Database
18 ms
apps/api/tests.py:487
response = self.client.post(
ProfileUploadTest.upload · Libraries
9 ms
apps/projects/models.py:466
super().save(*args, **kwargs)
Profile.save · Database
5 ms
apps/api/tests.py:513
def test_upload_json(self):
ProfileUploadTest.test_upload_json · Libraries
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/api/urls.py:154
part = ProfilePart.objects.create(
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
apps/projects/profiles.py:379
profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)
claim_part · Database
2 ms
apps/projects/profiles.py:381
ProfilePart.objects.filter(profile=profile, index=part.index, id__lt=part.id).delete() # superseded uploads
claim_part · Database
2 ms

Fixtures

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

Database

71 queries · 23 ms

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

6×
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"."…
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_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…
3×
SELECT "projects_test"."id", "projects_test"."name", "projects_test"."project_id", "projects_test"."slug", "projects_test"."date_last_run", "projects_test"."date_first_seen", "projects_test"."first_commit_id", "projects_test"."muted" FROM "projects_test" WHERE "projects_test"."id" = %s LIMIT ?

Biggest pieces of work

call test body
apps/api/tests.py:515
82 ms

Reliability

12 results · 0 CI failures · 0 local failures

This test hasn't failed recently.

History

Latest 12 results, oldest first in the strip
When Environment Outcome Duration Commit
16 hours ago CI github-actions:test passed 83 ms e141198 main Profile
1 week, 5 days ago CI github-actions:test passed 48 ms 46ec2aa main Profile
2 weeks, 1 day ago CI github-actions:test passed 95 ms afde85b main Profile
2 weeks, 1 day ago CI github-actions:test passed 72 ms fe29f9d main Profile
2 weeks, 1 day ago CI github-actions:test passed 98 ms 044719a main Profile
2 weeks, 2 days ago CI github-actions:test passed 58 ms b3fedae main Profile
2 weeks, 4 days ago CI github-actions:test passed 99 ms 43c4eda main Profile
2 weeks, 6 days ago CI github-actions:test passed 104 ms 9caa567 main Profile
2 weeks, 6 days ago CI github-actions:test passed 92 ms ec75501 main Profile
3 weeks ago CI github-actions:test passed 97 ms d2c12e5 main Profile
3 weeks ago CI github-actions:test passed 158 ms 0b902f6 main Profile
3 weeks ago CI github-actions:test passed 97 ms 78a4357 main Profile