Tests / apps/projects/tests.py
ProjectPagesTest::test_test_page_without_profiles
First seen 3 weeks ago in 78a4357
CI
github-actions:test
12 runs
Average
73 ms
median 79 ms
max 93 ms
max 93 ms
Phases
Setup 0.74 ms
Call 72 ms
Teardown 0.19 ms
Categories
Database 54 ms
App code 0.14 ms
Other (Libraries, Templates, Unsampled, pytest, ...) 19 ms
44 database queries per run
Needs 21 KB of memory (max 56 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
call81 ms98.9%
ProjectPagesTest.test_test_page_without_profilesapps/projects/tests.py:1050 response = self.client.get(self.project.url("project_test", test.slug))67 ms82.1%
Client.getdjango/test/client.py:112467 ms82.1%
RequestFactory.getdjango/test/client.py:47567 ms82.1%
RequestFactory.genericdjango/test/client.py:67167 ms82.1%
Client.requestdjango/test/client.py:108267 ms82.1%
ClientHandler.__call__django/test/client.py:18655 ms67.1%
BaseHandler.get_responsedjango/core/handlers/base.py:14155 ms67.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5555 ms67.1%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13055 ms67.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5555 ms67.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30955 ms67.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5555 ms67.1%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12355 ms67.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5555 ms67.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30954 ms65.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5554 ms65.3%
MiddlewareMixin.__call__django/utils/deprecation.py:30954 ms65.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5554 ms65.3%
MiddlewareMixin.__call__django/utils/deprecation.py:30954 ms65.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5554 ms65.3%
MiddlewareMixin.__call__django/utils/deprecation.py:30954 ms65.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5554 ms65.3%
MiddlewareMixin.__call__django/utils/deprecation.py:30954 ms65.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5554 ms65.3%
MiddlewareMixin.__call__django/utils/deprecation.py:30954 ms65.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5554 ms65.3%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3454 ms65.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5554 ms65.3%
BaseHandler._get_responsedjango/core/handlers/base.py:19854 ms65.3%
project_testapps/projects/urls.py:285 test = get_object_or_404(Test, slug=test_slug, project=project)14 ms16.8%
get_object_or_404django/shortcuts.py:9012 ms14.9%
QuerySet.getdjango/db/models/query.py:6359 ms11.2%
QuerySet.__len__django/db/models/query.py:3729 ms11.2%
QuerySet._fetch_alldjango/db/models/query.py:20009 ms11.2%
ModelIterable.__iter__django/db/models/query.py:958 ms9.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16226 ms7.5%
CursorWrapper.executedjango/db/backends/utils.py:795 ms5.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:925 ms5.6%
CursorWrapper._executedjango/db/backends/utils.py:1055 ms5.6%
Cursor.executepsycopg/cursor.py:1135 ms5.6%
Connection.waitpsycopg/connection.py:4955 ms5.6%
BaseCursor._execute_genpsycopg/_cursor_base.py:2065 ms5.6%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2865 ms5.6%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:785 ms5.6%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.9%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.9%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.9%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.9%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms1.9%
ModelIterable.__iter__django/db/models/query.py:1072 ms1.9%
QuerySet.getdjango/db/models/query.py:6253 ms3.7%
QuerySet.filterdjango/db/models/query.py:15423 ms3.7%
QuerySet._filter_or_excludedjango/db/models/query.py:15603 ms3.7%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15703 ms3.7%
Query.add_qdjango/db/models/sql/query.py:16713 ms3.7%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.9%
Query.build_filterdjango/db/models/sql/query.py:16132 ms1.9%
Query.build_lookupdjango/db/models/sql/query.py:14402 ms1.9%
Lookup.__init__django/db/models/lookups.py:352 ms1.9%
RelatedLookupMixin.get_prep_lookupdjango/db/models/fields/related_lookups.py:1042 ms1.9%
get_normalized_valuedjango/db/models/fields/related_lookups.py:222 ms1.9%
Query._add_qdjango/db/models/sql/query.py:17182 ms1.9%
get_object_or_404django/shortcuts.py:802 ms1.9%
_get_querysetdjango/shortcuts.py:652 ms1.9%
BaseManager.alldjango/db/models/manager.py:1642 ms1.9%
BaseManager.get_querysetdjango/db/models/manager.py:1552 ms1.9%
project_testapps/projects/urls.py:28212 ms14.9%
find_projectapps/projects/urls.py:49 project = get_object_or_404(12 ms14.9%
get_object_or_404django/shortcuts.py:9012 ms14.9%
QuerySet.getdjango/db/models/query.py:63512 ms14.9%
QuerySet.__len__django/db/models/query.py:37212 ms14.9%
QuerySet._fetch_alldjango/db/models/query.py:200012 ms14.9%
ModelIterable.__iter__django/db/models/query.py:9511 ms13.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:162411 ms13.1%
CursorWrapper.executedjango/db/backends/utils.py:7911 ms13.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9211 ms13.1%
CursorWrapper._executedjango/db/backends/utils.py:10511 ms13.1%
Cursor.executepsycopg/cursor.py:11311 ms13.1%
Connection.waitpsycopg/connection.py:49511 ms13.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.9%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3122 ms1.9%
ModelIterable.__iter__django/db/models/query.py:1072 ms1.9%
project_testapps/projects/urls.py:3119 ms11.2%
history_for_testapps/projects/analytics.py:819 TestRun.objects.filter(test=test)6 ms7.5%
QuerySet.__iter__django/db/models/query.py:3905 ms5.6%
QuerySet._fetch_alldjango/db/models/query.py:20005 ms5.6%
ModelIterable.__iter__django/db/models/query.py:955 ms5.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms3.7%
CursorWrapper.executedjango/db/backends/utils.py:793 ms3.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms3.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.9%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.9%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:872 ms1.9%
SQLCompiler.get_order_bydjango/db/models/sql/compiler.py:4912 ms1.9%
SQLCompiler._order_by_pairsdjango/db/models/sql/compiler.py:3592 ms1.9%
Expression.__hash__django/db/models/expressions.py:5622 ms1.9%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.9%
QuerySet.filterdjango/db/models/query.py:15422 ms1.9%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.9%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.9%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.9%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.9%
Query.build_filterdjango/db/models/sql/query.py:16072 ms1.9%
Query._get_coldjango/db/models/sql/query.py:4512 ms1.9%
history_for_testapps/projects/analytics.py:806 for perf in TestPerf.objects.filter(test=test)3 ms3.7%
QuerySet.__iter__django/db/models/query.py:3903 ms3.7%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms3.7%
ModelIterable.__iter__django/db/models/query.py:953 ms3.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.9%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.9%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.9%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.9%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms1.9%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
project_testapps/projects/urls.py:286 context = shell(request, project, "tests") | filters(request, project, default_days=90)5 ms5.6%
shellapps/projects/urls.py:71 return org_shell(request, project.organization if project else None, section) | {3 ms3.7%
org_shellapps/orgs/views.py:40 "org_projects": list(organization.project_set.order_by("name")) if member else [],2 ms1.9%
QuerySet.__iter__django/db/models/query.py:3902 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
ModelIterable.__iter__django/db/models/query.py:952 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.9%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.9%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.9%
org_shellapps/orgs/views.py:422 ms1.9%
Organization.is_ownerapps/orgs/models.py:65 return user.is_authenticated and self.membership_set.filter(user=user, role=Membership.Role.OWNER).exists()2 ms1.9%
QuerySet.existsdjango/db/models/query.py:13372 ms1.9%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms1.9%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
shellapps/projects/urls.py:732 ms1.9%
can_manageapps/projects/urls.py:442 ms1.9%
can_manage_projectapps/projects/urls.py:40 return user.is_superuser or project.organization.membership_set.filter(user=user).exists()2 ms1.9%
QuerySet.existsdjango/db/models/query.py:13372 ms1.9%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms1.9%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
project_testapps/projects/urls.py:3125 ms5.6%
flakiness_for_testapps/projects/flakiness.py:326 history = observations_for(test.project, [test.id], since).get(test.id, [])5 ms5.6%
observations_forapps/projects/flakiness.py:165 test_runs = list(test_runs)2 ms1.9%
QuerySet.__iter__django/db/models/query.py:3902 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms1.9%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
observations_forapps/projects/flakiness.py:186 perfs = list(perfs)2 ms1.9%
QuerySet.__iter__django/db/models/query.py:3902 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms1.9%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.9%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.9%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:882 ms1.9%
WhereNode.split_having_qualifydjango/db/models/sql/where.py:472 ms1.9%
observations_forapps/projects/flakiness.py:189 for row in Profile.objects.filter(id__in={row[3] for row in perfs}).values_list(2 ms1.9%
QuerySet.__iter__django/db/models/query.py:3902 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms1.9%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.9%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.9%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.9%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.9%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms1.9%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.9%
Col.as_sqldjango/db/models/expressions.py:13252 ms1.9%
project_testapps/projects/urls.py:2893 ms3.7%
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"):3 ms3.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.9%
QuerySet.filterdjango/db/models/query.py:15422 ms1.9%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.9%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.9%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.9%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.9%
Query.build_filterdjango/db/models/sql/query.py:15772 ms1.9%
Query.setup_joinsdjango/db/models/sql/query.py:19742 ms1.9%
QuerySet.__iter__django/db/models/query.py:3902 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
ModelIterable.__iter__django/db/models/query.py:952 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
project_testapps/projects/urls.py:342 return render(request, "project_test.html", context)3 ms3.7%
renderdjango/shortcuts.py:253 ms3.7%
render_to_stringdjango/template/loader.py:623 ms3.7%
Template.renderdjango/template/backends/django.py:1073 ms3.7%
Template.renderdjango/template/base.py:1743 ms3.7%
instrumented_test_renderdjango/test/utils.py:1143 ms3.7%
NodeList.renderdjango/template/base.py:10913 ms3.7%
Node.render_annotateddjango/template/base.py:10523 ms3.7%
ExtendsNode.renderdjango/template/loader_tags.py:1603 ms3.7%
instrumented_test_renderdjango/test/utils.py:1143 ms3.7%
NodeList.renderdjango/template/base.py:10913 ms3.7%
Node.render_annotateddjango/template/base.py:10523 ms3.7%
ExtendsNode.renderdjango/template/loader_tags.py:1603 ms3.7%
instrumented_test_renderdjango/test/utils.py:1143 ms3.7%
NodeList.renderdjango/template/base.py:10913 ms3.7%
Node.render_annotateddjango/template/base.py:10523 ms3.7%
BlockNode.renderdjango/template/loader_tags.py:663 ms3.7%
NodeList.renderdjango/template/base.py:10913 ms3.7%
Node.render_annotateddjango/template/base.py:10522 ms1.9%
IfNode.renderdjango/template/defaulttags.py:3332 ms1.9%
NodeList.renderdjango/template/base.py:10912 ms1.9%
Node.render_annotateddjango/template/base.py:10522 ms1.9%
ForNode.renderdjango/template/defaulttags.py:2492 ms1.9%
Node.render_annotateddjango/template/base.py:10522 ms1.9%
URLNode.renderdjango/template/defaulttags.py:5112 ms1.9%
reversedjango/urls/base.py:982 ms1.9%
project_testapps/projects/urls.py:2882 ms1.9%
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 ms1.9%
QuerySet.__iter__django/db/models/query.py:3902 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms1.9%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
project_testapps/projects/urls.py:3152 ms1.9%
QuerySet.aggregatedjango/db/models/query.py:5942 ms1.9%
Query.get_aggregationdjango/db/models/sql/query.py:6332 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
MiddlewareMixin.__call__django/utils/deprecation.py:3112 ms1.9%
SessionMiddleware.process_responsedjango/contrib/sessions/middleware.py:592 ms1.9%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms1.9%
Model.savedjango/db/models/base.py:8742 ms1.9%
Model.save_basedjango/db/models/base.py:9662 ms1.9%
Model._save_tabledjango/db/models/base.py:11102 ms1.9%
Model._do_updatedjango/db/models/base.py:12112 ms1.9%
QuerySet._updatedjango/db/models/query.py:13272 ms1.9%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.9%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
ClientHandler.__call__django/test/client.py:17312 ms14.9%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6212 ms14.9%
__init____init__:-112 ms14.9%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10412 ms14.9%
WhiteNoise.add_fileswhitenoise/base.py:10812 ms14.9%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1209 ms11.2%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:1319 ms11.2%
WhiteNoise.get_static_filewhitenoise/base.py:2089 ms11.2%
StaticFile.__init__whitenoise/responders.py:745 ms5.6%
Headers.__getitem__<stdlib>/wsgiref/headers.py:835 ms5.6%
StaticFile.__init__whitenoise/responders.py:732 ms1.9%
StaticFile.get_headerswhitenoise/responders.py:1762 ms1.9%
formatdate<stdlib>/email/utils.py:2662 ms1.9%
StaticFile.__init__whitenoise/responders.py:722 ms1.9%
StaticFile.get_file_statswhitenoise/responders.py:1612 ms1.9%
__init____init__:-12 ms1.9%
FileEntry.__init__whitenoise/responders.py:2632 ms1.9%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1153 ms3.7%
scantreewhitenoise/base.py:2623 ms3.7%
scantreewhitenoise/base.py:2623 ms3.7%
scantreewhitenoise/base.py:2622 ms1.9%
scantreewhitenoise/base.py:2622 ms1.9%
scantreewhitenoise/base.py:2622 ms1.9%
scantreewhitenoise/base.py:2602 ms1.9%
scantreewhitenoise/base.py:2602 ms1.9%
ProjectPagesTest.setUpapps/projects/tests.py:954 self.client.force_login(self.user)6 ms7.5%
ClientMixin.force_logindjango/test/client.py:8556 ms7.5%
ClientMixin._logindjango/test/client.py:8813 ms3.7%
logindjango/contrib/auth/__init__.py:1873 ms3.7%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4342 ms1.9%
SessionStore.createdjango/contrib/sessions/backends/db.py:702 ms1.9%
SessionBase._get_new_session_keydjango/contrib/sessions/backends/base.py:1982 ms1.9%
SessionStore.existsdjango/contrib/sessions/backends/db.py:632 ms1.9%
QuerySet.existsdjango/db/models/query.py:13372 ms1.9%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms1.9%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4372 ms1.9%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1752 ms1.9%
Model.deletedjango/db/models/base.py:12982 ms1.9%
Collector.deletedjango/db/models/deletion.py:4522 ms1.9%
DeleteQuery.delete_batchdjango/db/models/sql/subqueries.py:432 ms1.9%
DeleteQuery.do_querydjango/db/models/sql/subqueries.py:252 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
ClientMixin._logindjango/test/client.py:8762 ms1.9%
ClientMixin.sessiondjango/test/client.py:8122 ms1.9%
SessionStore.savedjango/contrib/sessions/backends/db.py:1212 ms1.9%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms1.9%
SessionStore.savedjango/contrib/sessions/backends/db.py:1262 ms1.9%
Atomic.__enter__django/db/transaction.py:2112 ms1.9%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.9%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.9%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
ClientMixin._logindjango/test/client.py:8832 ms1.9%
SessionStore.savedjango/contrib/sessions/backends/db.py:1262 ms1.9%
Atomic.__enter__django/db/transaction.py:2112 ms1.9%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.9%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.9%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()5 ms5.6%
TestCase._fixture_teardowndjango/test/testcases.py:14955 ms5.6%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4835 ms5.6%
CursorWrapper.executedjango/db/backends/utils.py:795 ms5.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:925 ms5.6%
CursorWrapper._executedjango/db/backends/utils.py:1035 ms5.6%
Cursor.executepsycopg/cursor.py:1135 ms5.6%
Connection.waitpsycopg/connection.py:4955 ms5.6%
ProjectPagesTest.test_test_page_without_profilesapps/projects/tests.py:10492 ms1.9%
makemodel_bakery/baker.py:1472 ms1.9%
Baker.makemodel_bakery/baker.py:4062 ms1.9%
Baker._makemodel_bakery/baker.py:4822 ms1.9%
Baker.instancemodel_bakery/baker.py:5352 ms1.9%
Test.saveapps/projects/models.py:294 super().save(*args, **kwargs)2 ms1.9%
Model.savedjango/db/models/base.py:8742 ms1.9%
Model.save_basedjango/db/models/base.py:9662 ms1.9%
Model._save_tabledjango/db/models/base.py:11672 ms1.9%
Model._do_insertdjango/db/models/base.py:12182 ms1.9%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.9%
QuerySet._insertdjango/db/models/query.py:19182 ms1.9%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
Estimated from 53 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/projects/tests.py:1050
response = self.client.get(self.project.url("project_test", test.slug))
ProjectPagesTest.test_test_page_without_profiles
· Libraries
|
14 ms |
|
apps/projects/urls.py:285
test = get_object_or_404(Test, slug=test_slug, project=project)
project_test
· Database
|
14 ms |
|
apps/projects/urls.py:49
project = get_object_or_404(
find_project
· Database
|
12 ms |
|
apps/projects/tests.py:954
self.client.force_login(self.user)
ProjectPagesTest.setUp
· Database
|
6 ms |
|
apps/projects/analytics.py:819
TestRun.objects.filter(test=test)
history_for_test
· Database
|
6 ms |
|
apps/projects/analytics.py:748
for perf in TestPerf.objects.filter(test=test, date__gte=since).select_related("environment").order_by("date"):
environment_stats_for_test
· Database
|
3 ms |
|
apps/projects/analytics.py:806
for perf in TestPerf.objects.filter(test=test)
history_for_test
· Database
|
3 ms |
|
apps/projects/urls.py:342
return render(request, "project_test.html", context)
project_test
· Templates
|
3 ms |
|
apps/projects/models.py:294
super().save(*args, **kwargs)
Test.save
· 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.06 ms |
| _django_db_marker function | 0.05 ms |
| _django_set_urlconf function | 0.04 ms |
| _django_clear_site_cache function | 0.03 ms |
| _live_server_helper function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
44 queries · 17 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:1050
|
69 ms |
|
call setUp
apps/projects/tests.py:954
|
6 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
5 ms |
| call pytest internals | 2 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 | 82 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 46 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 80 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 62 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 93 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 60 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 80 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 78 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 79 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 93 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 45 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 79 ms | Profile |