Tests / apps/projects/tests.py
UnstorableCharactersTest::test_test_page_renders_a_stored_lone_surrogate
First seen 2 weeks, 1 day ago in afde85b
CI
github-actions:test
3 runs
Average
80 ms
median 87 ms
max 91 ms
max 91 ms
Phases
Setup 0.74 ms
Call 78 ms
Teardown 1 ms
Categories
Database 51 ms
Other (Libraries, Templates, Unsampled, pytest) 29 ms
47 database queries per run
Needs 396 KB of memory (max 616 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
call89 ms97.8%
UnstorableCharactersTest.test_test_page_renders_a_stored_lone_surrogateapps/projects/tests.py:1325 response = self.client.get(self.project.url("project_test", self.test.slug), {"frames": "all"})64 ms70.1%
Client.getdjango/test/client.py:112464 ms70.1%
RequestFactory.getdjango/test/client.py:47564 ms70.1%
RequestFactory.genericdjango/test/client.py:67164 ms70.1%
Client.requestdjango/test/client.py:108264 ms70.1%
ClientHandler.__call__django/test/client.py:18640 ms44.0%
BaseHandler.get_responsedjango/core/handlers/base.py:14140 ms44.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5540 ms44.0%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13040 ms44.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5540 ms44.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30940 ms44.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5540 ms44.0%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12340 ms44.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5540 ms44.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30940 ms44.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5540 ms44.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30940 ms44.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5540 ms44.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30940 ms44.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5540 ms44.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30940 ms44.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5540 ms44.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30940 ms44.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5540 ms44.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30940 ms44.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5540 ms44.0%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3440 ms44.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5540 ms44.0%
BaseHandler._get_responsedjango/core/handlers/base.py:19840 ms44.0%
project_testapps/projects/urls.py:3117 ms8.1%
history_for_testapps/projects/analytics.py:806 for perf in TestPerf.objects.filter(test=test)4 ms4.9%
QuerySet.__iter__django/db/models/query.py:3904 ms4.9%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms4.9%
ModelIterable.__iter__django/db/models/query.py:954 ms4.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms3.3%
CursorWrapper.executedjango/db/backends/utils.py:793 ms3.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms3.3%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms3.3%
Cursor.executepsycopg/cursor.py:1133 ms3.3%
Connection.waitpsycopg/connection.py:4953 ms3.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms1.6%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7671 ms1.6%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:861 ms1.6%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:751 ms1.6%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3171 ms1.6%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5781 ms1.6%
Col.as_sqldjango/db/models/expressions.py:13251 ms1.6%
SQLCompiler.quote_name_unless_aliasdjango/db/backends/postgresql/compiler.py:341 ms1.6%
SQLCompiler.quote_name_unless_aliasdjango/db/models/sql/compiler.py:5691 ms1.6%
history_for_testapps/projects/analytics.py:819 TestRun.objects.filter(test=test)3 ms3.3%
QuerySet.__iter__django/db/models/query.py:3903 ms3.3%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms3.3%
ModelIterable.__iter__django/db/models/query.py:953 ms3.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms3.3%
CursorWrapper.executedjango/db/backends/utils.py:793 ms3.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms3.3%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms3.3%
Cursor.executepsycopg/cursor.py:1133 ms3.3%
Connection.waitpsycopg/connection.py:4953 ms3.3%
project_testapps/projects/urls.py:2827 ms8.1%
find_projectapps/projects/urls.py:524 ms4.9%
can_viewapps/projects/urls.py:334 ms4.9%
can_manage_projectapps/projects/urls.py:38 if not user.is_authenticated:3 ms3.3%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2513 ms3.3%
SimpleLazyObject._setupdjango/utils/functional.py:4043 ms3.3%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:403 ms3.3%
get_userdjango/contrib/auth/middleware.py:203 ms3.3%
get_userdjango/contrib/auth/__init__.py:3111 ms1.6%
_get_user_session_keydjango/contrib/auth/__init__.py:951 ms1.6%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:551 ms1.6%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2511 ms1.6%
SessionStore.loaddjango/contrib/sessions/backends/db.py:551 ms1.6%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:341 ms1.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.6%
QuerySet.getdjango/db/models/query.py:6351 ms1.6%
QuerySet.__len__django/db/models/query.py:3721 ms1.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.6%
ModelIterable.__iter__django/db/models/query.py:951 ms1.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
BaseCursor._execute_genpsycopg/_cursor_base.py:2051 ms1.6%
BaseCursor._convert_querypsycopg/_cursor_base.py:4651 ms1.6%
PostgresClientQuery.convertpsycopg/_queries.py:2891 ms1.6%
PostgresClientQuery.dumppsycopg/_queries.py:2991 ms1.6%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3001 ms1.6%
get_userdjango/contrib/auth/__init__.py:3181 ms1.6%
ModelBackend.get_userdjango/contrib/auth/backends.py:2321 ms1.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.6%
QuerySet.getdjango/db/models/query.py:6351 ms1.6%
QuerySet.__len__django/db/models/query.py:3721 ms1.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.6%
ModelIterable.__iter__django/db/models/query.py:951 ms1.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
can_manage_projectapps/projects/urls.py:40 return user.is_superuser or project.organization.membership_set.filter(user=user).exists()1 ms1.6%
QuerySet.existsdjango/db/models/query.py:13371 ms1.6%
Query.has_resultsdjango/db/models/sql/query.py:6811 ms1.6%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15921 ms1.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
find_projectapps/projects/urls.py:49 project = get_object_or_404(3 ms3.3%
get_object_or_404django/shortcuts.py:903 ms3.3%
QuerySet.getdjango/db/models/query.py:6251 ms1.6%
QuerySet.filterdjango/db/models/query.py:15421 ms1.6%
QuerySet._filter_or_excludedjango/db/models/query.py:15601 ms1.6%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15701 ms1.6%
Query.add_qdjango/db/models/sql/query.py:16711 ms1.6%
Query._add_qdjango/db/models/sql/query.py:17031 ms1.6%
Query.build_filterdjango/db/models/sql/query.py:15921 ms1.6%
QuerySet.getdjango/db/models/query.py:6351 ms1.6%
QuerySet.__len__django/db/models/query.py:3721 ms1.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.6%
ModelIterable.__iter__django/db/models/query.py:951 ms1.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
project_testapps/projects/urls.py:3127 ms8.1%
flakiness_for_testapps/projects/flakiness.py:326 history = observations_for(test.project, [test.id], since).get(test.id, [])7 ms8.1%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2571 ms1.6%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2221 ms1.6%
QuerySet.getdjango/db/models/query.py:6351 ms1.6%
QuerySet.__len__django/db/models/query.py:3721 ms1.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.6%
ModelIterable.__iter__django/db/models/query.py:951 ms1.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
observations_forapps/projects/flakiness.py:165 test_runs = list(test_runs)1 ms1.6%
QuerySet.__iter__django/db/models/query.py:3901 ms1.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.6%
ValuesListIterable.__iter__django/db/models/query.py:2381 ms1.6%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms1.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
BaseCursor._execute_genpsycopg/_cursor_base.py:2051 ms1.6%
BaseCursor._convert_querypsycopg/_cursor_base.py:4651 ms1.6%
PostgresClientQuery.convertpsycopg/_queries.py:2891 ms1.6%
PostgresClientQuery.dumppsycopg/_queries.py:2991 ms1.6%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3001 ms1.6%
observations_forapps/projects/flakiness.py:179 perfs = TestPerf.objects.filter(1 ms1.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.6%
QuerySet.filterdjango/db/models/query.py:15421 ms1.6%
QuerySet._filter_or_excludedjango/db/models/query.py:15601 ms1.6%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15701 ms1.6%
Query.add_qdjango/db/models/sql/query.py:16711 ms1.6%
Query._add_qdjango/db/models/sql/query.py:17031 ms1.6%
observations_forapps/projects/flakiness.py:186 perfs = list(perfs)1 ms1.6%
QuerySet.__iter__django/db/models/query.py:3901 ms1.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.6%
ValuesListIterable.__iter__django/db/models/query.py:2381 ms1.6%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms1.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
observations_forapps/projects/flakiness.py:189 for row in Profile.objects.filter(id__in={row[3] for row in perfs}).values_list(1 ms1.6%
QuerySet.__iter__django/db/models/query.py:3901 ms1.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.6%
ValuesListIterable.__iter__django/db/models/query.py:2381 ms1.6%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms1.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
project_testapps/projects/urls.py:2954 ms4.9%
latest_perfapps/projects/analytics.py:846 return perfs.select_related("profile", "environment").order_by("-date").first()3 ms3.3%
QuerySet.firstdjango/db/models/query.py:11453 ms3.3%
QuerySet.__iter__django/db/models/query.py:3903 ms3.3%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms3.3%
ModelIterable.__iter__django/db/models/query.py:953 ms3.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms3.3%
CursorWrapper.executedjango/db/backends/utils.py:793 ms3.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms3.3%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms1.6%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2861 ms1.6%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:781 ms1.6%
latest_perfapps/projects/analytics.py:843 perfs = TestPerf.objects.filter(test=test).exclude(outcome="skipped")1 ms1.6%
QuerySet.excludedjango/db/models/query.py:15501 ms1.6%
QuerySet._filter_or_excludedjango/db/models/query.py:15601 ms1.6%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15681 ms1.6%
Query.add_qdjango/db/models/sql/query.py:16711 ms1.6%
project_testapps/projects/urls.py:342 return render(request, "project_test.html", context)4 ms4.9%
renderdjango/shortcuts.py:254 ms4.9%
render_to_stringdjango/template/loader.py:624 ms4.9%
Template.renderdjango/template/backends/django.py:1074 ms4.9%
Template.renderdjango/template/base.py:1744 ms4.9%
instrumented_test_renderdjango/test/utils.py:1144 ms4.9%
NodeList.renderdjango/template/base.py:10914 ms4.9%
Node.render_annotateddjango/template/base.py:10524 ms4.9%
ExtendsNode.renderdjango/template/loader_tags.py:1604 ms4.9%
instrumented_test_renderdjango/test/utils.py:1144 ms4.9%
NodeList.renderdjango/template/base.py:10914 ms4.9%
Node.render_annotateddjango/template/base.py:10524 ms4.9%
ExtendsNode.renderdjango/template/loader_tags.py:1604 ms4.9%
instrumented_test_renderdjango/test/utils.py:1144 ms4.9%
NodeList.renderdjango/template/base.py:10914 ms4.9%
Node.render_annotateddjango/template/base.py:10524 ms4.9%
BlockNode.renderdjango/template/loader_tags.py:664 ms4.9%
NodeList.renderdjango/template/base.py:10914 ms4.9%
Node.render_annotateddjango/template/base.py:10524 ms4.9%
BlockNode.renderdjango/template/loader_tags.py:664 ms4.9%
NodeList.renderdjango/template/base.py:10914 ms4.9%
Node.render_annotateddjango/template/base.py:10524 ms4.9%
IfNode.renderdjango/template/defaulttags.py:3333 ms3.3%
NodeList.renderdjango/template/base.py:10913 ms3.3%
Node.render_annotateddjango/template/base.py:10523 ms3.3%
ForNode.renderdjango/template/defaulttags.py:2493 ms3.3%
Node.render_annotateddjango/template/base.py:10523 ms3.3%
IncludeNode.renderdjango/template/loader_tags.py:2111 ms1.6%
Template.renderdjango/template/base.py:1761 ms1.6%
instrumented_test_renderdjango/test/utils.py:1141 ms1.6%
NodeList.renderdjango/template/base.py:10911 ms1.6%
Node.render_annotateddjango/template/base.py:10521 ms1.6%
ForNode.renderdjango/template/defaulttags.py:2491 ms1.6%
Node.render_annotateddjango/template/base.py:10521 ms1.6%
IfNode.renderdjango/template/defaulttags.py:3261 ms1.6%
prefix.<locals>.Operator.evaldjango/template/smartif.py:881 ms1.6%
<lambda>django/template/smartif.py:1011 ms1.6%
TemplateLiteral.evaldjango/template/defaulttags.py:9181 ms1.6%
FilterExpression.resolvedjango/template/base.py:7881 ms1.6%
Variable.resolvedjango/template/base.py:9281 ms1.6%
Variable._resolve_lookupdjango/template/base.py:9651 ms1.6%
BaseContext.__getitem__django/template/context.py:901 ms1.6%
IfNode.renderdjango/template/defaulttags.py:3261 ms1.6%
TemplateLiteral.evaldjango/template/defaulttags.py:9181 ms1.6%
FilterExpression.resolvedjango/template/base.py:7881 ms1.6%
Variable.resolvedjango/template/base.py:9281 ms1.6%
Variable._resolve_lookupdjango/template/base.py:9761 ms1.6%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2571 ms1.6%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2221 ms1.6%
QuerySet.getdjango/db/models/query.py:6351 ms1.6%
QuerySet.__len__django/db/models/query.py:3721 ms1.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.6%
ModelIterable.__iter__django/db/models/query.py:951 ms1.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
project_testapps/projects/urls.py:286 context = shell(request, project, "tests") | filters(request, project, default_days=90)3 ms3.3%
shellapps/projects/urls.py:731 ms1.6%
can_manageapps/projects/urls.py:441 ms1.6%
can_manage_projectapps/projects/urls.py:40 return user.is_superuser or project.organization.membership_set.filter(user=user).exists()1 ms1.6%
QuerySet.existsdjango/db/models/query.py:13371 ms1.6%
Query.has_resultsdjango/db/models/sql/query.py:6811 ms1.6%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15921 ms1.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16221 ms1.6%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms1.6%
BaseDatabaseWrapper.cursordjango/db/backends/base/base.py:3201 ms1.6%
filtersapps/projects/urls.py:80 environments = list(Environment.objects.filter(project=project).order_by("kind", "name"))1 ms1.6%
QuerySet.__iter__django/db/models/query.py:3901 ms1.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.6%
ModelIterable.__iter__django/db/models/query.py:951 ms1.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
project_testapps/projects/urls.py:285 test = get_object_or_404(Test, slug=test_slug, project=project)1 ms1.6%
get_object_or_404django/shortcuts.py:901 ms1.6%
QuerySet.getdjango/db/models/query.py:6351 ms1.6%
QuerySet.__len__django/db/models/query.py:3721 ms1.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.6%
ModelIterable.__iter__django/db/models/query.py:1271 ms1.6%
project_testapps/projects/urls.py:2881 ms1.6%
environment_slotsapps/projects/analytics.py:214 return {env_id: index + 1 if index < MAX_ENVIRONMENT_SLOTS else 0 for index, env_id in enumerate(environments)}1 ms1.6%
QuerySet.__iter__django/db/models/query.py:3901 ms1.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.6%
FlatValuesListIterable.__iter__django/db/models/query.py:2771 ms1.6%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms1.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
project_testapps/projects/urls.py:2891 ms1.6%
environment_stats_for_testapps/projects/analytics.py:748 for perf in TestPerf.objects.filter(test=test, date__gte=since).select_related("environment").order_by("date"):1 ms1.6%
QuerySet.__iter__django/db/models/query.py:3901 ms1.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.6%
ModelIterable.__iter__django/db/models/query.py:951 ms1.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
project_testapps/projects/urls.py:3001 ms1.6%
latest_documentapps/projects/profiles.py:303 ).first()1 ms1.6%
QuerySet.firstdjango/db/models/query.py:11451 ms1.6%
QuerySet.__iter__django/db/models/query.py:3901 ms1.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.6%
ModelIterable.__iter__django/db/models/query.py:951 ms1.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
ClientHandler.__call__django/test/client.py:17324 ms26.1%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6224 ms26.1%
__init____init__:-124 ms26.1%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10422 ms24.4%
WhiteNoise.add_fileswhitenoise/base.py:10822 ms24.4%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12019 ms21.2%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13118 ms19.6%
WhiteNoise.get_static_filewhitenoise/base.py:20813 ms14.7%
StaticFile.__init__whitenoise/responders.py:776 ms6.5%
StaticFile.get_alternativeswhitenoise/responders.py:2004 ms4.9%
__init____init__:-13 ms3.3%
Headers.__init__<stdlib>/wsgiref/headers.py:441 ms1.6%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:501 ms1.6%
StaticFile.__init__whitenoise/responders.py:723 ms3.3%
StaticFile.get_file_statswhitenoise/responders.py:1591 ms1.6%
StaticFile.get_alternativeswhitenoise/responders.py:2001 ms1.6%
__init____init__:-11 ms1.6%
StaticFile.__init__whitenoise/responders.py:763 ms3.3%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1893 ms3.3%
Headers.__getitem__<stdlib>/wsgiref/headers.py:833 ms3.3%
Headers.get<stdlib>/wsgiref/headers.py:1041 ms1.6%
Headers.get<stdlib>/wsgiref/headers.py:1061 ms1.6%
WhiteNoise.get_static_filewhitenoise/base.py:2023 ms3.3%
WhiteNoise.add_mime_headerswhitenoise/base.py:2211 ms1.6%
WhiteNoise.get_static_filewhitenoise/base.py:2011 ms1.6%
__init____init__:-11 ms1.6%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1153 ms3.3%
scantreewhitenoise/base.py:2623 ms3.3%
scantreewhitenoise/base.py:2623 ms3.3%
scantreewhitenoise/base.py:2623 ms3.3%
scantreewhitenoise/base.py:2621 ms1.6%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:1111 ms1.6%
WhiteNoise.add_fileswhitenoise/base.py:1081 ms1.6%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1151 ms1.6%
scantreewhitenoise/base.py:2641 ms1.6%
UnstorableCharactersTest.setUpapps/projects/tests.py:1309 self.client.force_login(self.user)19 ms21.2%
ClientMixin.force_logindjango/test/client.py:85519 ms21.2%
ClientMixin._logindjango/test/client.py:88118 ms19.6%
logindjango/contrib/auth/__init__.py:18716 ms17.9%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:43716 ms17.9%
SessionStore.deletedjango/contrib/sessions/backends/db.py:17516 ms17.9%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8713 ms14.7%
QuerySet.getdjango/db/models/query.py:63513 ms14.7%
QuerySet.__len__django/db/models/query.py:37213 ms14.7%
QuerySet._fetch_alldjango/db/models/query.py:200013 ms14.7%
ModelIterable.__iter__django/db/models/query.py:9513 ms14.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:162413 ms14.7%
CursorWrapper.executedjango/db/backends/utils.py:7913 ms14.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9213 ms14.7%
CursorWrapper._executedjango/db/backends/utils.py:10513 ms14.7%
Cursor.executepsycopg/cursor.py:11313 ms14.7%
Connection.waitpsycopg/connection.py:49513 ms14.7%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms1.6%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3181 ms1.6%
Model.deletedjango/db/models/base.py:12983 ms3.3%
Collector.deletedjango/db/models/deletion.py:4523 ms3.3%
DeleteQuery.delete_batchdjango/db/models/sql/subqueries.py:411 ms1.6%
DeleteQuery.delete_batchdjango/db/models/sql/subqueries.py:391 ms1.6%
Query.add_filterdjango/db/models/sql/query.py:16511 ms1.6%
Query.add_qdjango/db/models/sql/query.py:16711 ms1.6%
Query._add_qdjango/db/models/sql/query.py:17031 ms1.6%
Query.build_filterdjango/db/models/sql/query.py:15991 ms1.6%
Query.trim_joinsdjango/db/models/sql/query.py:20071 ms1.6%
logindjango/contrib/auth/__init__.py:1971 ms1.6%
Signal.senddjango/dispatch/dispatcher.py:2091 ms1.6%
update_last_logindjango/contrib/auth/models.py:241 ms1.6%
AbstractBaseUser.savedjango/contrib/auth/base_user.py:621 ms1.6%
Model.savedjango/db/models/base.py:8741 ms1.6%
Model.save_basedjango/db/models/base.py:9661 ms1.6%
Model._save_tabledjango/db/models/base.py:11101 ms1.6%
Model._do_updatedjango/db/models/base.py:12111 ms1.6%
QuerySet._updatedjango/db/models/query.py:13271 ms1.6%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21401 ms1.6%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms1.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.6%
ClientMixin._logindjango/test/client.py:8831 ms1.6%
SessionStore.savedjango/contrib/sessions/backends/db.py:1271 ms1.6%
Model.savedjango/db/models/base.py:8741 ms1.6%
Model.save_basedjango/db/models/base.py:9661 ms1.6%
Model._save_tabledjango/db/models/base.py:11101 ms1.6%
Model._do_updatedjango/db/models/base.py:12111 ms1.6%
QuerySet._updatedjango/db/models/query.py:13271 ms1.6%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21401 ms1.6%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms1.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()3 ms3.3%
TestCase._fixture_teardowndjango/test/testcases.py:14951 ms1.6%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4831 ms1.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.6%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
TestCase._fixture_teardowndjango/test/testcases.py:14971 ms1.6%
TestCase._rollback_atomicsdjango/test/testcases.py:14051 ms1.6%
Atomic.__exit__django/db/transaction.py:2831 ms1.6%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms1.6%
BaseDatabaseWrapper.savepoint_rollbackdjango/db/backends/base/base.py:4131 ms1.6%
BaseDatabaseWrapper._savepoint_rollbackdjango/db/backends/base/base.py:3711 ms1.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.6%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
UnstorableCharactersTest.test_test_page_renders_a_stored_lone_surrogateapps/projects/tests.py:13211 ms1.6%
UnstorableCharactersTest.snapshotapps/projects/tests.py:1312 return TestSnapshot.objects.get(test=self.test)1 ms1.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.6%
QuerySet.getdjango/db/models/query.py:6351 ms1.6%
QuerySet.__len__django/db/models/query.py:3721 ms1.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.6%
ModelIterable.__iter__django/db/models/query.py:951 ms1.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
UnstorableCharactersTest.test_test_page_renders_a_stored_lone_surrogateapps/projects/tests.py:1324 TestSnapshot.objects.filter(pk=snapshot.pk).update(document=compress(json.dumps(document).encode()))1 ms1.6%
QuerySet.updatedjango/db/models/query.py:13001 ms1.6%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms1.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.6%
Cursor.executepsycopg/cursor.py:1131 ms1.6%
Connection.waitpsycopg/connection.py:4951 ms1.6%
Estimated from 60 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/projects/tests.py:1325
response = self.client.get(self.project.url("project_test", self.test.slug), {"frames": "all"})
UnstorableCharactersTest.test_test_page_renders_a_stored_lone_surrogate
· Libraries
|
24 ms |
|
apps/projects/tests.py:1309
self.client.force_login(self.user)
UnstorableCharactersTest.setUp
· Database
|
19 ms |
|
apps/projects/analytics.py:806
for perf in TestPerf.objects.filter(test=test)
history_for_test
· Database
|
4 ms |
|
apps/projects/urls.py:342
return render(request, "project_test.html", context)
project_test
· Templates
|
4 ms |
|
apps/projects/analytics.py:819
TestRun.objects.filter(test=test)
history_for_test
· Database
|
3 ms |
|
apps/projects/urls.py:49
project = get_object_or_404(
find_project
· Database
|
3 ms |
|
apps/projects/urls.py:38
if not user.is_authenticated:
can_manage_project
· Database
|
3 ms |
|
apps/projects/urls.py:40
return user.is_superuser or project.organization.membership_set.filter(user=user).exists()
can_manage_project
· Database
|
3 ms |
|
apps/projects/analytics.py:846
return perfs.select_related("profile", "environment").order_by("-date").first()
latest_perf
· Database
|
3 ms |
|
apps/projects/tests.py:1312
return TestSnapshot.objects.get(test=self.test)
UnstorableCharactersTest.snapshot
· Database
|
1 ms |
Fixtures
Exact setup time| _django_set_urlconf function | 0.36 ms |
| _template_string_if_invalid_marker function | 0.06 ms |
| _dj_autoclear_mailbox function | 0.05 ms |
| _django_db_marker function | 0.05 ms |
| _live_server_helper function | 0.05 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.03 ms |
Database
47 queries · 20 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
3×
SELECT "projects_testperf"."id", "projects_testperf"."project_id", "projects_testperf"."test_id", "projects_testperf"."profile_id", "projects_testperf"."part", "projects_testperf"."environment_id", "projects_testperf"."outcome", "projects_testperf"."duration", "projects_testperf"."setup", "projects…
Biggest pieces of work
|
call test body
apps/projects/tests.py:1325
|
67 ms |
|
call setUp
apps/projects/tests.py:1309
|
19 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
3 ms |
Reliability
3 results · 0 CI failures · 0 local failuresThis test hasn't failed recently.