Tests / apps/projects/tests.py
ProjectsPageTest::test_other_peoples_project
First seen 2 years, 9 months ago in b9e98d9
CI
github-actions:test
5 runs
Average
67 ms
median 72 ms
max 78 ms
max 78 ms
Phases
Setup 0.74 ms
Call 66 ms
Teardown 0.19 ms
Categories
Database 36 ms
App code 0.36 ms
Other (Libraries, Templates, Unsampled, Serialization, ...) 31 ms
52 database queries per run
Needs 5 KB of memory (max 24 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 47 minutes ago ·
open run
setup0.87 ms1.2%
__init____init__:-10.87 ms1.2%
call71 ms98.5%
ProjectsPageTest.test_other_peoples_projectapps/projects/tests.py:116 response = self.client.get("/projects/", follow=True)49 ms68.7%
Client.getdjango/test/client.py:112428 ms38.8%
RequestFactory.getdjango/test/client.py:47528 ms38.8%
RequestFactory.genericdjango/test/client.py:67128 ms38.8%
Client.requestdjango/test/client.py:108228 ms38.8%
ClientHandler.__call__django/test/client.py:17317 ms23.9%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6217 ms23.9%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10417 ms23.9%
WhiteNoise.add_fileswhitenoise/base.py:10817 ms23.9%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12011 ms14.9%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13111 ms14.9%
WhiteNoise.get_static_filewhitenoise/base.py:20811 ms14.9%
StaticFile.__init__whitenoise/responders.py:734 ms6.0%
StaticFile.get_headerswhitenoise/responders.py:1782 ms3.0%
StaticFile.get_headerswhitenoise/responders.py:1712 ms3.0%
StaticFile.__init__whitenoise/responders.py:742 ms3.0%
parsedate<stdlib>/email/_parseaddr.py:1852 ms3.0%
StaticFile.__init__whitenoise/responders.py:762 ms3.0%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1156 ms9.0%
scantreewhitenoise/base.py:2624 ms6.0%
scantreewhitenoise/base.py:2624 ms6.0%
scantreewhitenoise/base.py:2622 ms3.0%
scantreewhitenoise/base.py:2622 ms3.0%
scantreewhitenoise/base.py:2622 ms3.0%
scantreewhitenoise/base.py:2642 ms3.0%
scantreewhitenoise/base.py:2602 ms3.0%
scantreewhitenoise/base.py:2642 ms3.0%
ClientHandler.__call__django/test/client.py:18611 ms14.9%
BaseHandler.get_responsedjango/core/handlers/base.py:14111 ms14.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms14.9%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13011 ms14.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms14.9%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms14.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms14.9%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12311 ms14.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms14.9%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms14.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms14.9%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms14.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms14.9%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms14.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms14.9%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms14.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms14.9%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms14.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms14.9%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms14.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms14.9%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3411 ms14.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms14.9%
BaseHandler._get_responsedjango/core/handlers/base.py:19811 ms14.9%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:599 ms11.9%
homeapps/orgs/views.py:726 ms9.0%
current_organizationapps/orgs/views.py:546 ms9.0%
ensure_organizationapps/orgs/models.py:126 membership = Membership.objects.filter(user=user).select_related("organization").order_by("id").first()2 ms3.0%
QuerySet.firstdjango/db/models/query.py:11452 ms3.0%
QuerySet.__iter__django/db/models/query.py:3902 ms3.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.0%
ModelIterable.__iter__django/db/models/query.py:952 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
ensure_organizationapps/orgs/models.py:130 organization = Organization.objects.create(2 ms3.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.0%
QuerySet.createdjango/db/models/query.py:6692 ms3.0%
Model.savedjango/db/models/base.py:8282 ms3.0%
Model._prepare_related_fields_for_savedjango/db/models/base.py:12452 ms3.0%
ensure_organizationapps/orgs/models.py:133 Membership.objects.create(organization=organization, user=user, role=Membership.Role.OWNER)2 ms3.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.0%
QuerySet.createdjango/db/models/query.py:6692 ms3.0%
Model.savedjango/db/models/base.py:8742 ms3.0%
Model.save_basedjango/db/models/base.py:9662 ms3.0%
Model._save_tabledjango/db/models/base.py:11672 ms3.0%
Model._do_insertdjango/db/models/base.py:12182 ms3.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.0%
QuerySet._insertdjango/db/models/query.py:19182 ms3.0%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
homeapps/orgs/views.py:74 if not projects.exists():2 ms3.0%
QuerySet.existsdjango/db/models/query.py:13372 ms3.0%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms3.0%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:562 ms3.0%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:792 ms3.0%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2512 ms3.0%
SimpleLazyObject._setupdjango/utils/functional.py:4042 ms3.0%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:402 ms3.0%
get_userdjango/contrib/auth/middleware.py:202 ms3.0%
get_userdjango/contrib/auth/__init__.py:3112 ms3.0%
_get_user_session_keydjango/contrib/auth/__init__.py:952 ms3.0%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:552 ms3.0%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms3.0%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms3.0%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms3.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.0%
QuerySet.getdjango/db/models/query.py:6352 ms3.0%
QuerySet.__len__django/db/models/query.py:3722 ms3.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.0%
ModelIterable.__iter__django/db/models/query.py:952 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
Client.getdjango/test/client.py:113321 ms29.9%
Client._handle_redirectsdjango/test/client.py:138421 ms29.9%
ClientMixin._follow_redirectdjango/test/client.py:100221 ms29.9%
Client.getdjango/test/client.py:112421 ms29.9%
RequestFactory.getdjango/test/client.py:47521 ms29.9%
RequestFactory.genericdjango/test/client.py:67121 ms29.9%
Client.requestdjango/test/client.py:108221 ms29.9%
ClientHandler.__call__django/test/client.py:18621 ms29.9%
BaseHandler.get_responsedjango/core/handlers/base.py:14121 ms29.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms29.9%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13021 ms29.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms29.9%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms29.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms29.9%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12321 ms29.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms29.9%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms29.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms29.9%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms29.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms29.9%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms26.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms26.9%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms26.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms26.9%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms26.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms26.9%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms26.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms26.9%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3419 ms26.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms26.9%
BaseHandler._get_responsedjango/core/handlers/base.py:19819 ms26.9%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:5917 ms23.9%
project_createapps/orgs/views.py:1416 ms9.0%
org_shellapps/orgs/views.py:33 organizations = [] if user.is_anonymous else list(Organization.objects.filter(membership__user=user))2 ms3.0%
QuerySet.__iter__django/db/models/query.py:3902 ms3.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.0%
ModelIterable.__iter__django/db/models/query.py:952 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
org_shellapps/orgs/views.py:40 "org_projects": list(organization.project_set.order_by("name")) if member else [],2 ms3.0%
QuerySet.__iter__django/db/models/query.py:3902 ms3.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.0%
ModelIterable.__iter__django/db/models/query.py:952 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
org_shellapps/orgs/views.py:422 ms3.0%
Organization.is_ownerapps/orgs/models.py:65 return user.is_authenticated and self.membership_set.filter(user=user, role=Membership.Role.OWNER).exists()2 ms3.0%
QuerySet.existsdjango/db/models/query.py:13372 ms3.0%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms3.0%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
project_createapps/orgs/views.py:1254 ms6.0%
member_organizationapps/orgs/views.py:59 organization = get_object_or_404(Organization, slug=org_slug)2 ms3.0%
get_object_or_404django/shortcuts.py:902 ms3.0%
QuerySet.getdjango/db/models/query.py:6352 ms3.0%
QuerySet.__len__django/db/models/query.py:3722 ms3.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.0%
ModelIterable.__iter__django/db/models/query.py:952 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
member_organizationapps/orgs/views.py:622 ms3.0%
Organization.is_memberapps/orgs/models.py:62 return user.is_authenticated and self.membership_set.filter(user=user).exists()2 ms3.0%
QuerySet.existsdjango/db/models/query.py:13372 ms3.0%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms3.0%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
project_createapps/orgs/views.py:126 first = not Project.objects.filter(organization__membership__user=request.user).exists()2 ms3.0%
QuerySet.existsdjango/db/models/query.py:13372 ms3.0%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms3.0%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
project_createapps/orgs/views.py:1272 ms3.0%
Organization.is_ownerapps/orgs/models.py:65 return user.is_authenticated and self.membership_set.filter(user=user, role=Membership.Role.OWNER).exists()2 ms3.0%
QuerySet.existsdjango/db/models/query.py:13372 ms3.0%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms3.0%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
project_createapps/orgs/views.py:137 return render(2 ms3.0%
renderdjango/shortcuts.py:252 ms3.0%
render_to_stringdjango/template/loader.py:622 ms3.0%
Template.renderdjango/template/backends/django.py:1072 ms3.0%
Template.renderdjango/template/base.py:1742 ms3.0%
instrumented_test_renderdjango/test/utils.py:1142 ms3.0%
NodeList.renderdjango/template/base.py:10912 ms3.0%
Node.render_annotateddjango/template/base.py:10522 ms3.0%
ExtendsNode.renderdjango/template/loader_tags.py:1602 ms3.0%
instrumented_test_renderdjango/test/utils.py:1142 ms3.0%
NodeList.renderdjango/template/base.py:10912 ms3.0%
Node.render_annotateddjango/template/base.py:10522 ms3.0%
ExtendsNode.renderdjango/template/loader_tags.py:1602 ms3.0%
instrumented_test_renderdjango/test/utils.py:1142 ms3.0%
NodeList.renderdjango/template/base.py:10912 ms3.0%
Node.render_annotateddjango/template/base.py:10522 ms3.0%
BlockNode.renderdjango/template/loader_tags.py:662 ms3.0%
NodeList.renderdjango/template/base.py:10912 ms3.0%
Node.render_annotateddjango/template/base.py:10522 ms3.0%
IfNode.renderdjango/template/defaulttags.py:3262 ms3.0%
TemplateLiteral.evaldjango/template/defaulttags.py:9182 ms3.0%
FilterExpression.resolvedjango/template/base.py:7882 ms3.0%
Variable.resolvedjango/template/base.py:9282 ms3.0%
Variable._resolve_lookupdjango/template/base.py:9822 ms3.0%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:562 ms3.0%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:792 ms3.0%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2512 ms3.0%
SimpleLazyObject._setupdjango/utils/functional.py:4042 ms3.0%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:402 ms3.0%
get_userdjango/contrib/auth/middleware.py:202 ms3.0%
get_userdjango/contrib/auth/__init__.py:3112 ms3.0%
_get_user_session_keydjango/contrib/auth/__init__.py:952 ms3.0%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:552 ms3.0%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms3.0%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms3.0%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms3.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.0%
QuerySet.getdjango/db/models/query.py:6252 ms3.0%
QuerySet.filterdjango/db/models/query.py:15422 ms3.0%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms3.0%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms3.0%
Query.add_qdjango/db/models/sql/query.py:16712 ms3.0%
Query._add_qdjango/db/models/sql/query.py:17032 ms3.0%
Query.build_filterdjango/db/models/sql/query.py:16132 ms3.0%
Query.build_lookupdjango/db/models/sql/query.py:14402 ms3.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3112 ms3.0%
CsrfViewMiddleware.process_responsedjango/middleware/csrf.py:4742 ms3.0%
CsrfViewMiddleware._set_csrf_cookiedjango/middleware/csrf.py:2582 ms3.0%
HttpResponseBase.set_cookiedjango/http/response.py:2682 ms3.0%
ProjectsPageTest.setUpapps/projects/tests.py:100 self.client.force_login(self.user)9 ms11.9%
ClientMixin.force_logindjango/test/client.py:8536 ms9.0%
ClientMixin._get_backenddjango/test/client.py:8672 ms3.0%
ClientMixin._logindjango/test/client.py:8762 ms3.0%
ClientMixin.sessiondjango/test/client.py:8122 ms3.0%
SessionStore.savedjango/contrib/sessions/backends/db.py:1212 ms3.0%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms3.0%
SessionStore.savedjango/contrib/sessions/backends/db.py:1262 ms3.0%
Atomic.__enter__django/db/transaction.py:1832 ms3.0%
get_connectiondjango/db/transaction.py:252 ms3.0%
ClientMixin._logindjango/test/client.py:8812 ms3.0%
logindjango/contrib/auth/__init__.py:1872 ms3.0%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4342 ms3.0%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms3.0%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms3.0%
Model.savedjango/db/models/base.py:8742 ms3.0%
Model.save_basedjango/db/models/base.py:9662 ms3.0%
Model._save_tabledjango/db/models/base.py:11672 ms3.0%
Model._do_insertdjango/db/models/base.py:12182 ms3.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.0%
QuerySet._insertdjango/db/models/query.py:19182 ms3.0%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms3.0%
ClientMixin.force_logindjango/test/client.py:8552 ms3.0%
ClientMixin._logindjango/test/client.py:8812 ms3.0%
logindjango/contrib/auth/__init__.py:1872 ms3.0%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4372 ms3.0%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1752 ms3.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.0%
QuerySet.getdjango/db/models/query.py:6352 ms3.0%
QuerySet.__len__django/db/models/query.py:3722 ms3.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.0%
ModelIterable.__iter__django/db/models/query.py:952 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
ProjectsPageTest.test_other_peoples_projectapps/projects/tests.py:118 response = self.client.get(reverse("org_projects", args=[project.organization.slug]))6 ms9.0%
Client.getdjango/test/client.py:11246 ms9.0%
RequestFactory.getdjango/test/client.py:4756 ms9.0%
RequestFactory.genericdjango/test/client.py:6716 ms9.0%
Client.requestdjango/test/client.py:10826 ms9.0%
ClientHandler.__call__django/test/client.py:1866 ms9.0%
BaseHandler.get_responsedjango/core/handlers/base.py:1416 ms9.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms9.0%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1306 ms9.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms9.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms9.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms9.0%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1236 ms9.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms9.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms9.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms9.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms9.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms9.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms9.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms9.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms9.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms9.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms9.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms9.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms9.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms9.0%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:346 ms9.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms9.0%
BaseHandler._get_responsedjango/core/handlers/base.py:1986 ms9.0%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:564 ms6.0%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:794 ms6.0%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2514 ms6.0%
SimpleLazyObject._setupdjango/utils/functional.py:4044 ms6.0%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:404 ms6.0%
get_userdjango/contrib/auth/middleware.py:204 ms6.0%
get_userdjango/contrib/auth/__init__.py:3112 ms3.0%
_get_user_session_keydjango/contrib/auth/__init__.py:952 ms3.0%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:552 ms3.0%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms3.0%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms3.0%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms3.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.0%
QuerySet.getdjango/db/models/query.py:6352 ms3.0%
QuerySet.__len__django/db/models/query.py:3722 ms3.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.0%
ModelIterable.__iter__django/db/models/query.py:952 ms3.0%
get_userdjango/contrib/auth/__init__.py:3182 ms3.0%
ModelBackend.get_userdjango/contrib/auth/backends.py:2322 ms3.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.0%
QuerySet.getdjango/db/models/query.py:6352 ms3.0%
QuerySet.__len__django/db/models/query.py:3722 ms3.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.0%
ModelIterable.__iter__django/db/models/query.py:952 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:592 ms3.0%
org_projectsapps/orgs/views.py:842 ms3.0%
member_organizationapps/orgs/views.py:622 ms3.0%
Organization.is_memberapps/orgs/models.py:62 return user.is_authenticated and self.membership_set.filter(user=user).exists()2 ms3.0%
QuerySet.existsdjango/db/models/query.py:13372 ms3.0%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms3.0%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
ProjectsPageTest.test_other_peoples_projectapps/projects/tests.py:115 add_member(project, User.objects.create_user("otheruser"))4 ms6.0%
UserManager.create_userdjango/contrib/auth/models.py:1752 ms3.0%
UserManager._create_userdjango/contrib/auth/models.py:1632 ms3.0%
AbstractBaseUser.savedjango/contrib/auth/base_user.py:622 ms3.0%
Model.savedjango/db/models/base.py:8742 ms3.0%
Model.save_basedjango/db/models/base.py:9662 ms3.0%
Model._save_tabledjango/db/models/base.py:11672 ms3.0%
Model._do_insertdjango/db/models/base.py:12182 ms3.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.0%
QuerySet._insertdjango/db/models/query.py:19182 ms3.0%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms3.0%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms3.0%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms3.0%
add_memberapps/projects/testing.py:76 membership, _ = Membership.objects.get_or_create(2 ms3.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.0%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms3.0%
QuerySet.getdjango/db/models/query.py:6352 ms3.0%
QuerySet.__len__django/db/models/query.py:3722 ms3.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.0%
ModelIterable.__iter__django/db/models/query.py:952 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
ProjectsPageTest.test_other_peoples_projectapps/projects/tests.py:114 project = make_project("Test Project")2 ms3.0%
make_projectapps/projects/testing.py:61 organization = Organization.objects.create(2 ms3.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.0%
QuerySet.createdjango/db/models/query.py:6692 ms3.0%
Model.savedjango/db/models/base.py:8742 ms3.0%
Model.save_basedjango/db/models/base.py:9662 ms3.0%
Model._save_tabledjango/db/models/base.py:11672 ms3.0%
Model._do_insertdjango/db/models/base.py:12182 ms3.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.0%
QuerySet._insertdjango/db/models/query.py:19182 ms3.0%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
Estimated from 34 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/projects/tests.py:116
response = self.client.get("/projects/", follow=True)
ProjectsPageTest.test_other_peoples_project
· Libraries
|
24 ms |
|
apps/projects/tests.py:100
self.client.force_login(self.user)
ProjectsPageTest.setUp
· Database
|
9 ms |
|
apps/orgs/models.py:62
return user.is_authenticated and self.membership_set.filter(user=user).exists()
Organization.is_member
· Database
|
4 ms |
|
apps/orgs/models.py:65
return user.is_authenticated and self.membership_set.filter(user=user, role=Membership.Role.OWNER).exists()
Organization.is_owner
· Database
|
4 ms |
|
apps/projects/tests.py:118
response = self.client.get(reverse("org_projects", args=[project.organization.slug]))
ProjectsPageTest.test_other_peoples_project
· Database
|
4 ms |
|
apps/projects/testing.py:61
organization = Organization.objects.create(
make_project
· Database
|
2 ms |
|
apps/projects/tests.py:115
add_member(project, User.objects.create_user("otheruser"))
ProjectsPageTest.test_other_peoples_project
· Database
|
2 ms |
|
apps/projects/testing.py:76
membership, _ = Membership.objects.get_or_create(
add_member
· Database
|
2 ms |
|
apps/orgs/models.py:126
membership = Membership.objects.filter(user=user).select_related("organization").order_by("id").first()
ensure_organization
· Database
|
2 ms |
|
apps/orgs/models.py:130
organization = Organization.objects.create(
ensure_organization
· Database
|
2 ms |
Fixtures
Exact setup time| _template_string_if_invalid_marker function | 0.07 ms |
| _django_db_marker function | 0.06 ms |
| _django_set_urlconf function | 0.05 ms |
| _dj_autoclear_mailbox function | 0.05 ms |
| _live_server_helper function | 0.03 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
52 queries · 18 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
4×
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 ?
3×
SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "a…
Biggest pieces of work
|
call test body
apps/projects/tests.py:114
|
62 ms |
|
call setUp
apps/projects/tests.py:100
|
9 ms |
|
setup __init__
__init__:-1
|
0.87 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 | |
|---|---|---|---|---|
| 47 minutes ago | CI github-actions:test | passed | 72 ms | Profile |
| an hour ago | CI github-actions:test | passed | 72 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 78 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 37 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 77 ms | Profile |
| 2 years ago | CI github-actions | passed | 178 ms | Run |
| 2 years, 2 months ago | CI github-actions | passed | 183 ms | Run |
| 2 years, 3 months ago | CI github-actions | passed | 159 ms | Run |
| 2 years, 4 months ago | CI github-actions | passed | 129 ms | Run |
| 2 years, 4 months ago | CI github-actions | passed | 126 ms | Run |
| 2 years, 4 months ago | CI github-actions | passed | 135 ms | Run |
| 2 years, 4 months ago | CI github-actions | passed | 118 ms | Run |
| 2 years, 5 months ago | CI github-actions | passed | 121 ms | Run |
| 2 years, 5 months ago | CI github-actions | passed | 114 ms | Run |
| 2 years, 5 months ago | CI github-actions | passed | 118 ms | Run |
| 2 years, 5 months ago | CI github-actions | passed | 116 ms | Run |
| 2 years, 5 months ago | CI github-actions | passed | 119 ms | Run |
| 2 years, 6 months ago | CI github-actions | passed | 121 ms | Run |
| 2 years, 6 months ago | CI github-actions | passed | 117 ms | Run |
| 2 years, 6 months ago | CI github-actions | passed | 114 ms | Run |