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

ProfileUploadTest::test_processing_twice_is_safe

First seen 7 hours ago in 78a4357
CI github-actions:test 5 runs
Average
115 ms
median 121 ms
max 137 ms
Phases
Setup 0.67 ms Call 115 ms Teardown 0.17 ms
Categories
Database 80 ms App code 2 ms Test code 1 ms Other (Unsampled, Libraries, Serialization, Mocking) 32 ms

102 database queries per run

Needs 555 KB of memory (max 788 KB)

Duration per run

Where the time goes

Latest run in ci:github-actions:test, 13 minutes ago · open run
Show pytest frames
call120 ms99.2%
ProfileUploadTest.test_processing_twice_is_safeapps/api/tests.py:896 self.upload(self.document())79 ms65.2%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(43 ms35.4%
Client.postdjango/test/client.py:115343 ms35.4%
RequestFactory.postdjango/test/client.py:49943 ms35.4%
RequestFactory.genericdjango/test/client.py:67143 ms35.4%
Client.requestdjango/test/client.py:108243 ms35.4%
ClientHandler.__call__django/test/client.py:17324 ms19.8%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6224 ms19.8%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10424 ms19.8%
WhiteNoise.add_fileswhitenoise/base.py:10824 ms19.8%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12021 ms17.0%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13121 ms17.0%
WhiteNoise.get_static_filewhitenoise/base.py:20812 ms9.9%
StaticFile.__init__whitenoise/responders.py:773 ms2.8%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms1.4%
__init____init__:-12 ms1.4%
Headers.__init__<stdlib>/wsgiref/headers.py:362 ms1.4%
<GC>~2 ms1.4%
StaticFile.get_alternativeswhitenoise/responders.py:1982 ms1.4%
StaticFile.__init__whitenoise/responders.py:733 ms2.8%
StaticFile.get_headerswhitenoise/responders.py:1712 ms1.4%
StaticFile.get_headerswhitenoise/responders.py:1762 ms1.4%
formatdate<stdlib>/email/utils.py:2662 ms1.4%
StaticFile.__init__whitenoise/responders.py:722 ms1.4%
StaticFile.get_file_statswhitenoise/responders.py:1612 ms1.4%
StaticFile.__init__whitenoise/responders.py:762 ms1.4%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1882 ms1.4%
StaticFile.__init__whitenoise/responders.py:742 ms1.4%
parsedate<stdlib>/email/_parseaddr.py:1852 ms1.4%
WhiteNoise.get_static_filewhitenoise/base.py:2035 ms4.3%
WhiteNoise.add_cache_headerswhitenoise/base.py:2245 ms4.3%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1763 ms2.8%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1973 ms2.8%
URLMixin.urldebug_toolbar/panels/staticfiles.py:203 ms2.8%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2052 ms1.4%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1862 ms1.4%
FileSystemStorage.urldjango/core/files/storage/filesystem.py:2092 ms1.4%
WhiteNoise.get_static_filewhitenoise/base.py:2023 ms2.8%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1153 ms2.8%
scantreewhitenoise/base.py:2622 ms1.4%
scantreewhitenoise/base.py:2622 ms1.4%
scantreewhitenoise/base.py:2622 ms1.4%
scantreewhitenoise/base.py:2622 ms1.4%
scantreewhitenoise/base.py:2622 ms1.4%
scantreewhitenoise/base.py:2642 ms1.4%
ClientHandler.__call__django/test/client.py:18619 ms15.6%
BaseHandler.get_responsedjango/core/handlers/base.py:14119 ms15.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms15.6%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13019 ms15.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms15.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms15.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms15.6%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12319 ms15.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms15.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms15.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms15.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms15.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms15.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms15.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms15.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms15.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms15.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms15.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms15.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms15.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms15.6%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3419 ms15.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms15.6%
BaseHandler._get_responsedjango/core/handlers/base.py:19817 ms14.2%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6517 ms14.2%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:3717 ms14.2%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6417 ms14.2%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:7512 ms9.9%
profile_uploadapps/api/urls.py:1507 ms5.7%
get_or_create_numberedapps/projects/models.py:18 existing = model.objects.filter(project=project, **lookup).first()2 ms1.4%
QuerySet.firstdjango/db/models/query.py:11452 ms1.4%
QuerySet.__iter__django/db/models/query.py:3902 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
get_or_create_numberedapps/projects/models.py:21 number = next_number(model, project.pk)2 ms1.4%
next_numberapps/projects/models.py:35 return (model.objects.filter(project_id=project_id).aggregate(last=models.Max("number"))["last"] or 0) + 12 ms1.4%
QuerySet.aggregatedjango/db/models/query.py:5942 ms1.4%
Query.get_aggregationdjango/db/models/sql/query.py:6332 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.4%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.4%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.4%
get_or_create_numberedapps/projects/models.py:24 return model.objects.create(project=project, number=number, **lookup, **(defaults or {})), True2 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.4%
QuerySet.createdjango/db/models/query.py:6692 ms1.4%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.4%
Model.savedjango/db/models/base.py:8742 ms1.4%
Model.save_basedjango/db/models/base.py:9662 ms1.4%
Model._save_tabledjango/db/models/base.py:11672 ms1.4%
Model._do_insertdjango/db/models/base.py:12182 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.4%
QuerySet._insertdjango/db/models/query.py:19182 ms1.4%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19242 ms1.4%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18132 ms1.4%
get_or_create_numberedapps/projects/models.py:23 with transaction.atomic():2 ms1.4%
Atomic.__exit__django/db/transaction.py:2472 ms1.4%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.4%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.4%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
profile_uploadapps/api/urls.py:152 part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()2 ms1.4%
QuerySet.firstdjango/db/models/query.py:11452 ms1.4%
QuerySet.__iter__django/db/models/query.py:3902 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
profile_uploadapps/api/urls.py:154 part = ProfilePart.objects.create(2 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.4%
QuerySet.createdjango/db/models/query.py:6692 ms1.4%
Model.savedjango/db/models/base.py:8742 ms1.4%
Model.save_basedjango/db/models/base.py:9662 ms1.4%
Model._save_tabledjango/db/models/base.py:11672 ms1.4%
Model._do_insertdjango/db/models/base.py:12182 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.4%
QuerySet._insertdjango/db/models/query.py:19182 ms1.4%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
profile_uploadapps/api/urls.py:1632 ms1.4%
Project.urlapps/projects/models.py:59 return reverse(name, args=[self.organization.slug, self.slug, *args])2 ms1.4%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms1.4%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms1.4%
QuerySet.getdjango/db/models/query.py:6352 ms1.4%
QuerySet.__len__django/db/models/query.py:3722 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))3 ms2.8%
touch_tokenapps/api/urls.py:59 SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)2 ms1.4%
QuerySet.__iter__django/db/models/query.py:3902 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms1.4%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
Atomic.__exit__django/db/transaction.py:2472 ms1.4%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.4%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.4%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
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.4%
get_object_or_404django/shortcuts.py:902 ms1.4%
QuerySet.getdjango/db/models/query.py:6352 ms1.4%
QuerySet.__len__django/db/models/query.py:3722 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:1272 ms1.4%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15772 ms1.4%
SQLCompiler.get_convertersdjango/db/models/sql/compiler.py:15262 ms1.4%
Col.get_db_convertersdjango/db/models/expressions.py:13402 ms1.4%
BaseHandler._get_responsedjango/core/handlers/base.py:1822 ms1.4%
BaseHandler.resolve_requestdjango/core/handlers/base.py:3142 ms1.4%
URLResolver.resolvedjango/urls/resolvers.py:6782 ms1.4%
URLResolver.resolvedjango/urls/resolvers.py:6782 ms1.4%
ProfileUploadTest.uploadapps/api/tests.py:49536 ms29.8%
_SharedTaskProxy.__call__potatoq/app.py:76336 ms29.8%
Task.__call__potatoq/task.py:18936 ms29.8%
process_profileapps/api/tasks.py:23924 ms19.8%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)12 ms9.9%
claim_partapps/projects/profiles.py:4463 ms2.8%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)3 ms2.8%
Model.savedjango/db/models/base.py:8283 ms2.8%
Model._prepare_related_fields_for_savedjango/db/models/base.py:12452 ms1.4%
Model.save_basedjango/db/models/base.py:9662 ms1.4%
Model._save_tabledjango/db/models/base.py:11102 ms1.4%
Model._do_updatedjango/db/models/base.py:12112 ms1.4%
QuerySet._updatedjango/db/models/query.py:13272 ms1.4%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.4%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
claim_partapps/projects/profiles.py:358 profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)2 ms1.4%
QuerySet.getdjango/db/models/query.py:6352 ms1.4%
QuerySet.__len__django/db/models/query.py:3722 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
claim_partapps/projects/profiles.py:359 ProfilePart.objects.filter(pk=part.pk).update(status=ProfilePart.StatusTypes.PENDING)2 ms1.4%
QuerySet.updatedjango/db/models/query.py:13002 ms1.4%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
claim_partapps/projects/profiles.py:376 project = profile.project2 ms1.4%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms1.4%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms1.4%
QuerySet.getdjango/db/models/query.py:6252 ms1.4%
QuerySet.filterdjango/db/models/query.py:15422 ms1.4%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.4%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.4%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.4%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.4%
Query.build_filterdjango/db/models/sql/query.py:15282 ms1.4%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.4%
Query.build_filterdjango/db/models/sql/query.py:15772 ms1.4%
Query.setup_joinsdjango/db/models/sql/query.py:19272 ms1.4%
claim_partapps/projects/profiles.py:3782 ms1.4%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(2 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.4%
QuerySet.get_or_createdjango/db/models/query.py:9942 ms1.4%
QuerySet.createdjango/db/models/query.py:6692 ms1.4%
Model.savedjango/db/models/base.py:8742 ms1.4%
Model.save_basedjango/db/models/base.py:9662 ms1.4%
Model._save_tabledjango/db/models/base.py:11672 ms1.4%
Model._do_insertdjango/db/models/base.py:12182 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.4%
QuerySet._insertdjango/db/models/query.py:19182 ms1.4%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19242 ms1.4%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18162 ms1.4%
Field.has_db_defaultdjango/db/models/fields/__init__.py:10192 ms1.4%
claim_partapps/projects/profiles.py:383 commit, _ = Commit.objects.get_or_create(2 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.4%
QuerySet.get_or_createdjango/db/models/query.py:9942 ms1.4%
QuerySet.createdjango/db/models/query.py:6692 ms1.4%
Model.savedjango/db/models/base.py:8742 ms1.4%
Model.save_basedjango/db/models/base.py:9662 ms1.4%
Model._save_tabledjango/db/models/base.py:11672 ms1.4%
Model._do_insertdjango/db/models/base.py:12182 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.4%
QuerySet._insertdjango/db/models/query.py:19182 ms1.4%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
process_profile_partapps/projects/profiles.py:3447 ms5.7%
upsert_testsapps/projects/profiles.py:4517 ms5.7%
TestManager.upsertapps/projects/models.py:2293 ms2.8%
TestManager.slugs_forapps/projects/models.py:240 existing = dict(self.filter(project_id=project_id, name__in=names).values_list("name", "slug"))2 ms1.4%
QuerySet.__iter__django/db/models/query.py:3902 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms1.4%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
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.4%
QuerySet.__iter__django/db/models/query.py:3902 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms1.4%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order2 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.4%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms1.4%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.4%
QuerySet._insertdjango/db/models/query.py:19182 ms1.4%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
TestManager.upsertapps/projects/models.py:236 return {test.name: test for test in self.filter(project=project, name__in=names)}2 ms1.4%
QuerySet.__iter__django/db/models/query.py:3902 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
process_profile_partapps/projects/profiles.py:3412 ms1.4%
load_documentapps/projects/profiles.py:112 return json.loads(gzip.decompress(bytes(part.document)))2 ms1.4%
decompress<stdlib>/gzip.py:6912 ms1.4%
process_profile_partapps/projects/profiles.py:345 write_perfs(profile, part, entries, tests)2 ms1.4%
write_perfsapps/projects/profiles.py:457 TestPerf.objects.filter(profile=profile, part=part.index).delete()2 ms1.4%
QuerySet.deletedjango/db/models/query.py:12382 ms1.4%
Collector.deletedjango/db/models/deletion.py:4712 ms1.4%
QuerySet._raw_deletedjango/db/models/query.py:12602 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
process_profile_partapps/projects/profiles.py:3462 ms1.4%
write_snapshotsapps/projects/profiles.py:313 cursor.executemany(SNAPSHOT_UPSERT, batch)2 ms1.4%
CursorWrapper.executemanydjango/db/backends/utils.py:842 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executemanydjango/db/backends/utils.py:1142 ms1.4%
Cursor.executemanypsycopg/cursor.py:1382 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
BaseCursor._executemany_gen_pipelinepsycopg/_cursor_base.py:2322 ms1.4%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms1.4%
process_profileapps/api/tasks.py:2539 ms7.1%
_SharedTaskProxy.__call__potatoq/app.py:7639 ms7.1%
Task.__call__potatoq/task.py:1899 ms7.1%
finalize_profile_partsapps/api/tasks.py:259 if finalize_profile(profile_id):9 ms7.1%
finalize_profileapps/projects/profiles.py:4963 ms2.8%
add_perfsapps/projects/rollups.py:30 for perf in perfs:3 ms2.8%
QuerySet.__iter__django/db/models/query.py:3903 ms2.8%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms2.8%
ModelIterable.__iter__django/db/models/query.py:1283 ms2.8%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15812 ms1.4%
SQLCompiler.has_composite_fieldsdjango/db/models/sql/compiler.py:15492 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
finalize_profileapps/projects/profiles.py:479 profile = Profile.objects.select_for_update(no_key=True).get(pk=profile_id)2 ms1.4%
QuerySet.getdjango/db/models/query.py:6352 ms1.4%
QuerySet.__len__django/db/models/query.py:3722 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
finalize_profileapps/projects/profiles.py:490 rows.filter(part__gte=profile.parts).delete()2 ms1.4%
QuerySet.deletedjango/db/models/query.py:12242 ms1.4%
Atomic.__exit__django/db/transaction.py:2472 ms1.4%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.4%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.4%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)3 ms2.8%
QuerySet.getdjango/db/models/query.py:6353 ms2.8%
QuerySet.__len__django/db/models/query.py:3723 ms2.8%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms2.8%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.4%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.4%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.4%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.4%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms1.4%
ModelIterable.__iter__django/db/models/query.py:1272 ms1.4%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15772 ms1.4%
SQLCompiler.get_convertersdjango/db/models/sql/compiler.py:15262 ms1.4%
ProfileUploadTest.test_processing_twice_is_safeapps/api/tests.py:89924 ms19.8%
_SharedTaskProxy.__call__potatoq/app.py:76322 ms18.4%
Task.__call__potatoq/task.py:18922 ms18.4%
process_profileapps/api/tasks.py:23919 ms15.6%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)10 ms8.5%
claim_partapps/projects/profiles.py:3783 ms2.8%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(2 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.4%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms1.4%
QuerySet.getdjango/db/models/query.py:6252 ms1.4%
QuerySet.filterdjango/db/models/query.py:15422 ms1.4%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.4%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.4%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.4%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.4%
Query.build_filterdjango/db/models/sql/query.py:16132 ms1.4%
get_or_create_environmentapps/projects/environments.py:79 obj.save(update_fields=update_fields)2 ms1.4%
Model.savedjango/db/models/base.py:8742 ms1.4%
Model.save_basedjango/db/models/base.py:9662 ms1.4%
Model._save_tabledjango/db/models/base.py:11102 ms1.4%
Model._do_updatedjango/db/models/base.py:12112 ms1.4%
QuerySet._updatedjango/db/models/query.py:13272 ms1.4%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.4%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
Atomic.__enter__django/db/transaction.py:2112 ms1.4%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.4%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.4%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
claim_partapps/projects/profiles.py:358 profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)2 ms1.4%
QuerySet.getdjango/db/models/query.py:6352 ms1.4%
QuerySet.__len__django/db/models/query.py:3722 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
claim_partapps/projects/profiles.py:362 Environment.objects.select_for_update(no_key=True).filter(pk=profile.environment_id).first()2 ms1.4%
QuerySet.firstdjango/db/models/query.py:11452 ms1.4%
QuerySet.__iter__django/db/models/query.py:3902 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.4%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.4%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:872 ms1.4%
SQLCompiler.get_order_bydjango/db/models/sql/compiler.py:4912 ms1.4%
SQLCompiler._order_by_pairsdjango/db/models/sql/compiler.py:4742 ms1.4%
claim_partapps/projects/profiles.py:4462 ms1.4%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.4%
Model.savedjango/db/models/base.py:8742 ms1.4%
Model.save_basedjango/db/models/base.py:9662 ms1.4%
Model._save_tabledjango/db/models/base.py:11102 ms1.4%
Model._do_updatedjango/db/models/base.py:12112 ms1.4%
QuerySet._updatedjango/db/models/query.py:13272 ms1.4%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.4%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
process_profile_partapps/projects/profiles.py:3463 ms2.8%
write_snapshotsapps/projects/profiles.py:3122 ms1.4%
write_snapshots.<locals>.<genexpr>apps/projects/profiles.py:3102 ms1.4%
write_snapshots.<locals>.rowapps/projects/profiles.py:306 compress(json.dumps(snapshot_document(document, entry), separators=(",", ":")).encode()),2 ms1.4%
dumps<stdlib>/json/__init__.py:2412 ms1.4%
JSONEncoder.encode<stdlib>/json/encoder.py:2022 ms1.4%
JSONEncoder.iterencode<stdlib>/json/encoder.py:2632 ms1.4%
write_snapshotsapps/projects/profiles.py:313 cursor.executemany(SNAPSHOT_UPSERT, batch)2 ms1.4%
CursorWrapper.executemanydjango/db/backends/utils.py:842 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executemanydjango/db/backends/utils.py:1142 ms1.4%
Cursor.executemanypsycopg/cursor.py:1372 ms1.4%
Connection._pipeline_nolockpsycopg/connection.py:4722 ms1.4%
Pipeline.__exit__psycopg/_pipeline.py:732 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
process_profile_partapps/projects/profiles.py:338 or ProfilePart.objects.filter(profile_id=part.profile_id, index=part.index, id__gt=part.id).exists()2 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.4%
QuerySet.filterdjango/db/models/query.py:15422 ms1.4%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.4%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.4%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.4%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.4%
Query.build_filterdjango/db/models/sql/query.py:16132 ms1.4%
Query.build_lookupdjango/db/models/sql/query.py:14252 ms1.4%
process_profile_partapps/projects/profiles.py:3442 ms1.4%
upsert_testsapps/projects/profiles.py:4512 ms1.4%
TestManager.upsertapps/projects/models.py:236 return {test.name: test for test in self.filter(project=project, name__in=names)}2 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.4%
QuerySet.filterdjango/db/models/query.py:15422 ms1.4%
process_profile_partapps/projects/profiles.py:345 write_perfs(profile, part, entries, tests)2 ms1.4%
Atomic.__enter__django/db/transaction.py:2112 ms1.4%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.4%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.4%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)2 ms1.4%
QuerySet.getdjango/db/models/query.py:6352 ms1.4%
QuerySet.__len__django/db/models/query.py:3722 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
process_profileapps/api/tasks.py:2512 ms1.4%
CallableMixin.__call__<stdlib>/unittest/mock.py:11762 ms1.4%
CallableMixin._mock_call<stdlib>/unittest/mock.py:11802 ms1.4%
CallableMixin._execute_mock_call<stdlib>/unittest/mock.py:12612 ms1.4%
NonCallableMock.__get_return_value<stdlib>/unittest/mock.py:5842 ms1.4%
NonCallableMock._get_child_mock<stdlib>/unittest/mock.py:10972 ms1.4%
MagicMixin.__init__<stdlib>/unittest/mock.py:21822 ms1.4%
MagicMixin._mock_set_magics<stdlib>/unittest/mock.py:22052 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.4%
QuerySet.getdjango/db/models/query.py:6352 ms1.4%
QuerySet.__len__django/db/models/query.py:3722 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
ProfileUploadTest.test_processing_twice_is_safeapps/api/tests.py:90012 ms9.9%
_SharedTaskProxy.__call__potatoq/app.py:76312 ms9.9%
Task.__call__potatoq/task.py:18912 ms9.9%
finalize_profile_partsapps/api/tasks.py:259 if finalize_profile(profile_id):10 ms8.5%
finalize_profileapps/projects/profiles.py:4963 ms2.8%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(3 ms2.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms2.8%
QuerySet.bulk_createdjango/db/models/query.py:7942 ms1.4%
QuerySet.bulk_createdjango/db/models/query.py:8162 ms1.4%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.4%
QuerySet._insertdjango/db/models/query.py:19182 ms1.4%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
finalize_profileapps/projects/profiles.py:479 profile = Profile.objects.select_for_update(no_key=True).get(pk=profile_id)2 ms1.4%
QuerySet.getdjango/db/models/query.py:6352 ms1.4%
QuerySet.__len__django/db/models/query.py:3722 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
finalize_profileapps/projects/profiles.py:490 rows.filter(part__gte=profile.parts).delete()2 ms1.4%
QuerySet.deletedjango/db/models/query.py:12382 ms1.4%
Collector.deletedjango/db/models/deletion.py:4712 ms1.4%
QuerySet._raw_deletedjango/db/models/query.py:12602 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
finalize_profileapps/projects/profiles.py:492 for duplicate in duplicates:2 ms1.4%
QuerySet.__iter__django/db/models/query.py:3902 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ValuesIterable.__iter__django/db/models/query.py:2222 ms1.4%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
finalize_profileapps/projects/profiles.py:5042 ms1.4%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.4%
Model.savedjango/db/models/base.py:8742 ms1.4%
Model.save_basedjango/db/models/base.py:9662 ms1.4%
Model._save_tabledjango/db/models/base.py:11102 ms1.4%
Model._do_updatedjango/db/models/base.py:12112 ms1.4%
QuerySet._updatedjango/db/models/query.py:13272 ms1.4%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.4%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
finalize_profile_partsapps/api/tasks.py:2602 ms1.4%
QuerySet.getdjango/db/models/query.py:6352 ms1.4%
QuerySet.__len__django/db/models/query.py:3722 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms1.4%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()3 ms2.8%
TestCase._fixture_teardowndjango/test/testcases.py:14942 ms1.4%
TestCase._should_check_constraintsdjango/test/testcases.py:15032 ms1.4%
DatabaseWrapper.is_usabledjango/db/backends/postgresql/base.py:4922 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
TestCase._fixture_teardowndjango/test/testcases.py:14952 ms1.4%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4842 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
ProfileUploadTest.test_processing_twice_is_safeapps/api/tests.py:8972 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.4%
QuerySet.getdjango/db/models/query.py:6352 ms1.4%
QuerySet.__len__django/db/models/query.py:3722 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
Estimated from 70 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
26 ms
apps/projects/models.py:466
super().save(*args, **kwargs)
Profile.save · Database
9 ms
apps/api/tasks.py:237
part = ProfilePart.objects.select_related("profile").get(id=part_id)
process_profile · Database
5 ms
apps/projects/profiles.py:358
profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)
claim_part · Database
3 ms
apps/projects/environments.py:63
obj, created = Environment.objects.get_or_create(
get_or_create_environment · Database
3 ms
apps/projects/models.py:236
return {test.name: test for test in self.filter(project=project, name__in=names)}
TestManager.upsert · Database
3 ms
apps/projects/profiles.py:313
cursor.executemany(SNAPSHOT_UPSERT, batch)
write_snapshots · Database
3 ms
apps/projects/profiles.py:479
profile = Profile.objects.select_for_update(no_key=True).get(pk=profile_id)
finalize_profile · Database
3 ms
apps/projects/profiles.py:490
rows.filter(part__gte=profile.parts).delete()
finalize_profile · Database
3 ms
apps/projects/rollups.py:30
for perf in perfs:
add_perfs · Database
3 ms

Fixtures

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

Database

102 queries · 42 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"."…
6×
SELECT "projects_profile"."id", "projects_profile"."project_id", "projects_profile"."number", "projects_profile"."environment_id", "projects_profile"."session_id", "projects_profile"."run_id", "projects_profile"."commit_id", "projects_profile"."ingest_id", "projects_profile"."external_id", "project…
5×
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_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…
3×
SELECT "projects_testperf"."id", "projects_testperf"."project_id", "projects_testperf"."test_id", "projects_testperf"."environment_id", "projects_testperf"."outcome", "projects_testperf"."duration", "projects_testperf"."setup", "projects_testperf"."call", "projects_testperf"."teardown", "projects_t…

Biggest pieces of work

call test body
apps/api/tests.py:896
116 ms
call _post_teardown
django/test/testcases.py:1240
3 ms

Reliability

5 results · 0 CI failures · 0 local failures

This test hasn't failed recently.

History

Latest 5 results, oldest first in the strip
When Environment Outcome Duration Commit
13 minutes ago CI github-actions:test passed 121 ms 9caa567 main Profile
38 minutes ago CI github-actions:test passed 124 ms ec75501 main Profile
7 hours ago CI github-actions:test passed 137 ms d2c12e5 main Profile
7 hours ago CI github-actions:test passed 76 ms 0b902f6 main Profile
7 hours ago CI github-actions:test passed 120 ms 78a4357 main Profile