Tests / apps/api/tests.py
ProfileUploadTest::test_a_failed_part_can_be_uploaded_again
First seen 3 weeks ago in 78a4357
CI
github-actions:test
12 runs
Average
105 ms
median 113 ms
max 135 ms
max 135 ms
Phases
Setup 0.77 ms
Call 104 ms
Teardown 0.16 ms
Categories
Database 76 ms
App code 1 ms
Test code 0.57 ms
Other (Libraries, Unsampled, Serialization, Mocking, ...) 27 ms
95 database queries per run
Needs 3 KB of memory (max 16 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
call121 ms99.2%
ProfileUploadTest.test_a_failed_part_can_be_uploaded_againapps/api/tests.py:882 self.upload(document)78 ms64.3%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(48 ms39.1%
Client.postdjango/test/client.py:115348 ms39.1%
RequestFactory.postdjango/test/client.py:49948 ms39.1%
RequestFactory.genericdjango/test/client.py:67148 ms39.1%
Client.requestdjango/test/client.py:108248 ms39.1%
ClientHandler.__call__django/test/client.py:18627 ms22.4%
BaseHandler.get_responsedjango/core/handlers/base.py:14127 ms22.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5527 ms22.4%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13027 ms22.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5527 ms22.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30927 ms22.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5527 ms22.4%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12327 ms22.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5527 ms22.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30927 ms22.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5527 ms22.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30927 ms22.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5527 ms22.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30927 ms22.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5527 ms22.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30927 ms22.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5527 ms22.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30927 ms22.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5527 ms22.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30927 ms22.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5527 ms22.4%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3427 ms22.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5527 ms22.4%
BaseHandler._get_responsedjango/core/handlers/base.py:19827 ms22.4%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6527 ms22.4%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:3727 ms22.4%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6427 ms22.4%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:72 project = get_object_or_404(Project, secrettokens__token=request.headers.get("Authorization"))17 ms14.0%
get_object_or_404django/shortcuts.py:9017 ms14.0%
QuerySet.getdjango/db/models/query.py:63517 ms14.0%
QuerySet.__len__django/db/models/query.py:37217 ms14.0%
QuerySet._fetch_alldjango/db/models/query.py:200017 ms14.0%
ModelIterable.__iter__django/db/models/query.py:9517 ms14.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:162414 ms11.2%
CursorWrapper.executedjango/db/backends/utils.py:7914 ms11.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9214 ms11.2%
CursorWrapper._executedjango/db/backends/utils.py:10514 ms11.2%
Cursor.executepsycopg/cursor.py:11314 ms11.2%
Connection.waitpsycopg/connection.py:49514 ms11.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:20614 ms11.2%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:28614 ms11.2%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:7814 ms11.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16113 ms2.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7922 ms1.4%
SQLCompiler.get_from_clausedjango/db/models/sql/compiler.py:11592 ms1.4%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.4%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7952 ms1.4%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.4%
WhereNode.as_sqldjango/db/models/sql/where.py:1512 ms1.4%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.4%
Exact.as_sqldjango/db/models/lookups.py:4072 ms1.4%
BuiltinLookup.as_sqldjango/db/models/lookups.py:2382 ms1.4%
BuiltinLookup.process_lhsdjango/db/models/lookups.py:2302 ms1.4%
Lookup.process_lhsdjango/db/models/lookups.py:1092 ms1.4%
BaseExpression.resolve_expressiondjango/db/models/expressions.py:2972 ms1.4%
BaseExpression.copydjango/db/models/expressions.py:4442 ms1.4%
copy<stdlib>/copy.py:1002 ms1.4%
_reconstruct<stdlib>/copy.py:2552 ms1.4%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:759 ms7.0%
profile_uploadapps/api/urls.py:1503 ms2.8%
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: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: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: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"))2 ms1.4%
touch_tokenapps/api/urls.py:59 SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)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:16222 ms1.4%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.4%
ClientHandler.__call__django/test/client.py:17320 ms16.8%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6220 ms16.8%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10420 ms16.8%
WhiteNoise.add_fileswhitenoise/base.py:10820 ms16.8%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12020 ms16.8%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13120 ms16.8%
WhiteNoise.get_static_filewhitenoise/base.py:20815 ms12.6%
StaticFile.__init__whitenoise/responders.py:739 ms7.0%
StaticFile.get_headerswhitenoise/responders.py:1783 ms2.8%
parsedate<stdlib>/email/_parseaddr.py:1853 ms2.8%
parsedate_tz<stdlib>/email/_parseaddr.py:503 ms2.8%
_parsedate_tz<stdlib>/email/_parseaddr.py:1722 ms1.4%
_parsedate_tz<stdlib>/email/_parseaddr.py:1802 ms1.4%
StaticFile.get_headerswhitenoise/responders.py:1672 ms1.4%
StaticFile.get_headerswhitenoise/responders.py:1762 ms1.4%
formatdate<stdlib>/email/utils.py:2662 ms1.4%
StaticFile.get_headerswhitenoise/responders.py:1812 ms1.4%
StaticFile.__init__whitenoise/responders.py:763 ms2.8%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1893 ms2.8%
Headers.__getitem__<stdlib>/wsgiref/headers.py:833 ms2.8%
Headers.get<stdlib>/wsgiref/headers.py:1042 ms1.4%
Headers.get<stdlib>/wsgiref/headers.py:1072 ms1.4%
StaticFile.__init__whitenoise/responders.py:772 ms1.4%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms1.4%
StaticFile.__init__whitenoise/responders.py:722 ms1.4%
StaticFile.get_file_statswhitenoise/responders.py:1612 ms1.4%
__init____init__:-12 ms1.4%
FileEntry.__init__whitenoise/responders.py:2632 ms1.4%
FileEntry.stat_regular_filewhitenoise/responders.py:2762 ms1.4%
WhiteNoise.get_static_filewhitenoise/base.py:2033 ms2.8%
WhiteNoise.add_cache_headerswhitenoise/base.py:2242 ms1.4%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1762 ms1.4%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1972 ms1.4%
URLMixin.urldebug_toolbar/panels/staticfiles.py:202 ms1.4%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2052 ms1.4%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1842 ms1.4%
ProfileUploadTest.uploadapps/api/tests.py:49531 ms25.1%
_SharedTaskProxy.__call__potatoq/app.py:76331 ms25.1%
Task.__call__potatoq/task.py:18931 ms25.1%
process_profileapps/api/tasks.py:23922 ms18.2%
process_profile_partapps/projects/profiles.py:363 profile = claim_part(part, document)10 ms8.4%
claim_partapps/projects/profiles.py:379 profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)2 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%
claim_partapps/projects/profiles.py:380 ProfilePart.objects.filter(pk=part.pk).update(status=ProfilePart.StatusTypes.PENDING)2 ms1.4%
QuerySet.updatedjango/db/models/query.py:12992 ms1.4%
claim_partapps/projects/profiles.py:381 ProfilePart.objects.filter(profile=profile, index=part.index, id__lt=part.id).delete() # superseded uploads2 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%
claim_partapps/projects/profiles.py:3992 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: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%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms1.4%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms1.4%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms1.4%
PostgresClientQuery.dumppsycopg/_queries.py:2992 ms1.4%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3002 ms1.4%
claim_partapps/projects/profiles.py:404 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%
claim_partapps/projects/profiles.py:4672 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:3655 ms4.2%
upsert_testsapps/projects/profiles.py:4725 ms4.2%
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%
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%
process_profile_partapps/projects/profiles.py:3673 ms2.8%
write_snapshotsapps/projects/profiles.py:3332 ms1.4%
write_snapshots.<locals>.<genexpr>apps/projects/profiles.py:3312 ms1.4%
write_snapshots.<locals>.rowapps/projects/profiles.py:327 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:334 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:3662 ms1.4%
write_perfsapps/projects/profiles.py:478 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:368 ProfilePart.objects.filter(pk=part.pk).update(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%
process_profileapps/api/tasks.py:2539 ms7.0%
_SharedTaskProxy.__call__potatoq/app.py:7639 ms7.0%
Task.__call__potatoq/task.py:1899 ms7.0%
finalize_profile_partsapps/api/tasks.py:2599 ms7.0%
finalize_profileapps/projects/profiles.py:500 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:504 for part in ProfilePart.objects.filter(profile=profile).defer("document").order_by("index", "id"):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%
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%
finalize_profileapps/projects/profiles.py:516 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: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:5172 ms1.4%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(2 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%
finalize_profileapps/projects/profiles.py:5252 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%
ProfileUploadTest.test_a_failed_part_can_be_uploaded_againapps/api/tests.py:88538 ms30.7%
ProfileUploadTest.uploadapps/api/tests.py:49527 ms22.4%
_SharedTaskProxy.__call__potatoq/app.py:76327 ms22.4%
Task.__call__potatoq/task.py:18927 ms22.4%
process_profileapps/api/tasks.py:23926 ms21.0%
process_profile_partapps/projects/profiles.py:363 profile = claim_part(part, document)14 ms11.2%
claim_partapps/projects/profiles.py:3845 ms4.2%
add_perfsapps/projects/rollups.py:30 for perf in perfs: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%
add_perfsapps/projects/rollups.py:64 for row in TestDailyStats.objects.filter(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%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(2 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: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%
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%
claim_partapps/projects/profiles.py:3993 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: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: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%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 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%
claim_partapps/projects/profiles.py:379 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:397 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: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%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.4%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.4%
claim_partapps/projects/profiles.py:4672 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:3665 ms4.2%
write_perfsapps/projects/profiles.py:479 TestPerf.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:8333 ms2.8%
QuerySet._batched_insertdjango/db/models/query.py:19563 ms2.8%
QuerySet._insertdjango/db/models/query.py:19183 ms2.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19253 ms2.8%
CursorWrapper.executedjango/db/backends/utils.py:793 ms2.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms2.8%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms2.8%
Cursor.executepsycopg/cursor.py:1133 ms2.8%
Connection.waitpsycopg/connection.py:4953 ms2.8%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms1.4%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms1.4%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms1.4%
PostgresClientQuery.dumppsycopg/_queries.py:2992 ms1.4%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3002 ms1.4%
Dumper.quotepsycopg/adapt.py:592 ms1.4%
ListDumper.dumppsycopg/types/array.py:1572 ms1.4%
<GC>~2 ms1.4%
write_perfsapps/projects/profiles.py:478 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:3653 ms2.8%
upsert_testsapps/projects/profiles.py:4723 ms2.8%
TestManager.upsertapps/projects/models.py:2292 ms1.4%
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.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:356 part = ProfilePart.objects.filter(pk=part.pk).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%
process_profile_partapps/projects/profiles.py:359 or ProfilePart.objects.filter(profile_id=part.profile_id, index=part.index, id__gt=part.id).exists()2 ms1.4%
QuerySet.existsdjango/db/models/query.py:13372 ms1.4%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms1.4%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 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: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%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(10 ms8.4%
Client.postdjango/test/client.py:115310 ms8.4%
RequestFactory.postdjango/test/client.py:49910 ms8.4%
RequestFactory.genericdjango/test/client.py:67110 ms8.4%
Client.requestdjango/test/client.py:108210 ms8.4%
ClientHandler.__call__django/test/client.py:18610 ms8.4%
BaseHandler.get_responsedjango/core/handlers/base.py:14110 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms8.4%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13010 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms8.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30910 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms8.4%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12310 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms8.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30910 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms8.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30910 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms8.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30910 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms8.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30910 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms8.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30910 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms8.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30910 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms8.4%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3410 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms8.4%
BaseHandler._get_responsedjango/core/handlers/base.py:19810 ms8.4%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6510 ms8.4%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:3710 ms8.4%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6410 ms8.4%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:757 ms5.6%
profile_uploadapps/api/urls.py:1502 ms1.4%
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: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:3592 ms1.4%
profile_uploadapps/api/urls.py:152 part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()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:14402 ms1.4%
profile_uploadapps/api/urls.py:1592 ms1.4%
compressapps/projects/profiles.py:111 return gzip.compress(data, compresslevel=6)2 ms1.4%
compress<stdlib>/gzip.py:6682 ms1.4%
profile_uploadapps/api/urls.py:162 process_profile.delay(part.id)2 ms1.4%
Task.delaypotatoq/task.py:2572 ms1.4%
Task.apply_asyncpotatoq/task.py:2732 ms1.4%
Task._check_argumentspotatoq/task.py:3882 ms1.4%
signature<stdlib>/inspect.py:33432 ms1.4%
Signature.from_callable<stdlib>/inspect.py:30582 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: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%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))2 ms1.4%
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%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()3 ms2.8%
TestCase._fixture_teardowndjango/test/testcases.py:14953 ms2.8%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4833 ms2.8%
CursorWrapper.executedjango/db/backends/utils.py:793 ms2.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms2.8%
CursorWrapper._executedjango/db/backends/utils.py:1033 ms2.8%
Cursor.executepsycopg/cursor.py:1133 ms2.8%
Connection.waitpsycopg/connection.py:4953 ms2.8%
ProfileUploadTest.test_a_failed_part_can_be_uploaded_againapps/api/tests.py:8872 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: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:2972 ms1.4%
Estimated from 71 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/api/tests.py:487
response = self.client.post(
ProfileUploadTest.upload
· Libraries
|
20 ms |
|
apps/api/urls.py:72
project = get_object_or_404(Project, secrettokens__token=request.headers.get("Authorization"))
api_request.<locals>.decorator.<locals>.wrapped_view
· Database
|
19 ms |
|
apps/projects/models.py:466
super().save(*args, **kwargs)
Profile.save
· Database
|
7 ms |
|
apps/api/urls.py:59
SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)
touch_token
· Database
|
3 ms |
|
apps/projects/models.py:18
existing = model.objects.filter(project=project, **lookup).first()
get_or_create_numbered
· Database
|
3 ms |
|
apps/api/urls.py:152
part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()
profile_upload
· Database
|
3 ms |
|
apps/projects/profiles.py:379
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:240
existing = dict(self.filter(project_id=project_id, name__in=names).values_list("name", "slug"))
TestManager.slugs_for
· Database
|
3 ms |
|
apps/projects/profiles.py:478
TestPerf.objects.filter(profile=profile, part=part.index).delete()
write_perfs
· Database
|
3 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.05 ms |
| _live_server_helper function | 0.04 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _django_db_marker function | 0.03 ms |
| _django_set_urlconf function | 0.03 ms |
| _django_clear_site_cache function | 0.02 ms |
| monkeypatch function | 0.02 ms |
Database
95 queries · 35 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
8×
SELECT "projects_profilepart"."id", "projects_profilepart"."profile_id", "projects_profilepart"."index", "projects_profilepart"."count", "projects_profilepart"."checksum", "projects_profilepart"."status", "projects_profilepart"."error", "projects_profilepart"."tests_count", "projects_profilepart"."…
5×
SELECT "projects_profile"."id", "projects_profile"."project_id", "projects_profile"."number", "projects_profile"."environment_id", "projects_profile"."session_id", "projects_profile"."run_id", "projects_profile"."commit_id", "projects_profile"."ingest_id", "projects_profile"."external_id", "project…
4×
SELECT "projects_project"."id", "projects_project"."organization_id", "projects_project"."name", "projects_project"."slug", "projects_project"."public", "projects_project"."description", "projects_project"."date_created", "projects_project"."date_updated", "projects_project"."created_by_id" FROM "p…
4×
SELECT "projects_environment"."id", "projects_environment"."project_id", "projects_environment"."name", "projects_environment"."kind", "projects_environment"."provider", "projects_environment"."details", "projects_environment"."date_first_seen", "projects_environment"."date_last_seen" FROM "project…
Biggest pieces of work
|
call test body
apps/api/tests.py:882
|
118 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
3 ms |
Reliability
12 results · 0 CI failures · 0 local failuresThis test hasn't failed recently.
History
Latest 12 results, oldest first in the strip| When | Environment | Outcome | Duration | |
|---|---|---|---|---|
| 16 hours ago | CI github-actions:test | passed | 122 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 71 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 114 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 84 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 135 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 73 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 118 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 111 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 113 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 127 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 71 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 120 ms | Profile |