CI
github-actions:test
12 runs
Average
71 ms
median 74 ms
max 101 ms
max 101 ms
Phases
Setup 0.70 ms
Call 70 ms
Teardown 0.15 ms
Categories
Database 41 ms
App code 0.53 ms
Other (Libraries, Templates, Unsampled, pytest, ...) 30 ms
49 database queries per run
Needs 340 KB of memory (max 836 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
call72 ms98.8%
TestDocsPage.test_linked_from_the_appft/tests.py:83 response = self.client.get(reverse("projects"), follow=True)48 ms65.0%
Client.getdjango/test/client.py:112434 ms46.8%
RequestFactory.getdjango/test/client.py:47534 ms46.8%
RequestFactory.genericdjango/test/client.py:67134 ms46.8%
Client.requestdjango/test/client.py:108234 ms46.8%
ClientHandler.__call__django/test/client.py:17325 ms33.8%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6223 ms31.2%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10423 ms31.2%
WhiteNoise.add_fileswhitenoise/base.py:10823 ms31.2%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12017 ms23.4%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13117 ms23.4%
WhiteNoise.get_static_filewhitenoise/base.py:20815 ms20.8%
StaticFile.__init__whitenoise/responders.py:738 ms10.4%
StaticFile.get_headerswhitenoise/responders.py:1764 ms5.2%
formatdate<stdlib>/email/utils.py:2662 ms2.6%
StaticFile.get_headerswhitenoise/responders.py:1692 ms2.6%
StaticFile.get_headerswhitenoise/responders.py:1782 ms2.6%
parsedate<stdlib>/email/_parseaddr.py:1852 ms2.6%
StaticFile.__init__whitenoise/responders.py:726 ms7.8%
StaticFile.get_file_statswhitenoise/responders.py:1616 ms7.8%
__init____init__:-16 ms7.8%
FileEntry.__init__whitenoise/responders.py:2636 ms7.8%
FileEntry.stat_regular_filewhitenoise/responders.py:2766 ms7.8%
<GC>~6 ms7.8%
WhiteNoise.get_static_filewhitenoise/base.py:2032 ms2.6%
WhiteNoise.add_cache_headerswhitenoise/base.py:2242 ms2.6%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1762 ms2.6%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1972 ms2.6%
URLMixin.urldebug_toolbar/panels/staticfiles.py:202 ms2.6%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1154 ms5.2%
scantreewhitenoise/base.py:2624 ms5.2%
scantreewhitenoise/base.py:2624 ms5.2%
scantreewhitenoise/base.py:2622 ms2.6%
scantreewhitenoise/base.py:2622 ms2.6%
scantreewhitenoise/base.py:2622 ms2.6%
scantreewhitenoise/base.py:2602 ms2.6%
scantreewhitenoise/base.py:2602 ms2.6%
BaseHandler.load_middlewaredjango/core/handlers/base.py:412 ms2.6%
import_stringdjango/utils/module_loading.py:302 ms2.6%
ClientHandler.__call__django/test/client.py:18610 ms13.0%
BaseHandler.get_responsedjango/core/handlers/base.py:14110 ms13.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms13.0%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13010 ms13.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms13.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30910 ms13.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms13.0%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12310 ms13.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms13.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30910 ms13.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms13.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30910 ms13.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms13.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30910 ms13.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms13.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30910 ms13.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms13.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30910 ms13.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms13.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30910 ms13.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms13.0%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3410 ms13.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5510 ms13.0%
BaseHandler._get_responsedjango/core/handlers/base.py:19810 ms13.0%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:596 ms7.8%
homeapps/orgs/views.py:724 ms5.2%
current_organizationapps/orgs/views.py:54 return ensure_organization(request.user)4 ms5.2%
ensure_organizationapps/orgs/models.py:126 membership = Membership.objects.filter(user=user).select_related("organization").order_by("id").first()2 ms2.6%
QuerySet.firstdjango/db/models/query.py:11452 ms2.6%
QuerySet.__iter__django/db/models/query.py:3902 ms2.6%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.6%
ModelIterable.__iter__django/db/models/query.py:952 ms2.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.6%
Cursor.executepsycopg/cursor.py:1132 ms2.6%
Connection.waitpsycopg/connection.py:4952 ms2.6%
homeapps/orgs/views.py:74 if not projects.exists():2 ms2.6%
QuerySet.existsdjango/db/models/query.py:13372 ms2.6%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.6%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.6%
Cursor.executepsycopg/cursor.py:1132 ms2.6%
Connection.waitpsycopg/connection.py:4952 ms2.6%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:564 ms5.2%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:794 ms5.2%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2514 ms5.2%
SimpleLazyObject._setupdjango/utils/functional.py:4044 ms5.2%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:404 ms5.2%
get_userdjango/contrib/auth/middleware.py:204 ms5.2%
get_userdjango/contrib/auth/__init__.py:3114 ms5.2%
_get_user_session_keydjango/contrib/auth/__init__.py:954 ms5.2%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:554 ms5.2%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2514 ms5.2%
SessionStore.loaddjango/contrib/sessions/backends/db.py:554 ms5.2%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:344 ms5.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms5.2%
QuerySet.getdjango/db/models/query.py:6252 ms2.6%
QuerySet.filterdjango/db/models/query.py:15422 ms2.6%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms2.6%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms2.6%
Query.add_qdjango/db/models/sql/query.py:16712 ms2.6%
Query._add_qdjango/db/models/sql/query.py:17032 ms2.6%
QuerySet.getdjango/db/models/query.py:6352 ms2.6%
QuerySet.__len__django/db/models/query.py:3722 ms2.6%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.6%
ModelIterable.__iter__django/db/models/query.py:1252 ms2.6%
Client.getdjango/test/client.py:113313 ms18.2%
Client._handle_redirectsdjango/test/client.py:138413 ms18.2%
ClientMixin._follow_redirectdjango/test/client.py:100213 ms18.2%
Client.getdjango/test/client.py:112413 ms18.2%
RequestFactory.getdjango/test/client.py:47513 ms18.2%
RequestFactory.genericdjango/test/client.py:67113 ms18.2%
Client.requestdjango/test/client.py:108213 ms18.2%
ClientHandler.__call__django/test/client.py:18613 ms18.2%
BaseHandler.get_responsedjango/core/handlers/base.py:14113 ms18.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms18.2%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13013 ms18.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms18.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30913 ms18.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms18.2%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12313 ms18.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms18.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms15.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms15.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms15.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms15.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms15.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms15.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms15.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms15.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms15.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms15.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms15.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms15.6%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3411 ms15.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms15.6%
BaseHandler._get_responsedjango/core/handlers/base.py:19811 ms15.6%
project_dashboardapps/projects/urls.py:138 return render(request, "project_setup.html", context)4 ms5.2%
renderdjango/shortcuts.py:254 ms5.2%
render_to_stringdjango/template/loader.py:624 ms5.2%
Template.renderdjango/template/backends/django.py:1074 ms5.2%
Template.renderdjango/template/base.py:1744 ms5.2%
instrumented_test_renderdjango/test/utils.py:1144 ms5.2%
NodeList.renderdjango/template/base.py:10914 ms5.2%
Node.render_annotateddjango/template/base.py:10524 ms5.2%
ExtendsNode.renderdjango/template/loader_tags.py:1604 ms5.2%
instrumented_test_renderdjango/test/utils.py:1144 ms5.2%
NodeList.renderdjango/template/base.py:10914 ms5.2%
Node.render_annotateddjango/template/base.py:10524 ms5.2%
ExtendsNode.renderdjango/template/loader_tags.py:1604 ms5.2%
instrumented_test_renderdjango/test/utils.py:1144 ms5.2%
NodeList.renderdjango/template/base.py:10914 ms5.2%
Node.render_annotateddjango/template/base.py:10524 ms5.2%
BlockNode.renderdjango/template/loader_tags.py:664 ms5.2%
NodeList.renderdjango/template/base.py:10914 ms5.2%
Node.render_annotateddjango/template/base.py:10524 ms5.2%
IfNode.renderdjango/template/defaulttags.py:3332 ms2.6%
NodeList.renderdjango/template/base.py:10912 ms2.6%
Node.render_annotateddjango/template/base.py:10522 ms2.6%
BlockNode.renderdjango/template/loader_tags.py:662 ms2.6%
NodeList.renderdjango/template/base.py:10912 ms2.6%
Node.render_annotateddjango/template/base.py:10522 ms2.6%
IfNode.renderdjango/template/defaulttags.py:3332 ms2.6%
NodeList.renderdjango/template/base.py:10912 ms2.6%
Node.render_annotateddjango/template/base.py:10522 ms2.6%
WithNode.renderdjango/template/defaulttags.py:5792 ms2.6%
FilterExpression.resolvedjango/template/base.py:7882 ms2.6%
Variable.resolvedjango/template/base.py:9282 ms2.6%
Variable._resolve_lookupdjango/template/base.py:10002 ms2.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.6%
QuerySet.firstdjango/db/models/query.py:11452 ms2.6%
QuerySet.__iter__django/db/models/query.py:3902 ms2.6%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.6%
ModelIterable.__iter__django/db/models/query.py:952 ms2.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.6%
Cursor.executepsycopg/cursor.py:1132 ms2.6%
Connection.waitpsycopg/connection.py:4952 ms2.6%
project_dashboardapps/projects/urls.py:1322 ms2.6%
find_projectapps/projects/urls.py:522 ms2.6%
can_viewapps/projects/urls.py:332 ms2.6%
can_manage_projectapps/projects/urls.py:40 return user.is_superuser or project.organization.membership_set.filter(user=user).exists()2 ms2.6%
QuerySet.existsdjango/db/models/query.py:13372 ms2.6%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.6%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.6%
Cursor.executepsycopg/cursor.py:1132 ms2.6%
Connection.waitpsycopg/connection.py:4952 ms2.6%
project_dashboardapps/projects/urls.py:1352 ms2.6%
shellapps/projects/urls.py:732 ms2.6%
can_manageapps/projects/urls.py:442 ms2.6%
can_manage_projectapps/projects/urls.py:40 return user.is_superuser or project.organization.membership_set.filter(user=user).exists()2 ms2.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.6%
QuerySet.filterdjango/db/models/query.py:15422 ms2.6%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms2.6%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms2.6%
Query.add_qdjango/db/models/sql/query.py:16712 ms2.6%
Query._add_qdjango/db/models/sql/query.py:17032 ms2.6%
Query.build_filterdjango/db/models/sql/query.py:16072 ms2.6%
Query._get_coldjango/db/models/sql/query.py:4512 ms2.6%
project_dashboardapps/projects/urls.py:136 has_profiles = Profile.objects.filter(project=project).exists()2 ms2.6%
QuerySet.existsdjango/db/models/query.py:13372 ms2.6%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.6%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.6%
Cursor.executepsycopg/cursor.py:1132 ms2.6%
Connection.waitpsycopg/connection.py:4952 ms2.6%
project_dashboardapps/projects/urls.py:137 if not has_profiles and not Run.objects.filter(project=project).exists():2 ms2.6%
QuerySet.existsdjango/db/models/query.py:13372 ms2.6%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.6%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.6%
Cursor.executepsycopg/cursor.py:1132 ms2.6%
Connection.waitpsycopg/connection.py:4952 ms2.6%
MiddlewareMixin.__call__django/utils/deprecation.py:3112 ms2.6%
SessionMiddleware.process_responsedjango/contrib/sessions/middleware.py:592 ms2.6%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms2.6%
Model.savedjango/db/models/base.py:8742 ms2.6%
Model.save_basedjango/db/models/base.py:9662 ms2.6%
Model._save_tabledjango/db/models/base.py:11102 ms2.6%
Model._do_updatedjango/db/models/base.py:12112 ms2.6%
QuerySet._updatedjango/db/models/query.py:13272 ms2.6%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms2.6%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms2.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.6%
Cursor.executepsycopg/cursor.py:1132 ms2.6%
Connection.waitpsycopg/connection.py:4952 ms2.6%
TestDocsPage.test_linked_from_the_appft/tests.py:808 ms10.4%
make_projectapps/projects/testing.py:622 ms2.6%
unique_slugapps/orgs/models.py:46 while slug in reserved or taken.filter(slug=slug).exists():2 ms2.6%
QuerySet.existsdjango/db/models/query.py:13372 ms2.6%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.6%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.6%
Cursor.executepsycopg/cursor.py:1132 ms2.6%
Connection.waitpsycopg/connection.py:4952 ms2.6%
make_projectapps/projects/testing.py:61 organization = Organization.objects.create(2 ms2.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.6%
QuerySet.createdjango/db/models/query.py:6692 ms2.6%
Model.savedjango/db/models/base.py:8742 ms2.6%
Model.save_basedjango/db/models/base.py:9662 ms2.6%
Model._save_tabledjango/db/models/base.py:11672 ms2.6%
Model._do_insertdjango/db/models/base.py:12182 ms2.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.6%
QuerySet._insertdjango/db/models/query.py:19182 ms2.6%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.6%
make_projectapps/projects/testing.py:67 slug=unique_slug(name, organization.project_set.all(), fallback="project", reserved=RESERVED_PROJECT_SLUGS),2 ms2.6%
unique_slugapps/orgs/models.py:46 while slug in reserved or taken.filter(slug=slug).exists():2 ms2.6%
QuerySet.existsdjango/db/models/query.py:13372 ms2.6%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.6%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.6%
Cursor.executepsycopg/cursor.py:1132 ms2.6%
Connection.waitpsycopg/connection.py:4952 ms2.6%
make_projectapps/projects/testing.py:64 project = Project.objects.create(2 ms2.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.6%
QuerySet.createdjango/db/models/query.py:6692 ms2.6%
Model.savedjango/db/models/base.py:8742 ms2.6%
Model.save_basedjango/db/models/base.py:9662 ms2.6%
Model._save_tabledjango/db/models/base.py:11672 ms2.6%
Model._do_insertdjango/db/models/base.py:12182 ms2.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.6%
QuerySet._insertdjango/db/models/query.py:19182 ms2.6%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.6%
Cursor.executepsycopg/cursor.py:1132 ms2.6%
Connection.waitpsycopg/connection.py:4952 ms2.6%
TestDocsPage.test_linked_from_the_appft/tests.py:82 self.client.force_login(user)8 ms10.4%
ClientMixin.force_logindjango/test/client.py:8558 ms10.4%
ClientMixin._logindjango/test/client.py:8764 ms5.2%
ClientMixin.sessiondjango/test/client.py:8124 ms5.2%
SessionStore.savedjango/contrib/sessions/backends/db.py:1214 ms5.2%
SessionStore.createdjango/contrib/sessions/backends/db.py:702 ms2.6%
SessionBase._get_new_session_keydjango/contrib/sessions/backends/base.py:1982 ms2.6%
SessionStore.existsdjango/contrib/sessions/backends/db.py:632 ms2.6%
QuerySet.existsdjango/db/models/query.py:13372 ms2.6%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.6%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.6%
Cursor.executepsycopg/cursor.py:1132 ms2.6%
Connection.waitpsycopg/connection.py:4952 ms2.6%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms2.6%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms2.6%
Model.savedjango/db/models/base.py:8742 ms2.6%
Model.save_basedjango/db/models/base.py:9662 ms2.6%
Model._save_tabledjango/db/models/base.py:11672 ms2.6%
Model._do_insertdjango/db/models/base.py:12182 ms2.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.6%
QuerySet._insertdjango/db/models/query.py:19182 ms2.6%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.6%
Cursor.executepsycopg/cursor.py:1132 ms2.6%
Connection.waitpsycopg/connection.py:4952 ms2.6%
ClientMixin._logindjango/test/client.py:8814 ms5.2%
logindjango/contrib/auth/__init__.py:1752 ms2.6%
SessionBase.__contains__django/contrib/sessions/backends/base.py:522 ms2.6%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms2.6%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms2.6%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms2.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.6%
QuerySet.getdjango/db/models/query.py:6352 ms2.6%
QuerySet.__len__django/db/models/query.py:3722 ms2.6%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.6%
ModelIterable.__iter__django/db/models/query.py:952 ms2.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.6%
Cursor.executepsycopg/cursor.py:1132 ms2.6%
Connection.waitpsycopg/connection.py:4952 ms2.6%
logindjango/contrib/auth/__init__.py:1972 ms2.6%
Signal.senddjango/dispatch/dispatcher.py:2092 ms2.6%
update_last_logindjango/contrib/auth/models.py:242 ms2.6%
AbstractBaseUser.savedjango/contrib/auth/base_user.py:622 ms2.6%
Model.savedjango/db/models/base.py:8742 ms2.6%
Model.save_basedjango/db/models/base.py:9662 ms2.6%
Model._save_tabledjango/db/models/base.py:10572 ms2.6%
TestDocsPage.test_linked_from_the_appft/tests.py:814 ms5.2%
add_memberapps/projects/testing.py:76 membership, _ = Membership.objects.get_or_create(4 ms5.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms5.2%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms2.6%
QuerySet.getdjango/db/models/query.py:6352 ms2.6%
QuerySet.__len__django/db/models/query.py:3722 ms2.6%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.6%
ModelIterable.__iter__django/db/models/query.py:952 ms2.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.6%
Cursor.executepsycopg/cursor.py:1132 ms2.6%
Connection.waitpsycopg/connection.py:4952 ms2.6%
QuerySet.get_or_createdjango/db/models/query.py:9942 ms2.6%
QuerySet.createdjango/db/models/query.py:6692 ms2.6%
Model.savedjango/db/models/base.py:8742 ms2.6%
Model.save_basedjango/db/models/base.py:9662 ms2.6%
Model._save_tabledjango/db/models/base.py:11672 ms2.6%
Model._do_insertdjango/db/models/base.py:12182 ms2.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.6%
QuerySet._insertdjango/db/models/query.py:19182 ms2.6%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.6%
Cursor.executepsycopg/cursor.py:1132 ms2.6%
Connection.waitpsycopg/connection.py:4952 ms2.6%
TestDocsPage.test_linked_from_the_appft/tests.py:79 user = User.objects.create_user("docs-reader")2 ms2.6%
UserManager.create_userdjango/contrib/auth/models.py:1752 ms2.6%
UserManager._create_userdjango/contrib/auth/models.py:1632 ms2.6%
AbstractBaseUser.savedjango/contrib/auth/base_user.py:622 ms2.6%
Model.savedjango/db/models/base.py:8742 ms2.6%
Model.save_basedjango/db/models/base.py:9662 ms2.6%
Model._save_tabledjango/db/models/base.py:11672 ms2.6%
Model._do_insertdjango/db/models/base.py:12182 ms2.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.6%
QuerySet._insertdjango/db/models/query.py:19182 ms2.6%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.6%
Cursor.executepsycopg/cursor.py:1132 ms2.6%
Connection.waitpsycopg/connection.py:4952 ms2.6%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()2 ms2.6%
TestCase._fixture_teardowndjango/test/testcases.py:14952 ms2.6%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4832 ms2.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.6%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.6%
Cursor.executepsycopg/cursor.py:1132 ms2.6%
Connection.waitpsycopg/connection.py:4952 ms2.6%
Estimated from 38 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
ft/tests.py:83
response = self.client.get(reverse("projects"), follow=True)
TestDocsPage.test_linked_from_the_app
· Libraries
|
30 ms |
|
ft/tests.py:82
self.client.force_login(user)
TestDocsPage.test_linked_from_the_app
· Database
|
8 ms |
|
apps/orgs/models.py:46
while slug in reserved or taken.filter(slug=slug).exists():
unique_slug
· Database
|
4 ms |
|
apps/projects/testing.py:76
membership, _ = Membership.objects.get_or_create(
add_member
· Database
|
4 ms |
|
apps/projects/urls.py:40
return user.is_superuser or project.organization.membership_set.filter(user=user).exists()
can_manage_project
· Database
|
4 ms |
|
apps/projects/urls.py:138
return render(request, "project_setup.html", context)
project_dashboard
· Templates
|
4 ms |
|
ft/tests.py:79
user = User.objects.create_user("docs-reader")
TestDocsPage.test_linked_from_the_app
· Database
|
2 ms |
|
apps/projects/testing.py:61
organization = Organization.objects.create(
make_project
· Database
|
2 ms |
|
apps/projects/testing.py:64
project = Project.objects.create(
make_project
· Database
|
2 ms |
|
apps/orgs/views.py:54
return ensure_organization(request.user)
current_organization
· App code
|
2 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.05 ms |
| _django_db_marker function | 0.04 ms |
| _django_set_urlconf function | 0.04 ms |
| _live_server_helper function | 0.04 ms |
| monkeypatch function | 0.04 ms |
| _template_string_if_invalid_marker function | 0.03 ms |
| _django_clear_site_cache function | 0.03 ms |
Database
49 queries · 18 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
3×
SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."expire_date" > %s AND "django_session"."session_key" = %s) LIMIT ?
Biggest pieces of work
|
call test body
ft/tests.py:83
|
68 ms |
| call pytest internals | 2 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
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 | 73 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 44 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 101 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 60 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 91 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 47 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 77 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 | 75 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 88 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 45 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 73 ms | Profile |