Tests / apps/api/tests.py
ProfileUploadTest::test_processing_twice_is_safe
First seen 3 weeks ago in 78a4357
CI
github-actions:test
12 runs
Average
110 ms
median 119 ms
max 140 ms
max 140 ms
Phases
Setup 0.64 ms
Call 109 ms
Teardown 0.17 ms
Categories
Database 81 ms
App code 2 ms
Test code 0.86 ms
Other (Libraries, Unsampled, Serialization, pytest, ...) 26 ms
102 database queries per run
Needs 687 KB of memory (max 804 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
setup0.68 ms0.6%
call117 ms99.3%
ProfileUploadTest.test_processing_twice_is_safeapps/api/tests.py:896 self.upload(self.document())77 ms65.4%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(40 ms33.9%
Client.postdjango/test/client.py:115340 ms33.9%
RequestFactory.postdjango/test/client.py:49940 ms33.9%
RequestFactory.genericdjango/test/client.py:67140 ms33.9%
Client.requestdjango/test/client.py:108240 ms33.9%
ClientHandler.__call__django/test/client.py:18621 ms18.2%
BaseHandler.get_responsedjango/core/handlers/base.py:14121 ms18.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms18.2%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13021 ms18.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms18.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms18.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms18.2%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12321 ms18.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms18.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms18.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms18.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms18.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms18.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms18.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms18.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms18.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms18.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms18.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms18.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms18.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms18.2%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3421 ms18.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms18.2%
BaseHandler._get_responsedjango/core/handlers/base.py:19821 ms18.2%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6521 ms18.2%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:3721 ms18.2%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6421 ms18.2%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))17 ms14.5%
Atomic.__enter__django/db/transaction.py:21114 ms12.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:2614 ms12.1%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:40014 ms12.1%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:36714 ms12.1%
CursorWrapper.executedjango/db/backends/utils.py:7914 ms12.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9214 ms12.1%
CursorWrapper._executedjango/db/backends/utils.py:10314 ms12.1%
Cursor.executepsycopg/cursor.py:11314 ms12.1%
Connection.waitpsycopg/connection.py:49514 ms12.1%
touch_tokenapps/api/urls.py:59 SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)1 ms1.2%
QuerySet.__iter__django/db/models/query.py:3901 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
FlatValuesListIterable.__iter__django/db/models/query.py:2771 ms1.2%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
Atomic.__exit__django/db/transaction.py:2471 ms1.2%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms1.2%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4311 ms1.2%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3751 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:754 ms3.6%
profile_uploadapps/api/urls.py:1501 ms1.2%
get_or_create_numberedapps/projects/models.py:24 return model.objects.create(project=project, number=number, **lookup, **(defaults or {})), True1 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.2%
QuerySet.createdjango/db/models/query.py:6691 ms1.2%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)1 ms1.2%
Model.savedjango/db/models/base.py:8741 ms1.2%
Model.save_basedjango/db/models/base.py:9661 ms1.2%
Model._save_tabledjango/db/models/base.py:11671 ms1.2%
Model._do_insertdjango/db/models/base.py:12181 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.2%
QuerySet._insertdjango/db/models/query.py:19181 ms1.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19241 ms1.2%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18131 ms1.2%
SQLInsertCompiler.prepare_valuedjango/db/models/sql/compiler.py:17421 ms1.2%
Field.get_db_prep_savedjango/db/models/fields/__init__.py:10111 ms1.2%
IntegerField.get_db_prep_valuedjango/db/models/fields/__init__.py:21361 ms1.2%
DatabaseOperations.adapt_integerfield_valuedjango/db/backends/postgresql/operations.py:3231 ms1.2%
profile_uploadapps/api/urls.py:152 part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()1 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.2%
QuerySet.filterdjango/db/models/query.py:15421 ms1.2%
QuerySet._filter_or_excludedjango/db/models/query.py:15601 ms1.2%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15701 ms1.2%
Query.add_qdjango/db/models/sql/query.py:16711 ms1.2%
Query._add_qdjango/db/models/sql/query.py:17031 ms1.2%
Query.build_filterdjango/db/models/sql/query.py:15731 ms1.2%
Query.get_initial_aliasdjango/db/models/sql/query.py:11161 ms1.2%
profile_uploadapps/api/urls.py:1591 ms1.2%
compressapps/projects/profiles.py:111 return gzip.compress(data, compresslevel=6)1 ms1.2%
compress<stdlib>/gzip.py:6681 ms1.2%
ClientHandler.__call__django/test/client.py:17319 ms15.7%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6219 ms15.7%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10419 ms15.7%
WhiteNoise.add_fileswhitenoise/base.py:10819 ms15.7%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12016 ms13.3%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13116 ms13.3%
WhiteNoise.get_static_filewhitenoise/base.py:20811 ms9.7%
StaticFile.__init__whitenoise/responders.py:734 ms3.6%
StaticFile.get_headerswhitenoise/responders.py:1763 ms2.4%
formatdate<stdlib>/email/utils.py:2663 ms2.4%
format_datetime<stdlib>/email/utils.py:2841 ms1.2%
StaticFile.get_headerswhitenoise/responders.py:1781 ms1.2%
StaticFile.__init__whitenoise/responders.py:743 ms2.4%
parsedate<stdlib>/email/_parseaddr.py:1853 ms2.4%
StaticFile.__init__whitenoise/responders.py:773 ms2.4%
StaticFile.get_alternativeswhitenoise/responders.py:1981 ms1.2%
StaticFile.get_alternativeswhitenoise/responders.py:2001 ms1.2%
StaticFile.__init__whitenoise/responders.py:721 ms1.2%
StaticFile.get_file_statswhitenoise/responders.py:1611 ms1.2%
WhiteNoise.get_static_filewhitenoise/base.py:2033 ms2.4%
WhiteNoise.add_cache_headerswhitenoise/base.py:2243 ms2.4%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1761 ms1.2%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1971 ms1.2%
URLMixin.urldebug_toolbar/panels/staticfiles.py:211 ms1.2%
<GC>~1 ms1.2%
WhiteNoise.get_static_filewhitenoise/base.py:2021 ms1.2%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1153 ms2.4%
scantreewhitenoise/base.py:2641 ms1.2%
scantreewhitenoise/base.py:2601 ms1.2%
ProfileUploadTest.uploadapps/api/tests.py:49537 ms31.5%
_SharedTaskProxy.__call__potatoq/app.py:76337 ms31.5%
Task.__call__potatoq/task.py:18937 ms31.5%
process_profileapps/api/tasks.py:23923 ms19.4%
process_profile_partapps/projects/profiles.py:363 profile = claim_part(part, document)11 ms9.7%
claim_partapps/projects/profiles.py:3993 ms2.4%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(3 ms2.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms2.4%
QuerySet.get_or_createdjango/db/models/query.py:9871 ms1.2%
QuerySet.getdjango/db/models/query.py:6351 ms1.2%
QuerySet.__len__django/db/models/query.py:3721 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:951 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
QuerySet.get_or_createdjango/db/models/query.py:9941 ms1.2%
QuerySet.createdjango/db/models/query.py:6691 ms1.2%
Model.savedjango/db/models/base.py:8741 ms1.2%
Model.save_basedjango/db/models/base.py:9661 ms1.2%
Model._save_tabledjango/db/models/base.py:11671 ms1.2%
Model._do_insertdjango/db/models/base.py:12181 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.2%
QuerySet._insertdjango/db/models/query.py:19181 ms1.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
claim_partapps/projects/profiles.py:404 commit, _ = Commit.objects.get_or_create(3 ms2.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms2.4%
QuerySet.get_or_createdjango/db/models/query.py:9871 ms1.2%
QuerySet.getdjango/db/models/query.py:6351 ms1.2%
QuerySet.__len__django/db/models/query.py:3721 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:951 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
QuerySet.get_or_createdjango/db/models/query.py:9941 ms1.2%
QuerySet.createdjango/db/models/query.py:6691 ms1.2%
Model.savedjango/db/models/base.py:8741 ms1.2%
Model.save_basedjango/db/models/base.py:9661 ms1.2%
Model._save_tabledjango/db/models/base.py:11671 ms1.2%
Model._do_insertdjango/db/models/base.py:12181 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.2%
QuerySet._insertdjango/db/models/query.py:19181 ms1.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
claim_partapps/projects/profiles.py:379 profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)1 ms1.2%
QuerySet.getdjango/db/models/query.py:6351 ms1.2%
QuerySet.__len__django/db/models/query.py:3721 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:951 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
claim_partapps/projects/profiles.py:380 ProfilePart.objects.filter(pk=part.pk).update(status=ProfilePart.StatusTypes.PENDING)1 ms1.2%
QuerySet.updatedjango/db/models/query.py:13001 ms1.2%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
claim_partapps/projects/profiles.py:397 project = profile.project1 ms1.2%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2571 ms1.2%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2221 ms1.2%
QuerySet.getdjango/db/models/query.py:6351 ms1.2%
QuerySet.__len__django/db/models/query.py:3721 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:951 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms1.2%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7671 ms1.2%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:861 ms1.2%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:751 ms1.2%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3171 ms1.2%
claim_partapps/projects/profiles.py:4671 ms1.2%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)1 ms1.2%
Model.savedjango/db/models/base.py:8741 ms1.2%
Model.save_basedjango/db/models/base.py:9661 ms1.2%
Model._save_tabledjango/db/models/base.py:11101 ms1.2%
Model._do_updatedjango/db/models/base.py:12111 ms1.2%
QuerySet._updatedjango/db/models/query.py:13271 ms1.2%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21401 ms1.2%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
process_profile_partapps/projects/profiles.py:3653 ms2.4%
upsert_testsapps/projects/profiles.py:4723 ms2.4%
TestManager.upsertapps/projects/models.py:2291 ms1.2%
TestManager.slugs_forapps/projects/models.py:242 taken = set(self.filter(project_id=project_id, slug__in=set(new.values())).values_list("slug", flat=True))1 ms1.2%
QuerySet.__iter__django/db/models/query.py:3901 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
FlatValuesListIterable.__iter__django/db/models/query.py:2771 ms1.2%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order1 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.2%
QuerySet.bulk_createdjango/db/models/query.py:8331 ms1.2%
QuerySet._batched_insertdjango/db/models/query.py:19561 ms1.2%
QuerySet._insertdjango/db/models/query.py:19181 ms1.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
process_profile_partapps/projects/profiles.py:3673 ms2.4%
write_snapshotsapps/projects/profiles.py:3331 ms1.2%
write_snapshots.<locals>.<genexpr>apps/projects/profiles.py:3311 ms1.2%
write_snapshots.<locals>.rowapps/projects/profiles.py:329 return [field.get_db_prep_save(value, connection) for field, value in zip(fields, values, strict=True)]1 ms1.2%
Field.get_db_prep_savedjango/db/models/fields/__init__.py:10111 ms1.2%
write_snapshotsapps/projects/profiles.py:334 cursor.executemany(SNAPSHOT_UPSERT, batch)1 ms1.2%
CursorWrapper.executemanydjango/db/backends/utils.py:841 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executemanydjango/db/backends/utils.py:1141 ms1.2%
Cursor.executemanypsycopg/cursor.py:1371 ms1.2%
Connection._pipeline_nolockpsycopg/connection.py:4721 ms1.2%
Pipeline.__exit__psycopg/_pipeline.py:731 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
process_profile_partapps/projects/profiles.py:356 part = ProfilePart.objects.filter(pk=part.pk).first()1 ms1.2%
QuerySet.firstdjango/db/models/query.py:11451 ms1.2%
QuerySet.__iter__django/db/models/query.py:3901 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:951 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
process_profile_partapps/projects/profiles.py:359 or ProfilePart.objects.filter(profile_id=part.profile_id, index=part.index, id__gt=part.id).exists()1 ms1.2%
QuerySet.existsdjango/db/models/query.py:13371 ms1.2%
Query.has_resultsdjango/db/models/sql/query.py:6811 ms1.2%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15921 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
process_profile_partapps/projects/profiles.py:3661 ms1.2%
write_perfsapps/projects/profiles.py:479 TestPerf.objects.bulk_create(1 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.2%
QuerySet.bulk_createdjango/db/models/query.py:8331 ms1.2%
QuerySet._batched_insertdjango/db/models/query.py:19561 ms1.2%
QuerySet._insertdjango/db/models/query.py:19181 ms1.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
process_profileapps/api/tasks.py:25313 ms10.9%
_SharedTaskProxy.__call__potatoq/app.py:76313 ms10.9%
Task.__call__potatoq/task.py:18913 ms10.9%
finalize_profile_partsapps/api/tasks.py:25913 ms10.9%
finalize_profileapps/projects/profiles.py:5174 ms3.6%
add_perfsapps/projects/rollups.py:30 for perf in perfs:1 ms1.2%
QuerySet.__iter__django/db/models/query.py:3901 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:1281 ms1.2%
Model.from_dbdjango/db/models/base.py:6021 ms1.2%
add_perfsapps/projects/rollups.py:64 for row in TestDailyStats.objects.filter(1 ms1.2%
QuerySet.__iter__django/db/models/query.py:3901 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:951 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(1 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.2%
QuerySet.bulk_createdjango/db/models/query.py:8331 ms1.2%
QuerySet._batched_insertdjango/db/models/query.py:19561 ms1.2%
QuerySet._insertdjango/db/models/query.py:19181 ms1.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
finalize_profileapps/projects/profiles.py:500 profile = Profile.objects.select_for_update(no_key=True).get(pk=profile_id)1 ms1.2%
QuerySet.getdjango/db/models/query.py:6351 ms1.2%
QuerySet.__len__django/db/models/query.py:3721 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:951 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms1.2%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3181 ms1.2%
BaseCursor._set_resultspsycopg/_cursor_base.py:5351 ms1.2%
finalize_profileapps/projects/profiles.py:504 for part in ProfilePart.objects.filter(profile=profile).defer("document").order_by("index", "id"):1 ms1.2%
QuerySet.__iter__django/db/models/query.py:3901 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:951 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
finalize_profileapps/projects/profiles.py:5101 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.2%
QuerySet.filterdjango/db/models/query.py:15421 ms1.2%
QuerySet._filter_or_excludedjango/db/models/query.py:15601 ms1.2%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15701 ms1.2%
Query.add_qdjango/db/models/sql/query.py:16711 ms1.2%
Query._add_qdjango/db/models/sql/query.py:17031 ms1.2%
Query.build_filterdjango/db/models/sql/query.py:15981 ms1.2%
finalize_profileapps/projects/profiles.py:513 for duplicate in duplicates:1 ms1.2%
QuerySet.__iter__django/db/models/query.py:3901 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ValuesIterable.__iter__django/db/models/query.py:2221 ms1.2%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms1.2%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:8061 ms1.2%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5781 ms1.2%
WhereNode.as_sqldjango/db/models/sql/where.py:1511 ms1.2%
finalize_profileapps/projects/profiles.py:516 Environment.objects.select_for_update(no_key=True).filter(pk=profile.environment_id).first()1 ms1.2%
QuerySet.firstdjango/db/models/query.py:11451 ms1.2%
QuerySet.__iter__django/db/models/query.py:3901 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:951 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
finalize_profileapps/projects/profiles.py:5251 ms1.2%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)1 ms1.2%
Model.savedjango/db/models/base.py:8741 ms1.2%
Model.save_basedjango/db/models/base.py:9661 ms1.2%
Model._save_tabledjango/db/models/base.py:11101 ms1.2%
Model._do_updatedjango/db/models/base.py:12111 ms1.2%
QuerySet._updatedjango/db/models/query.py:13271 ms1.2%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21401 ms1.2%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)1 ms1.2%
QuerySet.getdjango/db/models/query.py:6351 ms1.2%
QuerySet.__len__django/db/models/query.py:3721 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:951 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
ProfileUploadTest.test_processing_twice_is_safeapps/api/tests.py:89926 ms21.8%
_SharedTaskProxy.__call__potatoq/app.py:76324 ms20.6%
Task.__call__potatoq/task.py:18924 ms20.6%
process_profileapps/api/tasks.py:23923 ms19.4%
process_profile_partapps/projects/profiles.py:3667 ms6.1%
write_perfsapps/projects/profiles.py:479 TestPerf.objects.bulk_create(6 ms4.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:876 ms4.8%
QuerySet.bulk_createdjango/db/models/query.py:8336 ms4.8%
QuerySet._batched_insertdjango/db/models/query.py:19566 ms4.8%
QuerySet._insertdjango/db/models/query.py:19186 ms4.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19256 ms4.8%
CursorWrapper.executedjango/db/backends/utils.py:796 ms4.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:926 ms4.8%
CursorWrapper._executedjango/db/backends/utils.py:1056 ms4.8%
Cursor.executepsycopg/cursor.py:1136 ms4.8%
Connection.waitpsycopg/connection.py:4956 ms4.8%
BaseCursor._execute_genpsycopg/_cursor_base.py:2054 ms3.6%
BaseCursor._convert_querypsycopg/_cursor_base.py:4654 ms3.6%
PostgresClientQuery.convertpsycopg/_queries.py:2894 ms3.6%
PostgresClientQuery.dumppsycopg/_queries.py:2994 ms3.6%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3004 ms3.6%
Dumper.quotepsycopg/adapt.py:594 ms3.6%
ListDumper.dumppsycopg/types/array.py:1574 ms3.6%
<GC>~4 ms3.6%
Atomic.__enter__django/db/transaction.py:2111 ms1.2%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms1.2%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4001 ms1.2%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3661 ms1.2%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms1.2%
process_profile_partapps/projects/profiles.py:363 profile = claim_part(part, document)6 ms4.8%
claim_partapps/projects/profiles.py:383 Environment.objects.select_for_update(no_key=True).filter(pk=profile.environment_id).first()1 ms1.2%
QuerySet.filterdjango/db/models/query.py:15421 ms1.2%
QuerySet._filter_or_excludedjango/db/models/query.py:15601 ms1.2%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15701 ms1.2%
Query.add_qdjango/db/models/sql/query.py:16711 ms1.2%
Query._add_qdjango/db/models/sql/query.py:17031 ms1.2%
Query.build_filterdjango/db/models/sql/query.py:15771 ms1.2%
claim_partapps/projects/profiles.py:397 project = profile.project1 ms1.2%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2571 ms1.2%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2221 ms1.2%
QuerySet.getdjango/db/models/query.py:6351 ms1.2%
QuerySet.__len__django/db/models/query.py:3721 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:951 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
claim_partapps/projects/profiles.py:3991 ms1.2%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(1 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.2%
QuerySet.get_or_createdjango/db/models/query.py:9871 ms1.2%
QuerySet.getdjango/db/models/query.py:6351 ms1.2%
QuerySet.__len__django/db/models/query.py:3721 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:951 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
Atomic.__exit__django/db/transaction.py:2471 ms1.2%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms1.2%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4311 ms1.2%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3751 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
process_profile_partapps/projects/profiles.py:3653 ms2.4%
upsert_testsapps/projects/profiles.py:4723 ms2.4%
TestManager.upsertapps/projects/models.py:2291 ms1.2%
TestManager.slugs_forapps/projects/models.py:242 taken = set(self.filter(project_id=project_id, slug__in=set(new.values())).values_list("slug", flat=True))1 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.2%
QuerySet.filterdjango/db/models/query.py:15421 ms1.2%
QuerySet._filter_or_excludedjango/db/models/query.py:15601 ms1.2%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15701 ms1.2%
Query.add_qdjango/db/models/sql/query.py:16711 ms1.2%
Query._add_qdjango/db/models/sql/query.py:17031 ms1.2%
Query.build_filterdjango/db/models/sql/query.py:16131 ms1.2%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order1 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.2%
QuerySet.bulk_createdjango/db/models/query.py:8331 ms1.2%
QuerySet._batched_insertdjango/db/models/query.py:19561 ms1.2%
QuerySet._insertdjango/db/models/query.py:19181 ms1.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
process_profile_partapps/projects/profiles.py:3673 ms2.4%
write_snapshotsapps/projects/profiles.py:3331 ms1.2%
write_snapshots.<locals>.<genexpr>apps/projects/profiles.py:3311 ms1.2%
write_snapshots.<locals>.rowapps/projects/profiles.py:327 compress(json.dumps(snapshot_document(document, entry), separators=(",", ":")).encode()),1 ms1.2%
dumps<stdlib>/json/__init__.py:2411 ms1.2%
JSONEncoder.encode<stdlib>/json/encoder.py:2021 ms1.2%
JSONEncoder.iterencode<stdlib>/json/encoder.py:2631 ms1.2%
write_snapshotsapps/projects/profiles.py:334 cursor.executemany(SNAPSHOT_UPSERT, batch)1 ms1.2%
CursorWrapper.executemanydjango/db/backends/utils.py:841 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executemanydjango/db/backends/utils.py:1141 ms1.2%
Cursor.executemanypsycopg/cursor.py:1371 ms1.2%
Connection._pipeline_nolockpsycopg/connection.py:4721 ms1.2%
Pipeline.__exit__psycopg/_pipeline.py:731 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
process_profile_partapps/projects/profiles.py:356 part = ProfilePart.objects.filter(pk=part.pk).first()1 ms1.2%
QuerySet.firstdjango/db/models/query.py:11451 ms1.2%
QuerySet.__iter__django/db/models/query.py:3901 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:951 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms1.2%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7671 ms1.2%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:871 ms1.2%
SQLCompiler.get_order_bydjango/db/models/sql/compiler.py:5281 ms1.2%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5781 ms1.2%
process_profile_partapps/projects/profiles.py:359 or ProfilePart.objects.filter(profile_id=part.profile_id, index=part.index, id__gt=part.id).exists()1 ms1.2%
QuerySet.existsdjango/db/models/query.py:13371 ms1.2%
Query.has_resultsdjango/db/models/sql/query.py:6811 ms1.2%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15921 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
process_profile_partapps/projects/profiles.py:368 ProfilePart.objects.filter(pk=part.pk).update(1 ms1.2%
QuerySet.updatedjango/db/models/query.py:13001 ms1.2%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)1 ms1.2%
QuerySet.getdjango/db/models/query.py:6351 ms1.2%
QuerySet.__len__django/db/models/query.py:3721 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:951 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.2%
QuerySet.getdjango/db/models/query.py:6351 ms1.2%
QuerySet.__len__django/db/models/query.py:3721 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:951 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
ProfileUploadTest.test_processing_twice_is_safeapps/api/tests.py:9009 ms7.3%
_SharedTaskProxy.__call__potatoq/app.py:7639 ms7.3%
Task.__call__potatoq/task.py:1899 ms7.3%
finalize_profile_partsapps/api/tasks.py:2597 ms6.1%
finalize_profileapps/projects/profiles.py:5174 ms3.6%
add_perfsapps/projects/rollups.py:30 for perf in perfs:1 ms1.2%
QuerySet.__iter__django/db/models/query.py:3901 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:951 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
add_perfsapps/projects/rollups.py:64 for row in TestDailyStats.objects.filter(1 ms1.2%
QuerySet.__iter__django/db/models/query.py:3901 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:951 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(1 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.2%
QuerySet.bulk_createdjango/db/models/query.py:8161 ms1.2%
QuerySet._batched_insertdjango/db/models/query.py:19561 ms1.2%
QuerySet._insertdjango/db/models/query.py:19181 ms1.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
finalize_profileapps/projects/profiles.py:509 ProfilePart.objects.filter(profile=profile).exclude(pk__in=[part.pk for part in current]).delete()1 ms1.2%
QuerySet.deletedjango/db/models/query.py:12381 ms1.2%
Collector.deletedjango/db/models/deletion.py:4711 ms1.2%
QuerySet._raw_deletedjango/db/models/query.py:12601 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
finalize_profileapps/projects/profiles.py:5251 ms1.2%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)1 ms1.2%
Model.savedjango/db/models/base.py:8741 ms1.2%
Model.save_basedjango/db/models/base.py:9661 ms1.2%
Model._save_tabledjango/db/models/base.py:11101 ms1.2%
Model._do_updatedjango/db/models/base.py:12111 ms1.2%
QuerySet._updatedjango/db/models/query.py:13271 ms1.2%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21401 ms1.2%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
finalize_profile_partsapps/api/tasks.py:2601 ms1.2%
QuerySet.getdjango/db/models/query.py:6351 ms1.2%
QuerySet.__len__django/db/models/query.py:3721 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
FlatValuesListIterable.__iter__django/db/models/query.py:2771 ms1.2%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16621 ms1.2%
cursor_iterdjango/db/models/sql/compiler.py:22541 ms1.2%
TransactionTestCase._pre_setupdjango/test/testcases.py:1164 cls._fixture_setup()1 ms1.2%
TestCase._fixture_setupdjango/test/testcases.py:14781 ms1.2%
TestCase._enter_atomicsdjango/test/testcases.py:13961 ms1.2%
Atomic.__enter__django/db/transaction.py:2111 ms1.2%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms1.2%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4001 ms1.2%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3671 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
ProfileUploadTest.test_processing_twice_is_safeapps/api/tests.py:8971 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.2%
QuerySet.getdjango/db/models/query.py:6351 ms1.2%
QuerySet.__len__django/db/models/query.py:3721 ms1.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.2%
ModelIterable.__iter__django/db/models/query.py:951 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()1 ms1.2%
TestCase._fixture_teardowndjango/test/testcases.py:14951 ms1.2%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4831 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
Estimated from 83 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
|
19 ms |
|
apps/api/urls.py:73
touch_token(request.headers.get("Authorization"))
api_request.<locals>.decorator.<locals>.wrapped_view
· Database
|
16 ms |
|
apps/projects/profiles.py:479
TestPerf.objects.bulk_create(
write_perfs
· Database
|
7 ms |
|
apps/projects/models.py:466
super().save(*args, **kwargs)
Profile.save
· Database
|
6 ms |
|
apps/projects/environments.py:63
obj, created = Environment.objects.get_or_create(
get_or_create_environment
· Database
|
4 ms |
|
apps/api/tasks.py:237
part = ProfilePart.objects.select_related("profile").get(id=part_id)
process_profile
· Database
|
3 ms |
|
apps/projects/profiles.py:356
part = ProfilePart.objects.filter(pk=part.pk).first()
process_profile_part
· Database
|
3 ms |
|
apps/projects/profiles.py:359
or ProfilePart.objects.filter(profile_id=part.profile_id, index=part.index, id__gt=part.id).exists()
process_profile_part
· Database
|
3 ms |
|
apps/projects/profiles.py:397
project = profile.project
claim_part
· Database
|
3 ms |
|
apps/projects/profiles.py:404
commit, _ = Commit.objects.get_or_create(
claim_part
· Database
|
3 ms |
Fixtures
Exact setup time| _django_set_urlconf function | 0.06 ms |
| _dj_autoclear_mailbox function | 0.05 ms |
| _django_db_marker function | 0.04 ms |
| _live_server_helper function | 0.03 ms |
| _template_string_if_invalid_marker function | 0.03 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
102 queries · 41 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
|
113 ms |
|
call _pre_setup
django/test/testcases.py:1164
|
1 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
1 ms |
| call pytest internals | 1 ms |
| setup pytest internals | 0.68 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 | 118 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 68 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 115 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 93 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 140 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 80 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 125 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 121 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 124 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 137 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 76 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 120 ms | Profile |