Tests / apps/projects/tests.py
TestProjectTestPage::test_project_test_page
First seen 2 years, 9 months ago in d87c7a8
CI
github-actions:test
5 runs
Average
82 ms
median 87 ms
max 96 ms
max 96 ms
Phases
Setup 0.70 ms
Call 81 ms
Teardown 0.16 ms
Categories
Database 45 ms
App code 1 ms
Other (Libraries, Templates, Unsampled, Deep copies) 36 ms
42 database queries per run
Needs 240 KB of memory (max 368 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, an hour ago ·
open run
call86 ms98.9%
TestProjectTestPage.test_project_test_pageapps/projects/tests.py:428 response = self.client.get(self.url)74 ms85.1%
Client.getdjango/test/client.py:112474 ms85.1%
RequestFactory.getdjango/test/client.py:47574 ms85.1%
RequestFactory.genericdjango/test/client.py:67174 ms85.1%
Client.requestdjango/test/client.py:108274 ms85.1%
ClientHandler.__call__django/test/client.py:18650 ms57.5%
BaseHandler.get_responsedjango/core/handlers/base.py:14150 ms57.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5550 ms57.5%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13050 ms57.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5550 ms57.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30950 ms57.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5550 ms57.5%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12350 ms57.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5550 ms57.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30948 ms55.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5548 ms55.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30948 ms55.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5548 ms55.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30948 ms55.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5548 ms55.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30948 ms55.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5548 ms55.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30948 ms55.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5548 ms55.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30948 ms55.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5548 ms55.2%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3448 ms55.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5548 ms55.2%
BaseHandler._get_responsedjango/core/handlers/base.py:19848 ms55.2%
project_testapps/projects/urls.py:31112 ms13.8%
history_for_testapps/projects/analytics.py:806 for perf in TestPerf.objects.filter(test=test)6 ms6.9%
QuerySet.__iter__django/db/models/query.py:3906 ms6.9%
QuerySet._fetch_alldjango/db/models/query.py:20006 ms6.9%
ModelIterable.__iter__django/db/models/query.py:956 ms6.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16244 ms4.6%
CursorWrapper.executedjango/db/backends/utils.py:794 ms4.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:924 ms4.6%
CursorWrapper._executedjango/db/backends/utils.py:1054 ms4.6%
Cursor.executepsycopg/cursor.py:1134 ms4.6%
Connection.waitpsycopg/connection.py:4954 ms4.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.3%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.3%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.3%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.3%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms2.3%
history_for_testapps/projects/analytics.py:819 TestRun.objects.filter(test=test)4 ms4.6%
QuerySet.__iter__django/db/models/query.py:3904 ms4.6%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms4.6%
ModelIterable.__iter__django/db/models/query.py:954 ms4.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16244 ms4.6%
CursorWrapper.executedjango/db/backends/utils.py:794 ms4.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:924 ms4.6%
CursorWrapper._executedjango/db/backends/utils.py:1054 ms4.6%
Cursor.executepsycopg/cursor.py:1134 ms4.6%
Connection.waitpsycopg/connection.py:4954 ms4.6%
history_for_testapps/projects/analytics.py:820 .exclude(session__profile__testperf__test=test)2 ms2.3%
QuerySet.excludedjango/db/models/query.py:15502 ms2.3%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms2.3%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15682 ms2.3%
Query.add_qdjango/db/models/sql/query.py:16712 ms2.3%
Query._add_qdjango/db/models/sql/query.py:17032 ms2.3%
Query.build_filterdjango/db/models/sql/query.py:15942 ms2.3%
Query.split_excludedjango/db/models/sql/query.py:21502 ms2.3%
Exists.__init__django/db/models/expressions.py:18472 ms2.3%
Query.existsdjango/db/models/sql/query.py:6752 ms2.3%
Query.add_annotationdjango/db/models/sql/query.py:12412 ms2.3%
project_testapps/projects/urls.py:28610 ms11.5%
shellapps/projects/urls.py:71 return org_shell(request, project.organization if project else None, section) | {6 ms6.9%
org_shellapps/orgs/views.py:33 organizations = [] if user.is_anonymous else list(Organization.objects.filter(membership__user=user))2 ms2.3%
QuerySet.__iter__django/db/models/query.py:3902 ms2.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.3%
ModelIterable.__iter__django/db/models/query.py:952 ms2.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.3%
Cursor.executepsycopg/cursor.py:1132 ms2.3%
Connection.waitpsycopg/connection.py:4952 ms2.3%
org_shellapps/orgs/views.py:40 "org_projects": list(organization.project_set.order_by("name")) if member else [],2 ms2.3%
QuerySet.__iter__django/db/models/query.py:3902 ms2.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.3%
ModelIterable.__iter__django/db/models/query.py:952 ms2.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.3%
Cursor.executepsycopg/cursor.py:1132 ms2.3%
Connection.waitpsycopg/connection.py:4952 ms2.3%
org_shellapps/orgs/views.py:422 ms2.3%
Organization.is_ownerapps/orgs/models.py:65 return user.is_authenticated and self.membership_set.filter(user=user, role=Membership.Role.OWNER).exists()2 ms2.3%
QuerySet.existsdjango/db/models/query.py:13372 ms2.3%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.3%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.3%
Cursor.executepsycopg/cursor.py:1132 ms2.3%
Connection.waitpsycopg/connection.py:4952 ms2.3%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.3%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.3%
shellapps/projects/urls.py:732 ms2.3%
can_manageapps/projects/urls.py:442 ms2.3%
can_manage_projectapps/projects/urls.py:40 return user.is_superuser or project.organization.membership_set.filter(user=user).exists()2 ms2.3%
QuerySet.existsdjango/db/models/query.py:13372 ms2.3%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.3%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.3%
Cursor.executepsycopg/cursor.py:1132 ms2.3%
Connection.waitpsycopg/connection.py:4952 ms2.3%
filtersapps/projects/urls.py:80 environments = list(Environment.objects.filter(project=project).order_by("kind", "name"))2 ms2.3%
QuerySet.__iter__django/db/models/query.py:3902 ms2.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.3%
ModelIterable.__iter__django/db/models/query.py:952 ms2.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.3%
Cursor.executepsycopg/cursor.py:1132 ms2.3%
Connection.waitpsycopg/connection.py:4952 ms2.3%
project_testapps/projects/urls.py:2956 ms6.9%
latest_perfapps/projects/analytics.py:846 return perfs.select_related("profile", "environment").order_by("-date").first()6 ms6.9%
QuerySet.firstdjango/db/models/query.py:11456 ms6.9%
QuerySet.__iter__django/db/models/query.py:3906 ms6.9%
QuerySet._fetch_alldjango/db/models/query.py:20006 ms6.9%
ModelIterable.__iter__django/db/models/query.py:954 ms4.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.3%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.3%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:872 ms2.3%
SQLCompiler.get_order_bydjango/db/models/sql/compiler.py:4912 ms2.3%
SQLCompiler._order_by_pairsdjango/db/models/sql/compiler.py:3622 ms2.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.3%
Cursor.executepsycopg/cursor.py:1132 ms2.3%
Connection.waitpsycopg/connection.py:4952 ms2.3%
ModelIterable.__iter__django/db/models/query.py:1272 ms2.3%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15772 ms2.3%
SQLCompiler.get_convertersdjango/db/models/sql/compiler.py:15262 ms2.3%
project_testapps/projects/urls.py:342 return render(request, "project_test.html", context)6 ms6.9%
renderdjango/shortcuts.py:256 ms6.9%
render_to_stringdjango/template/loader.py:624 ms4.6%
Template.renderdjango/template/backends/django.py:1074 ms4.6%
Template.renderdjango/template/base.py:1744 ms4.6%
instrumented_test_renderdjango/test/utils.py:1144 ms4.6%
NodeList.renderdjango/template/base.py:10914 ms4.6%
Node.render_annotateddjango/template/base.py:10524 ms4.6%
ExtendsNode.renderdjango/template/loader_tags.py:1604 ms4.6%
instrumented_test_renderdjango/test/utils.py:1144 ms4.6%
NodeList.renderdjango/template/base.py:10914 ms4.6%
Node.render_annotateddjango/template/base.py:10524 ms4.6%
ExtendsNode.renderdjango/template/loader_tags.py:1604 ms4.6%
instrumented_test_renderdjango/test/utils.py:1144 ms4.6%
NodeList.renderdjango/template/base.py:10914 ms4.6%
Node.render_annotateddjango/template/base.py:10524 ms4.6%
BlockNode.renderdjango/template/loader_tags.py:664 ms4.6%
NodeList.renderdjango/template/base.py:10914 ms4.6%
Node.render_annotateddjango/template/base.py:10524 ms4.6%
BlockNode.renderdjango/template/loader_tags.py:664 ms4.6%
NodeList.renderdjango/template/base.py:10914 ms4.6%
Node.render_annotateddjango/template/base.py:10524 ms4.6%
IfNode.renderdjango/template/defaulttags.py:3334 ms4.6%
NodeList.renderdjango/template/base.py:10914 ms4.6%
Node.render_annotateddjango/template/base.py:10524 ms4.6%
IfNode.renderdjango/template/defaulttags.py:3334 ms4.6%
NodeList.renderdjango/template/base.py:10914 ms4.6%
Node.render_annotateddjango/template/base.py:10524 ms4.6%
SimpleNode.renderdjango/template/library.py:3254 ms4.6%
heroicon_miniheroicons/templatetags/heroicons.py:184 ms4.6%
_render_iconheroicons/templatetags/heroicons.py:394 ms4.6%
_render_iconheroicons/__init__.py:454 ms4.6%
_load_iconheroicons/__init__.py:184 ms4.6%
ZipFile.__init__<stdlib>/zipfile/__init__.py:15054 ms4.6%
ZipFile._RealGetContents<stdlib>/zipfile/__init__.py:16252 ms2.3%
ZipFile._RealGetContents<stdlib>/zipfile/__init__.py:16232 ms2.3%
render_to_stringdjango/template/loader.py:612 ms2.3%
get_templatedjango/template/loader.py:152 ms2.3%
DjangoTemplates.get_templatedjango/template/backends/django.py:792 ms2.3%
Engine.get_templatedjango/template/engine.py:1862 ms2.3%
Engine.find_templatedjango/template/engine.py:1592 ms2.3%
Loader.get_templatedjango/template/loaders/cached.py:572 ms2.3%
Loader.get_templatedjango/template/loaders/base.py:282 ms2.3%
__init____init__:-12 ms2.3%
Template.__init__django/template/base.py:1572 ms2.3%
Template.compile_nodelistdjango/template/base.py:1992 ms2.3%
Parser.parsedjango/template/base.py:5832 ms2.3%
do_extendsdjango/template/loader_tags.py:3072 ms2.3%
Parser.parsedjango/template/base.py:5832 ms2.3%
do_blockdjango/template/loader_tags.py:2352 ms2.3%
Parser.parsedjango/template/base.py:5832 ms2.3%
do_ifdjango/template/defaulttags.py:9942 ms2.3%
Parser.parsedjango/template/base.py:5832 ms2.3%
do_ifdjango/template/defaulttags.py:10022 ms2.3%
Parser.parsedjango/template/base.py:5542 ms2.3%
Parser.compile_filterdjango/template/base.py:6762 ms2.3%
__init____init__:-12 ms2.3%
FilterExpression.__init__django/template/base.py:7632 ms2.3%
__init____init__:-12 ms2.3%
project_testapps/projects/urls.py:3124 ms4.6%
flakiness_for_testapps/projects/flakiness.py:326 history = observations_for(test.project, [test.id], since).get(test.id, [])4 ms4.6%
observations_forapps/projects/flakiness.py:169 for row in Session.objects.filter(id__in={row[4] for row in test_runs}).values_list(2 ms2.3%
QuerySet.values_listdjango/db/models/query.py:14582 ms2.3%
QuerySet._valuesdjango/db/models/query.py:14092 ms2.3%
Query.set_valuesdjango/db/models/sql/query.py:26052 ms2.3%
Query.add_fieldsdjango/db/models/sql/query.py:22662 ms2.3%
Query.setup_joinsdjango/db/models/sql/query.py:19772 ms2.3%
observations_forapps/projects/flakiness.py:186 perfs = list(perfs)2 ms2.3%
QuerySet.__iter__django/db/models/query.py:3902 ms2.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.3%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms2.3%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms2.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.3%
Cursor.executepsycopg/cursor.py:1132 ms2.3%
Connection.waitpsycopg/connection.py:4952 ms2.3%
project_testapps/projects/urls.py:2822 ms2.3%
find_projectapps/projects/urls.py:522 ms2.3%
can_viewapps/projects/urls.py:332 ms2.3%
can_manage_projectapps/projects/urls.py:38 if not user.is_authenticated:2 ms2.3%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2512 ms2.3%
SimpleLazyObject._setupdjango/utils/functional.py:4042 ms2.3%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:402 ms2.3%
get_userdjango/contrib/auth/middleware.py:202 ms2.3%
get_userdjango/contrib/auth/__init__.py:3182 ms2.3%
ModelBackend.get_userdjango/contrib/auth/backends.py:2322 ms2.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.3%
QuerySet.getdjango/db/models/query.py:6352 ms2.3%
QuerySet.__len__django/db/models/query.py:3722 ms2.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.3%
ModelIterable.__iter__django/db/models/query.py:952 ms2.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.3%
Cursor.executepsycopg/cursor.py:1132 ms2.3%
Connection.waitpsycopg/connection.py:4952 ms2.3%
project_testapps/projects/urls.py:285 test = get_object_or_404(Test, slug=test_slug, project=project)2 ms2.3%
get_object_or_404django/shortcuts.py:902 ms2.3%
QuerySet.getdjango/db/models/query.py:6352 ms2.3%
QuerySet.__len__django/db/models/query.py:3722 ms2.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.3%
ModelIterable.__iter__django/db/models/query.py:952 ms2.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.3%
Cursor.executepsycopg/cursor.py:1132 ms2.3%
Connection.waitpsycopg/connection.py:4952 ms2.3%
project_testapps/projects/urls.py:2882 ms2.3%
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)}2 ms2.3%
QuerySet.__iter__django/db/models/query.py:3902 ms2.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.3%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms2.3%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms2.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.3%
Cursor.executepsycopg/cursor.py:1132 ms2.3%
Connection.waitpsycopg/connection.py:4952 ms2.3%
project_testapps/projects/urls.py:2892 ms2.3%
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"):2 ms2.3%
QuerySet.__iter__django/db/models/query.py:3902 ms2.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.3%
ModelIterable.__iter__django/db/models/query.py:952 ms2.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.3%
Cursor.executepsycopg/cursor.py:1132 ms2.3%
Connection.waitpsycopg/connection.py:4952 ms2.3%
project_testapps/projects/urls.py:3152 ms2.3%
QuerySet.aggregatedjango/db/models/query.py:5942 ms2.3%
Query.get_aggregationdjango/db/models/sql/query.py:6332 ms2.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.3%
Cursor.executepsycopg/cursor.py:1132 ms2.3%
Connection.waitpsycopg/connection.py:4952 ms2.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3112 ms2.3%
SessionMiddleware.process_responsedjango/contrib/sessions/middleware.py:592 ms2.3%
SessionStore.savedjango/contrib/sessions/backends/db.py:1262 ms2.3%
Atomic.__exit__django/db/transaction.py:2472 ms2.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.3%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms2.3%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.3%
Cursor.executepsycopg/cursor.py:1132 ms2.3%
Connection.waitpsycopg/connection.py:4952 ms2.3%
ClientHandler.__call__django/test/client.py:17324 ms27.6%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6224 ms27.6%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10424 ms27.6%
WhiteNoise.add_fileswhitenoise/base.py:10824 ms27.6%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12014 ms16.1%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13114 ms16.1%
WhiteNoise.get_static_filewhitenoise/base.py:20810 ms11.5%
StaticFile.__init__whitenoise/responders.py:734 ms4.6%
StaticFile.get_headerswhitenoise/responders.py:1782 ms2.3%
StaticFile.get_headerswhitenoise/responders.py:1762 ms2.3%
formatdate<stdlib>/email/utils.py:2662 ms2.3%
StaticFile.__init__whitenoise/responders.py:722 ms2.3%
StaticFile.get_file_statswhitenoise/responders.py:1632 ms2.3%
StaticFile.__init__whitenoise/responders.py:772 ms2.3%
StaticFile.get_alternativeswhitenoise/responders.py:2012 ms2.3%
StaticFile.__init__whitenoise/responders.py:742 ms2.3%
parsedate<stdlib>/email/_parseaddr.py:1852 ms2.3%
WhiteNoise.get_static_filewhitenoise/base.py:2034 ms4.6%
WhiteNoise.add_cache_headerswhitenoise/base.py:2244 ms4.6%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1764 ms4.6%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1974 ms4.6%
URLMixin.urldebug_toolbar/panels/staticfiles.py:204 ms4.6%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2052 ms2.3%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1862 ms2.3%
FileSystemStorage.urldjango/core/files/storage/filesystem.py:2092 ms2.3%
WhiteNoise.update_files_dictionarywhitenoise/base.py:11510 ms11.5%
scantreewhitenoise/base.py:26210 ms11.5%
scantreewhitenoise/base.py:26210 ms11.5%
scantreewhitenoise/base.py:2628 ms9.2%
scantreewhitenoise/base.py:2628 ms9.2%
scantreewhitenoise/base.py:2628 ms9.2%
scantreewhitenoise/base.py:2648 ms9.2%
<GC>~6 ms6.9%
scantreewhitenoise/base.py:2642 ms2.3%
TestProjectTestPage.setUpapps/projects/tests.py:412 self.client.force_login(self.user)10 ms11.5%
ClientMixin.force_logindjango/test/client.py:8558 ms9.2%
ClientMixin._logindjango/test/client.py:8816 ms6.9%
logindjango/contrib/auth/__init__.py:1874 ms4.6%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4342 ms2.3%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms2.3%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms2.3%
Model.savedjango/db/models/base.py:8742 ms2.3%
Model.save_basedjango/db/models/base.py:9662 ms2.3%
Model._save_tabledjango/db/models/base.py:11672 ms2.3%
Model._do_insertdjango/db/models/base.py:12182 ms2.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.3%
QuerySet._insertdjango/db/models/query.py:19182 ms2.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.3%
Cursor.executepsycopg/cursor.py:1132 ms2.3%
Connection.waitpsycopg/connection.py:4952 ms2.3%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4372 ms2.3%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1752 ms2.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.3%
QuerySet.getdjango/db/models/query.py:6352 ms2.3%
QuerySet.__len__django/db/models/query.py:3722 ms2.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.3%
ModelIterable.__iter__django/db/models/query.py:952 ms2.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.3%
Cursor.executepsycopg/cursor.py:1132 ms2.3%
Connection.waitpsycopg/connection.py:4952 ms2.3%
logindjango/contrib/auth/__init__.py:1752 ms2.3%
SessionBase.__contains__django/contrib/sessions/backends/base.py:522 ms2.3%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms2.3%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms2.3%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms2.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.3%
QuerySet.getdjango/db/models/query.py:6252 ms2.3%
QuerySet.filterdjango/db/models/query.py:15422 ms2.3%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms2.3%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms2.3%
Query.add_qdjango/db/models/sql/query.py:16712 ms2.3%
ClientMixin._logindjango/test/client.py:8762 ms2.3%
ClientMixin.sessiondjango/test/client.py:8122 ms2.3%
SessionStore.savedjango/contrib/sessions/backends/db.py:1212 ms2.3%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms2.3%
SessionStore.savedjango/contrib/sessions/backends/db.py:1262 ms2.3%
Atomic.__enter__django/db/transaction.py:2112 ms2.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.3%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms2.3%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.3%
Cursor.executepsycopg/cursor.py:1132 ms2.3%
Connection.waitpsycopg/connection.py:4952 ms2.3%
TestData.__get__django/test/testcases.py:13672 ms2.3%
deepcopy<stdlib>/copy.py:1572 ms2.3%
_reconstruct<stdlib>/copy.py:2492 ms2.3%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()2 ms2.3%
TestCase._fixture_teardowndjango/test/testcases.py:14952 ms2.3%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4832 ms2.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.3%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.3%
Cursor.executepsycopg/cursor.py:1132 ms2.3%
Connection.waitpsycopg/connection.py:4952 ms2.3%
Estimated from 43 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/projects/tests.py:428
response = self.client.get(self.url)
TestProjectTestPage.test_project_test_page
· Libraries
|
26 ms |
|
apps/projects/tests.py:412
self.client.force_login(self.user)
TestProjectTestPage.setUp
· Database
|
10 ms |
|
apps/projects/analytics.py:806
for perf in TestPerf.objects.filter(test=test)
history_for_test
· Database
|
6 ms |
|
apps/projects/analytics.py:846
return perfs.select_related("profile", "environment").order_by("-date").first()
latest_perf
· Database
|
6 ms |
|
apps/projects/urls.py:342
return render(request, "project_test.html", context)
project_test
· Templates
|
6 ms |
|
apps/projects/analytics.py:819
TestRun.objects.filter(test=test)
history_for_test
· Database
|
4 ms |
|
apps/projects/urls.py:38
if not user.is_authenticated:
can_manage_project
· Database
|
2 ms |
|
apps/projects/urls.py:285
test = get_object_or_404(Test, slug=test_slug, project=project)
project_test
· Database
|
2 ms |
|
apps/orgs/views.py:33
organizations = [] if user.is_anonymous else list(Organization.objects.filter(membership__user=user))
org_shell
· Database
|
2 ms |
|
apps/orgs/views.py:40
"org_projects": list(organization.project_set.order_by("name")) if member else [],
org_shell
· Database
|
2 ms |
Fixtures
Exact setup time| _template_string_if_invalid_marker function | 0.06 ms |
| _dj_autoclear_mailbox function | 0.05 ms |
| _django_db_marker function | 0.05 ms |
| _django_set_urlconf function | 0.04 ms |
| _live_server_helper function | 0.04 ms |
| _django_clear_site_cache function | 0.04 ms |
| monkeypatch function | 0.03 ms |
Database
42 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:428
|
74 ms |
|
call setUp
apps/projects/tests.py:412
|
10 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
2 ms |
Reliability
5 results · 0 CI failures · 0 local failuresThis test hasn't failed recently.
History
Latest 50 results, oldest first in the strip| When | Environment | Outcome | Duration | |
|---|---|---|---|---|
| an hour ago | CI github-actions:test | passed | 87 ms | Profile |
| an hour ago | CI github-actions:test | passed | 87 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 96 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 52 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 88 ms | Profile |
| 2 years ago | CI github-actions | passed | 175 ms | Run |
| 2 years, 2 months ago | CI github-actions | passed | 161 ms | Run |
| 2 years, 3 months ago | CI github-actions | passed | 166 ms | Run |
| 2 years, 4 months ago | CI github-actions | passed | 165 ms | Run |
| 2 years, 4 months ago | CI github-actions | passed | 262 ms | Run |
| 2 years, 4 months ago | CI github-actions | passed | 163 ms | Run |
| 2 years, 4 months ago | CI github-actions | passed | 156 ms | Run |
| 2 years, 5 months ago | CI github-actions | passed | 160 ms | Run |
| 2 years, 5 months ago | CI github-actions | passed | 152 ms | Run |
| 2 years, 5 months ago | CI github-actions | passed | 214 ms | Run |
| 2 years, 5 months ago | CI github-actions | passed | 157 ms | Run |
| 2 years, 5 months ago | CI github-actions | passed | 160 ms | Run |
| 2 years, 6 months ago | CI github-actions | passed | 158 ms | Run |
| 2 years, 6 months ago | CI github-actions | passed | 159 ms | Run |
| 2 years, 6 months ago | CI github-actions | passed | 162 ms | Run |