Tests / apps/api/tests.py
ProfileUploadLockTest::test_upload_while_a_part_is_being_processed
First seen 3 weeks ago in 78a4357
CI
github-actions:test
12 runs
Average
175 ms
median 187 ms
max 234 ms
max 234 ms
Phases
Setup 1 ms
Call 174 ms
Teardown 0.34 ms
Categories
Database 47 ms
App code 0.23 ms
Factories 0.22 ms
Other (DB schema, Libraries, Waiting, Unsampled, ...) 128 ms
86 database queries per run
Needs 222 KB of memory (max 900 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
call177 ms99.1%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()102 ms57.2%
TransactionTestCase._fixture_teardowndjango/test/testcases.py:1275102 ms57.2%
call_commanddjango/core/management/__init__.py:195102 ms57.2%
BaseCommand.executedjango/core/management/base.py:460102 ms57.2%
Command.handledjango/core/management/commands/flush.py:9251 ms28.2%
emit_post_migrate_signaldjango/core/management/sql.py:5251 ms28.2%
Signal.senddjango/dispatch/dispatcher.py:20951 ms28.2%
create_permissionsdjango/contrib/auth/management/__init__.py:6116 ms9.1%
create_contenttypesdjango/contrib/contenttypes/management/__init__.py:1228 ms4.6%
QuerySet.__iter__django/db/models/query.py:3908 ms4.6%
QuerySet._fetch_alldjango/db/models/query.py:20008 ms4.6%
FlatValuesListIterable.__iter__django/db/models/query.py:2778 ms4.6%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15738 ms4.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16247 ms3.8%
CursorWrapper.executedjango/db/backends/utils.py:797 ms3.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:927 ms3.8%
CursorWrapper._executedjango/db/backends/utils.py:1055 ms3.0%
Cursor.executepsycopg/cursor.py:1135 ms3.0%
Connection.waitpsycopg/connection.py:4955 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms0.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7951 ms0.8%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5781 ms0.8%
WhereNode.as_sqldjango/db/models/sql/where.py:1511 ms0.8%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5781 ms0.8%
Exact.as_sqldjango/db/models/lookups.py:4071 ms0.8%
BuiltinLookup.as_sqldjango/db/models/lookups.py:2381 ms0.8%
BuiltinLookup.process_lhsdjango/db/models/lookups.py:2301 ms0.8%
Lookup.process_lhsdjango/db/models/lookups.py:1091 ms0.8%
BaseExpression.resolve_expressiondjango/db/models/expressions.py:2971 ms0.8%
BaseExpression.copydjango/db/models/expressions.py:4441 ms0.8%
copy<stdlib>/copy.py:1001 ms0.8%
create_contenttypesdjango/contrib/contenttypes/management/__init__.py:1327 ms3.8%
QuerySet.bulk_createdjango/db/models/query.py:8337 ms3.8%
QuerySet._batched_insertdjango/db/models/query.py:19567 ms3.8%
QuerySet._insertdjango/db/models/query.py:19187 ms3.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19255 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:795 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:925 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1055 ms3.0%
Cursor.executepsycopg/cursor.py:1135 ms3.0%
Connection.waitpsycopg/connection.py:4955 ms3.0%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19241 ms0.8%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18131 ms0.8%
create_contenttypesdjango/contrib/contenttypes/management/__init__.py:1241 ms0.8%
QuerySet.filterdjango/db/models/query.py:15421 ms0.8%
QuerySet._filter_or_excludedjango/db/models/query.py:15601 ms0.8%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15701 ms0.8%
Query.add_qdjango/db/models/sql/query.py:16711 ms0.8%
Query._add_qdjango/db/models/sql/query.py:17031 ms0.8%
Query.build_filterdjango/db/models/sql/query.py:16131 ms0.8%
Query.build_lookupdjango/db/models/sql/query.py:14301 ms0.8%
create_permissionsdjango/contrib/auth/management/__init__.py:10714 ms7.6%
QuerySet.bulk_createdjango/db/models/query.py:83312 ms6.9%
QuerySet._batched_insertdjango/db/models/query.py:195612 ms6.9%
QuerySet._insertdjango/db/models/query.py:191811 ms6.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:192510 ms5.3%
CursorWrapper.executedjango/db/backends/utils.py:7910 ms5.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9210 ms5.3%
CursorWrapper._executedjango/db/backends/utils.py:10510 ms5.3%
Cursor.executepsycopg/cursor.py:11310 ms5.3%
Connection.waitpsycopg/connection.py:49510 ms5.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19241 ms0.8%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18131 ms0.8%
SQLInsertCompiler.prepare_valuedjango/db/models/sql/compiler.py:17421 ms0.8%
QuerySet.bulk_createdjango/db/models/query.py:8481 ms0.8%
create_permissionsdjango/contrib/auth/management/__init__.py:8010 ms5.3%
ContentTypeManager.get_for_modelsdjango/contrib/contenttypes/models.py:918 ms4.6%
QuerySet.__iter__django/db/models/query.py:3908 ms4.6%
QuerySet._fetch_alldjango/db/models/query.py:20008 ms4.6%
ModelIterable.__iter__django/db/models/query.py:958 ms4.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16247 ms3.8%
CursorWrapper.executedjango/db/backends/utils.py:797 ms3.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:927 ms3.8%
CursorWrapper._executedjango/db/backends/utils.py:1057 ms3.8%
Cursor.executepsycopg/cursor.py:1137 ms3.8%
Connection.waitpsycopg/connection.py:4957 ms3.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms0.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7951 ms0.8%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5781 ms0.8%
create_permissionsdjango/contrib/auth/management/__init__.py:877 ms3.8%
QuerySet.__iter__django/db/models/query.py:3907 ms3.8%
QuerySet._fetch_alldjango/db/models/query.py:20007 ms3.8%
ValuesListIterable.__iter__django/db/models/query.py:2387 ms3.8%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15737 ms3.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16247 ms3.8%
CursorWrapper.executedjango/db/backends/utils.py:797 ms3.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:927 ms3.8%
CursorWrapper._executedjango/db/backends/utils.py:1057 ms3.8%
Cursor.executepsycopg/cursor.py:1137 ms3.8%
Connection.waitpsycopg/connection.py:4957 ms3.8%
create_contenttypesdjango/contrib/contenttypes/management/__init__.py:1224 ms2.3%
QuerySet.__iter__django/db/models/query.py:3904 ms2.3%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms2.3%
FlatValuesListIterable.__iter__django/db/models/query.py:2774 ms2.3%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15734 ms2.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16244 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:794 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:924 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1054 ms2.3%
Cursor.executepsycopg/cursor.py:1134 ms2.3%
Connection.waitpsycopg/connection.py:4954 ms2.3%
Command.handledjango/core/management/commands/flush.py:7445 ms25.2%
BaseDatabaseOperations.execute_sql_flushdjango/db/backends/base/operations.py:46837 ms20.6%
CursorWrapper.executedjango/db/backends/utils.py:7937 ms20.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9237 ms20.6%
CursorWrapper._executedjango/db/backends/utils.py:10337 ms20.6%
Cursor.executepsycopg/cursor.py:11337 ms20.6%
Connection.waitpsycopg/connection.py:49537 ms20.6%
BaseDatabaseOperations.execute_sql_flushdjango/db/backends/base/operations.py:4628 ms4.6%
Atomic.__exit__django/db/transaction.py:2638 ms4.6%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:268 ms4.6%
BaseDatabaseWrapper.commitdjango/db/backends/base/base.py:3278 ms4.6%
BaseDatabaseWrapper._commitdjango/db/backends/base/base.py:3038 ms4.6%
Connection.commitpsycopg/connection.py:3098 ms4.6%
Connection.waitpsycopg/connection.py:4958 ms4.6%
Command.handledjango/core/management/commands/flush.py:524 ms2.3%
sql_flushdjango/core/management/sql.py:114 ms2.3%
BaseDatabaseIntrospection.django_table_namesdjango/db/backends/base/introspection.py:1134 ms2.3%
BaseDatabaseIntrospection.table_namesdjango/db/backends/base/introspection.py:604 ms2.3%
BaseDatabaseIntrospection.table_names.<locals>.get_namesdjango/db/backends/base/introspection.py:544 ms2.3%
DatabaseIntrospection.get_table_listdjango/db/backends/postgresql/introspection.py:584 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:794 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:924 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1034 ms2.3%
Cursor.executepsycopg/cursor.py:1134 ms2.3%
Connection.waitpsycopg/connection.py:4954 ms2.3%
Command.handledjango/core/management/commands/flush.py:483 ms1.5%
import_module<stdlib>/importlib/__init__.py:883 ms1.5%
_gcd_import<frozen importlib._bootstrap>:13893 ms1.5%
_find_and_load<frozen importlib._bootstrap>:13533 ms1.5%
_find_and_load_unlocked<frozen importlib._bootstrap>:12383 ms1.5%
_find_spec<frozen importlib._bootstrap>:11641 ms0.8%
fnmatch<stdlib>/fnmatch.py:391 ms0.8%
fnmatchcase<stdlib>/fnmatch.py:911 ms0.8%
_find_spec<frozen importlib._bootstrap>:11601 ms0.8%
ProfileUploadLockTest.test_upload_while_a_part_is_being_processedapps/api/tests.py:94135 ms19.8%
ProfileUploadLockTest.postapps/api/tests.py:931 return self.client.post(35 ms19.8%
Client.postdjango/test/client.py:115335 ms19.8%
RequestFactory.postdjango/test/client.py:49935 ms19.8%
RequestFactory.genericdjango/test/client.py:67135 ms19.8%
Client.requestdjango/test/client.py:108234 ms19.1%
ClientHandler.__call__django/test/client.py:18618 ms9.9%
BaseHandler.get_responsedjango/core/handlers/base.py:14118 ms9.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms9.1%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13016 ms9.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms9.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30916 ms9.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms9.1%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12316 ms9.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms9.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30916 ms9.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms9.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30916 ms9.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms9.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30916 ms9.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms9.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30916 ms9.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms9.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30916 ms9.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms9.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30916 ms9.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms9.1%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3415 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5515 ms8.4%
BaseHandler._get_responsedjango/core/handlers/base.py:19815 ms8.4%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6515 ms8.4%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:3715 ms8.4%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6415 ms8.4%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:7510 ms5.3%
profile_uploadapps/api/urls.py:1507 ms3.8%
get_or_create_numberedapps/projects/models.py:18 existing = model.objects.filter(project=project, **lookup).first()4 ms2.3%
QuerySet.firstdjango/db/models/query.py:11454 ms2.3%
QuerySet.__iter__django/db/models/query.py:3904 ms2.3%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms2.3%
ModelIterable.__iter__django/db/models/query.py:954 ms2.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16244 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:794 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:924 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1054 ms2.3%
Cursor.executepsycopg/cursor.py:1134 ms2.3%
Connection.waitpsycopg/connection.py:4954 ms2.3%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms0.8%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3181 ms0.8%
BaseCursor._set_resultspsycopg/_cursor_base.py:5351 ms0.8%
BaseCursor._select_current_resultpsycopg/_cursor_base.py:5191 ms0.8%
get_or_create_numberedapps/projects/models.py:211 ms0.8%
next_numberapps/projects/models.py:35 return (model.objects.filter(project_id=project_id).aggregate(last=models.Max("number"))["last"] or 0) + 11 ms0.8%
QuerySet.aggregatedjango/db/models/query.py:5941 ms0.8%
Query.get_aggregationdjango/db/models/sql/query.py:6331 ms0.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.8%
Cursor.executepsycopg/cursor.py:1131 ms0.8%
Connection.waitpsycopg/connection.py:4951 ms0.8%
get_or_create_numberedapps/projects/models.py:23 with transaction.atomic():1 ms0.8%
Atomic.__exit__django/db/transaction.py:2631 ms0.8%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms0.8%
BaseDatabaseWrapper.commitdjango/db/backends/base/base.py:3271 ms0.8%
BaseDatabaseWrapper._commitdjango/db/backends/base/base.py:3031 ms0.8%
Connection.commitpsycopg/connection.py:3091 ms0.8%
Connection.waitpsycopg/connection.py:4951 ms0.8%
profile_uploadapps/api/urls.py:154 part = ProfilePart.objects.create(1 ms0.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms0.8%
QuerySet.createdjango/db/models/query.py:6691 ms0.8%
Model.savedjango/db/models/base.py:8741 ms0.8%
Model.save_basedjango/db/models/base.py:9661 ms0.8%
Model._save_tabledjango/db/models/base.py:11671 ms0.8%
Model._do_insertdjango/db/models/base.py:12181 ms0.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms0.8%
QuerySet._insertdjango/db/models/query.py:19181 ms0.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19241 ms0.8%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18131 ms0.8%
profile_uploadapps/api/urls.py:164 return JsonResponse(1 ms0.8%
JsonResponse.__init__django/http/response.py:7611 ms0.8%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:72 project = get_object_or_404(Project, secrettokens__token=request.headers.get("Authorization"))3 ms1.5%
get_object_or_404django/shortcuts.py:903 ms1.5%
QuerySet.getdjango/db/models/query.py:6353 ms1.5%
QuerySet.__len__django/db/models/query.py:3723 ms1.5%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms1.5%
ModelIterable.__iter__django/db/models/query.py:953 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms0.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7671 ms0.8%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:861 ms0.8%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:751 ms0.8%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:2551 ms0.8%
SQLCompiler.get_default_columnsdjango/db/models/sql/compiler.py:10301 ms0.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.8%
Cursor.executepsycopg/cursor.py:1131 ms0.8%
Connection.waitpsycopg/connection.py:4951 ms0.8%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))3 ms1.5%
touch_tokenapps/api/urls.py:59 SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)3 ms1.5%
QuerySet.__iter__django/db/models/query.py:3901 ms0.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms0.8%
FlatValuesListIterable.__iter__django/db/models/query.py:2771 ms0.8%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms0.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.8%
Cursor.executepsycopg/cursor.py:1131 ms0.8%
Connection.waitpsycopg/connection.py:4951 ms0.8%
QuerySet.updatedjango/db/models/query.py:13001 ms0.8%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms0.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.8%
Cursor.executepsycopg/cursor.py:1131 ms0.8%
Connection.waitpsycopg/connection.py:4951 ms0.8%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:331 ms0.8%
ClientHandler.__call__django/test/client.py:17314 ms7.6%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6212 ms6.9%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10410 ms5.3%
WhiteNoise.add_fileswhitenoise/base.py:10810 ms5.3%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1208 ms4.6%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:1318 ms4.6%
WhiteNoise.get_static_filewhitenoise/base.py:2087 ms3.8%
StaticFile.__init__whitenoise/responders.py:723 ms1.5%
StaticFile.get_file_statswhitenoise/responders.py:1611 ms0.8%
__init____init__:-11 ms0.8%
FileEntry.__init__whitenoise/responders.py:2631 ms0.8%
FileEntry.stat_regular_filewhitenoise/responders.py:2761 ms0.8%
StaticFile.get_file_statswhitenoise/responders.py:1571 ms0.8%
StaticFile.__init__whitenoise/responders.py:761 ms0.8%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1891 ms0.8%
Headers.__getitem__<stdlib>/wsgiref/headers.py:831 ms0.8%
Headers.get<stdlib>/wsgiref/headers.py:1061 ms0.8%
StaticFile.__init__whitenoise/responders.py:731 ms0.8%
StaticFile.get_headerswhitenoise/responders.py:1761 ms0.8%
WhiteNoise.get_static_filewhitenoise/base.py:2031 ms0.8%
WhiteNoise.add_cache_headerswhitenoise/base.py:2241 ms0.8%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1761 ms0.8%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1971 ms0.8%
URLMixin.urldebug_toolbar/panels/staticfiles.py:201 ms0.8%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1151 ms0.8%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:1113 ms1.5%
WhiteNoise.add_fileswhitenoise/base.py:1083 ms1.5%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1203 ms1.5%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:1313 ms1.5%
WhiteNoise.get_static_filewhitenoise/base.py:2083 ms1.5%
StaticFile.__init__whitenoise/responders.py:771 ms0.8%
StaticFile.get_alternativeswhitenoise/responders.py:2001 ms0.8%
StaticFile.__init__whitenoise/responders.py:731 ms0.8%
StaticFile.get_headerswhitenoise/responders.py:1761 ms0.8%
formatdate<stdlib>/email/utils.py:2661 ms0.8%
format_datetime<stdlib>/email/utils.py:2841 ms0.8%
BaseHandler.load_middlewaredjango/core/handlers/base.py:961 ms0.8%
convert_exception_to_responsedjango/core/handlers/exception.py:521 ms0.8%
update_wrapper<stdlib>/functools.py:561 ms0.8%
ClientHandler.__call__django/test/client.py:1761 ms0.8%
Signal.senddjango/dispatch/dispatcher.py:2091 ms0.8%
reset_queriesdjango/db/__init__.py:481 ms0.8%
ClientHandler.__call__django/test/client.py:1771 ms0.8%
Signal.connectdjango/dispatch/dispatcher.py:1101 ms0.8%
iscoroutinefunction<stdlib>/inspect.py:336 return _has_code_flag(obj, CO_COROUTINE) or _has_coroutine_mark(obj)1 ms0.8%
Client.requestdjango/test/client.py:10701 ms0.8%
RequestFactory._base_environdjango/test/client.py:4111 ms0.8%
RequestFactory._base_environ.<locals>.<genexpr>django/test/client.py:4111 ms0.8%
<GC>~1 ms0.8%
ProfileUploadLockTest.setUpapps/api/tests.py:928 self.project = baker.make("projects.Project", secrettokens_set__token=self.secret_token)16 ms9.1%
makemodel_bakery/baker.py:14716 ms9.1%
Baker.makemodel_bakery/baker.py:40616 ms9.1%
Baker._makemodel_bakery/baker.py:47112 ms6.9%
Baker.generate_valuemodel_bakery/baker.py:80011 ms6.1%
gen_relatedmodel_bakery/random_gen.py:27411 ms6.1%
makemodel_bakery/baker.py:14711 ms6.1%
Baker.makemodel_bakery/baker.py:40611 ms6.1%
Baker._makemodel_bakery/baker.py:48211 ms6.1%
Baker.instancemodel_bakery/baker.py:53511 ms6.1%
Model.savedjango/db/models/base.py:87411 ms6.1%
Model.save_basedjango/db/models/base.py:96611 ms6.1%
Model._save_tabledjango/db/models/base.py:116711 ms6.1%
Model._do_insertdjango/db/models/base.py:121811 ms6.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8711 ms6.1%
QuerySet._insertdjango/db/models/query.py:191811 ms6.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:192310 ms5.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:2610 ms5.3%
BaseDatabaseWrapper.cursordjango/db/backends/base/base.py:32010 ms5.3%
BaseDatabaseWrapper._cursordjango/db/backends/base/base.py:29610 ms5.3%
SimpleTestCase.ensure_connection_patch_method.<locals>.patched_ensure_connectiondjango/test/testcases.py:30310 ms5.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:2610 ms5.3%
BaseDatabaseWrapper.ensure_connectiondjango/db/backends/base/base.py:27910 ms5.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:2610 ms5.3%
BaseDatabaseWrapper.connectdjango/db/backends/base/base.py:25610 ms5.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:2610 ms5.3%
DatabaseWrapper.get_new_connectiondjango/db/backends/postgresql/base.py:33310 ms5.3%
Connection.connectpsycopg/connection.py:10910 ms5.3%
wait_connpsycopg/waiting.py:1414 ms2.3%
EpollSelector.select<stdlib>/selectors.py:4524 ms2.3%
wait_connpsycopg/waiting.py:1454 ms2.3%
BaseConnection._connect_genpsycopg/_connection_base.py:4394 ms2.3%
wait_connpsycopg/waiting.py:1371 ms0.8%
_PollLikeSelector.__init__<stdlib>/selectors.py:3371 ms0.8%
_BaseSelectorImpl.__init__<stdlib>/selectors.py:2171 ms0.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms0.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.8%
Cursor.executepsycopg/cursor.py:1131 ms0.8%
Connection.waitpsycopg/connection.py:4951 ms0.8%
Baker.generate_valuemodel_bakery/baker.py:7731 ms0.8%
Baker._makemodel_bakery/baker.py:4421 ms0.8%
Baker.get_fieldsmodel_bakery/baker.py:4241 ms0.8%
ForeignObjectRel.__hash__django/db/models/fields/reverse_related.py:1581 ms0.8%
ManyToOneRel.identitydjango/db/models/fields/reverse_related.py:2941 ms0.8%
Baker._makemodel_bakery/baker.py:4821 ms0.8%
Baker.instancemodel_bakery/baker.py:5351 ms0.8%
Model.savedjango/db/models/base.py:8741 ms0.8%
Model.save_basedjango/db/models/base.py:9661 ms0.8%
Model._save_tabledjango/db/models/base.py:11671 ms0.8%
Model._do_insertdjango/db/models/base.py:12181 ms0.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms0.8%
QuerySet._insertdjango/db/models/query.py:19181 ms0.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms0.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.8%
Cursor.executepsycopg/cursor.py:1131 ms0.8%
Connection.waitpsycopg/connection.py:4951 ms0.8%
Baker._makemodel_bakery/baker.py:4901 ms0.8%
Baker.create_by_related_namemodel_bakery/baker.py:5601 ms0.8%
makemodel_bakery/baker.py:1471 ms0.8%
Baker.makemodel_bakery/baker.py:4061 ms0.8%
Baker._makemodel_bakery/baker.py:4821 ms0.8%
Baker.instancemodel_bakery/baker.py:5351 ms0.8%
Model.savedjango/db/models/base.py:8741 ms0.8%
Model.save_basedjango/db/models/base.py:9661 ms0.8%
Model._save_tabledjango/db/models/base.py:11671 ms0.8%
Model._do_insertdjango/db/models/base.py:12181 ms0.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms0.8%
QuerySet._insertdjango/db/models/query.py:19181 ms0.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms0.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.8%
Cursor.executepsycopg/cursor.py:1131 ms0.8%
Connection.waitpsycopg/connection.py:4951 ms0.8%
ProfileUploadLockTest.test_upload_while_a_part_is_being_processedapps/api/tests.py:957 locked.wait(10)15 ms8.4%
Event.wait<stdlib>/threading.py:66515 ms8.4%
Condition.wait<stdlib>/threading.py:37015 ms8.4%
ProfileUploadLockTest.test_upload_while_a_part_is_being_processedapps/api/tests.py:9627 ms3.8%
ProfileUploadLockTest.postapps/api/tests.py:931 return self.client.post(7 ms3.8%
Client.postdjango/test/client.py:11537 ms3.8%
RequestFactory.postdjango/test/client.py:4997 ms3.8%
RequestFactory.genericdjango/test/client.py:6717 ms3.8%
Client.requestdjango/test/client.py:10827 ms3.8%
ClientHandler.__call__django/test/client.py:1867 ms3.8%
BaseHandler.get_responsedjango/core/handlers/base.py:1417 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms3.8%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1307 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms3.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms3.8%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1237 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms3.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms3.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms3.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms3.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms3.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms3.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms3.8%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:347 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms3.8%
BaseHandler._get_responsedjango/core/handlers/base.py:1987 ms3.8%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:657 ms3.8%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:377 ms3.8%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:647 ms3.8%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:755 ms3.0%
profile_uploadapps/api/urls.py:1504 ms2.3%
get_or_create_numberedapps/projects/models.py:18 existing = model.objects.filter(project=project, **lookup).first()4 ms2.3%
QuerySet.firstdjango/db/models/query.py:11453 ms1.5%
QuerySet.__iter__django/db/models/query.py:3903 ms1.5%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms1.5%
ModelIterable.__iter__django/db/models/query.py:953 ms1.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16623 ms1.5%
cursor_iterdjango/db/models/sql/compiler.py:22543 ms1.5%
cursor_iter.<locals>.<lambda>django/db/models/sql/compiler.py:22543 ms1.5%
DatabaseErrorWrapper.__call__.<locals>.innerdjango/db/utils.py:1011 ms0.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.8%
Cursor.executepsycopg/cursor.py:1131 ms0.8%
Connection.waitpsycopg/connection.py:4951 ms0.8%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms0.8%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3181 ms0.8%
BaseCursor._set_resultspsycopg/_cursor_base.py:5351 ms0.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms0.8%
QuerySet.filterdjango/db/models/query.py:15421 ms0.8%
QuerySet._filter_or_excludedjango/db/models/query.py:15601 ms0.8%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15701 ms0.8%
Query.add_qdjango/db/models/sql/query.py:16711 ms0.8%
Query._add_qdjango/db/models/sql/query.py:17031 ms0.8%
Query.build_filterdjango/db/models/sql/query.py:15991 ms0.8%
Query.trim_joinsdjango/db/models/sql/query.py:20071 ms0.8%
profile_uploadapps/api/urls.py:154 part = ProfilePart.objects.create(1 ms0.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms0.8%
QuerySet.createdjango/db/models/query.py:6691 ms0.8%
Model.savedjango/db/models/base.py:8741 ms0.8%
Model.save_basedjango/db/models/base.py:9661 ms0.8%
Model._save_tabledjango/db/models/base.py:11671 ms0.8%
Model._do_insertdjango/db/models/base.py:12181 ms0.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms0.8%
QuerySet._insertdjango/db/models/query.py:19181 ms0.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms0.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.8%
Cursor.executepsycopg/cursor.py:1131 ms0.8%
Connection.waitpsycopg/connection.py:4951 ms0.8%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))1 ms0.8%
touch_tokenapps/api/urls.py:59 SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)1 ms0.8%
QuerySet.__iter__django/db/models/query.py:3901 ms0.8%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms0.8%
FlatValuesListIterable.__iter__django/db/models/query.py:2771 ms0.8%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms0.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.8%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.8%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.8%
Cursor.executepsycopg/cursor.py:1131 ms0.8%
Connection.waitpsycopg/connection.py:4951 ms0.8%
ProfileUploadLockTest.test_upload_while_a_part_is_being_processedapps/api/tests.py:9391 ms0.8%
make_profile_documentapps/projects/testing.py:-11 ms0.8%
Estimated from 130 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/api/tests.py:931
return self.client.post(
ProfileUploadLockTest.post
· Libraries
|
20 ms |
|
apps/api/tests.py:928
self.project = baker.make("projects.Project", secrettokens_set__token=self.secret_token)
ProfileUploadLockTest.setUp
· Database
|
16 ms |
|
apps/api/tests.py:957
locked.wait(10)
ProfileUploadLockTest.test_upload_while_a_part_is_being_processed
· Waiting
|
15 ms |
|
apps/projects/models.py:18
existing = model.objects.filter(project=project, **lookup).first()
get_or_create_numbered
· Database
|
8 ms |
|
apps/api/urls.py:59
SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)
touch_token
· Database
|
4 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
|
3 ms |
|
apps/api/urls.py:154
part = ProfilePart.objects.create(
profile_upload
· Database
|
3 ms |
|
apps/projects/testing.py:-1
make_profile_document
· App code
|
1 ms |
|
apps/projects/models.py:35
return (model.objects.filter(project_id=project_id).aggregate(last=models.Max("number"))["last"] or 0) + 1
next_number
· Database
|
1 ms |
|
apps/projects/models.py:23
with transaction.atomic():
get_or_create_numbered
· Database
|
1 ms |
Fixtures
Exact setup time| _django_setup_unittest class | 0.28 ms |
| _unittest_setUpClass_fixture_ProfileUploadLockTest class | 0.12 ms |
| _live_server_helper function | 0.06 ms |
| _template_string_if_invalid_marker function | 0.05 ms |
| _django_db_marker function | 0.04 ms |
| _django_set_urlconf function | 0.04 ms |
| _dj_autoclear_mailbox function | 0.03 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
86 queries · 72 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
20×
SELECT "django_content_type"."model" AS "model" FROM "django_content_type" WHERE "django_content_type"."app_label" = %s
10×
SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = %s AND "django_content_type"."model" IN (…))
10×
SELECT "auth_permission"."content_type_id" AS "content_type", "auth_permission"."codename" AS "codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (…) ORDER BY "django_co…
10×
INSERT INTO "auth_permission" ("name", "content_type_id", "codename") SELECT * FROM UNNEST((%s)::varchar(?)[], (%s)::integer[], (%s)::varchar(?)[]) RETURNING "auth_permission"."id"
6×
INSERT INTO "django_content_type" ("app_label", "model") SELECT * FROM UNNEST((%s)::varchar(?)[], (%s)::varchar(?)[]) RETURNING "django_content_type"."id"
Biggest pieces of work
|
call _post_teardown
django/test/testcases.py:1240
|
102 ms |
|
call test body
apps/api/tests.py:957
|
59 ms |
|
call setUp
apps/api/tests.py:928
|
16 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 | 179 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 113 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 188 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 153 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 207 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 134 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 201 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 191 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 196 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 234 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 122 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 186 ms | Profile |