Tests / apps/projects/tests.py
ProjectCreatePage::test_first_project_is_onboarding
First seen 3 weeks ago in 78a4357
CI
github-actions:test
12 runs
Average
83 ms
median 88 ms
max 108 ms
max 108 ms
Phases
Setup 11 ms
Call 72 ms
Teardown 0.16 ms
Categories
Database 59 ms
Test code 0.17 ms
App code 0.16 ms
Password hashing 0.09 ms
Other (Libraries, Templates, pytest, Unsampled) 24 ms
56 database queries per run
Needs 126 KB of memory (max 380 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
setup10 ms11.9%
TestCase.setUpClassdjango/test/testcases.py:1423 cls.cls_atomics = cls._enter_atomics()9 ms10.7%
TestCase._enter_atomicsdjango/test/testcases.py:13969 ms10.7%
Atomic.__enter__django/db/transaction.py:1989 ms10.7%
BaseDatabaseWrapper.get_autocommitdjango/db/backends/base/base.py:4549 ms10.7%
SimpleTestCase.ensure_connection_patch_method.<locals>.patched_ensure_connectiondjango/test/testcases.py:3039 ms10.7%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:269 ms10.7%
BaseDatabaseWrapper.ensure_connectiondjango/db/backends/base/base.py:2799 ms10.7%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:269 ms10.7%
BaseDatabaseWrapper.connectdjango/db/backends/base/base.py:2569 ms10.7%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:269 ms10.7%
DatabaseWrapper.get_new_connectiondjango/db/backends/postgresql/base.py:3339 ms10.7%
Connection.connectpsycopg/connection.py:1099 ms10.7%
wait_connpsycopg/waiting.py:1455 ms5.9%
BaseConnection._connect_genpsycopg/_connection_base.py:4395 ms5.9%
wait_connpsycopg/waiting.py:1362 ms2.4%
BaseConnection._connect_genpsycopg/_connection_base.py:4392 ms2.4%
wait_connpsycopg/waiting.py:1412 ms2.4%
EpollSelector.select<stdlib>/selectors.py:4522 ms2.4%
TestCase.setUpClassdjango/test/testcases.py:1439 cls.setUpTestData()1 ms1.2%
ProjectCreatePage.setUpTestDataapps/projects/tests.py:2161 ms1.2%
UserManager.create_userdjango/contrib/auth/models.py:1751 ms1.2%
UserManager._create_userdjango/contrib/auth/models.py:1631 ms1.2%
AbstractBaseUser.savedjango/contrib/auth/base_user.py:621 ms1.2%
Model.savedjango/db/models/base.py:8741 ms1.2%
Model.save_basedjango/db/models/base.py:9661 ms1.2%
Model._save_tabledjango/db/models/base.py:11671 ms1.2%
Model._do_insertdjango/db/models/base.py:12181 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.2%
QuerySet._insertdjango/db/models/query.py:19181 ms1.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
call77 ms87.9%
ProjectCreatePage.test_first_project_is_onboardingapps/projects/tests.py:228 response = self.client.get("/projects/create/", follow=True)45 ms51.8%
Client.getdjango/test/client.py:112432 ms36.1%
RequestFactory.getdjango/test/client.py:47532 ms36.1%
RequestFactory.genericdjango/test/client.py:67132 ms36.1%
Client.requestdjango/test/client.py:108232 ms36.1%
ClientHandler.__call__django/test/client.py:17326 ms29.3%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6226 ms29.3%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10426 ms29.3%
WhiteNoise.add_fileswhitenoise/base.py:10826 ms29.3%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12022 ms24.8%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13122 ms24.8%
WhiteNoise.get_static_filewhitenoise/base.py:20814 ms15.8%
StaticFile.__init__whitenoise/responders.py:744 ms4.5%
parsedate<stdlib>/email/_parseaddr.py:1852 ms2.3%
Headers.__getitem__<stdlib>/wsgiref/headers.py:832 ms2.3%
StaticFile.__init__whitenoise/responders.py:764 ms4.5%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1892 ms2.3%
Headers.__getitem__<stdlib>/wsgiref/headers.py:832 ms2.3%
Headers.get<stdlib>/wsgiref/headers.py:1042 ms2.3%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:502 ms2.3%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1882 ms2.3%
StaticFile.__init__whitenoise/responders.py:772 ms2.3%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms2.3%
StaticFile.__init__whitenoise/responders.py:722 ms2.3%
StaticFile.__init__whitenoise/responders.py:732 ms2.3%
StaticFile.get_headerswhitenoise/responders.py:1672 ms2.3%
WhiteNoise.get_static_filewhitenoise/base.py:2038 ms9.0%
WhiteNoise.add_cache_headerswhitenoise/base.py:2248 ms9.0%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1766 ms6.8%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1976 ms6.8%
URLMixin.urldebug_toolbar/panels/staticfiles.py:202 ms2.3%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2052 ms2.3%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1782 ms2.3%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1154 ms4.5%
scantreewhitenoise/base.py:2624 ms4.5%
scantreewhitenoise/base.py:2642 ms2.3%
scantreewhitenoise/base.py:2622 ms2.3%
scantreewhitenoise/base.py:2642 ms2.3%
ClientHandler.__call__django/test/client.py:1866 ms6.8%
BaseHandler.get_responsedjango/core/handlers/base.py:1416 ms6.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms6.8%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1306 ms6.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms6.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms6.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms6.8%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1236 ms6.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms6.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms6.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms6.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms6.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms6.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms6.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms6.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms6.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms6.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms6.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms6.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3096 ms6.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms6.8%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:346 ms6.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:556 ms6.8%
BaseHandler._get_responsedjango/core/handlers/base.py:1986 ms6.8%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:594 ms4.5%
<lambda>ft/urls.py:1724 ms4.5%
current_organizationapps/orgs/views.py:54 return ensure_organization(request.user)4 ms4.5%
ensure_organizationapps/orgs/models.py:126 membership = Membership.objects.filter(user=user).select_related("organization").order_by("id").first()2 ms2.3%
QuerySet.firstdjango/db/models/query.py:11452 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%
ensure_organizationapps/orgs/models.py:1312 ms2.3%
unique_slugapps/orgs/models.py:46 while slug in reserved or taken.filter(slug=slug).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%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:562 ms2.3%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:792 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:3112 ms2.3%
_get_user_session_keydjango/contrib/auth/__init__.py:952 ms2.3%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:552 ms2.3%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms2.3%
SessionStore.loaddjango/contrib/sessions/backends/db.py:562 ms2.3%
SessionBase.decodedjango/contrib/sessions/backends/base.py:1352 ms2.3%
loadsdjango/core/signing.py:1712 ms2.3%
Signer.unsign_objectdjango/core/signing.py:2442 ms2.3%
TimestampSigner.unsigndjango/core/signing.py:2682 ms2.3%
Signer.unsigndjango/core/signing.py:2122 ms2.3%
Signer.signaturedjango/core/signing.py:2022 ms2.3%
base64_hmacdjango/core/signing.py:1012 ms2.3%
salted_hmacdjango/utils/crypto.py:452 ms2.3%
Client.getdjango/test/client.py:113314 ms15.8%
Client._handle_redirectsdjango/test/client.py:138414 ms15.8%
ClientMixin._follow_redirectdjango/test/client.py:100214 ms15.8%
Client.getdjango/test/client.py:112414 ms15.8%
RequestFactory.getdjango/test/client.py:47514 ms15.8%
RequestFactory.genericdjango/test/client.py:67114 ms15.8%
Client.requestdjango/test/client.py:108214 ms15.8%
ClientHandler.__call__django/test/client.py:18614 ms15.8%
BaseHandler.get_responsedjango/core/handlers/base.py:14114 ms15.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms15.8%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13014 ms15.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms15.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms15.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms15.8%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12314 ms15.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms15.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms13.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms13.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms13.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms13.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms13.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms13.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms13.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms13.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms13.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms13.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms13.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms13.5%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3412 ms13.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms13.5%
BaseHandler._get_responsedjango/core/handlers/base.py:19812 ms13.5%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:5910 ms11.3%
project_createapps/orgs/views.py:126 first = not Project.objects.filter(organization__membership__user=request.user).exists()4 ms4.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 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%
Query._add_qdjango/db/models/sql/query.py:17032 ms2.3%
Query.build_filterdjango/db/models/sql/query.py:15882 ms2.3%
Query.check_related_objectsdjango/db/models/sql/query.py:13972 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%
project_createapps/orgs/views.py:1414 ms4.5%
org_shellapps/orgs/views.py:40 "org_projects": list(organization.project_set.order_by("name")) if member else [],2 ms2.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.3%
create_reverse_many_to_one_manager.<locals>.RelatedManager.get_querysetdjango/db/models/fields/related_descriptors.py:7572 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%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.3%
QuerySet.filterdjango/db/models/query.py:15412 ms2.3%
QuerySet._not_support_combined_queriesdjango/db/models/query.py:20742 ms2.3%
QuerySet.querydjango/db/models/query.py:3062 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%
Query._add_qdjango/db/models/sql/query.py:17032 ms2.3%
Query.build_filterdjango/db/models/sql/query.py:16072 ms2.3%
Query._get_coldjango/db/models/sql/query.py:4512 ms2.3%
project_createapps/orgs/views.py:137 return render(2 ms2.3%
renderdjango/shortcuts.py:252 ms2.3%
render_to_stringdjango/template/loader.py:622 ms2.3%
Template.renderdjango/template/backends/django.py:1072 ms2.3%
Template.renderdjango/template/base.py:1742 ms2.3%
instrumented_test_renderdjango/test/utils.py:1142 ms2.3%
NodeList.renderdjango/template/base.py:10912 ms2.3%
Node.render_annotateddjango/template/base.py:10522 ms2.3%
ExtendsNode.renderdjango/template/loader_tags.py:1602 ms2.3%
instrumented_test_renderdjango/test/utils.py:1142 ms2.3%
NodeList.renderdjango/template/base.py:10912 ms2.3%
Node.render_annotateddjango/template/base.py:10522 ms2.3%
ExtendsNode.renderdjango/template/loader_tags.py:1602 ms2.3%
instrumented_test_renderdjango/test/utils.py:1142 ms2.3%
NodeList.renderdjango/template/base.py:10912 ms2.3%
Node.render_annotateddjango/template/base.py:10522 ms2.3%
BlockNode.renderdjango/template/loader_tags.py:662 ms2.3%
NodeList.renderdjango/template/base.py:10912 ms2.3%
Node.render_annotateddjango/template/base.py:10522 ms2.3%
IfNode.renderdjango/template/defaulttags.py:3332 ms2.3%
NodeList.renderdjango/template/base.py:10912 ms2.3%
Node.render_annotateddjango/template/base.py:10522 ms2.3%
SimpleNode.renderdjango/template/library.py:3252 ms2.3%
heroicon_miniheroicons/templatetags/heroicons.py:182 ms2.3%
_render_iconheroicons/templatetags/heroicons.py:392 ms2.3%
_render_iconheroicons/__init__.py:632 ms2.3%
tostring<stdlib>/xml/etree/ElementTree.py:11062 ms2.3%
ElementTree.write<stdlib>/xml/etree/ElementTree.py:7432 ms2.3%
_namespaces<stdlib>/xml/etree/ElementTree.py:8582 ms2.3%
_namespaces.<locals>.add_qname<stdlib>/xml/etree/ElementTree.py:8392 ms2.3%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:562 ms2.3%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:792 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:3112 ms2.3%
_get_user_session_keydjango/contrib/auth/__init__.py:952 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: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:11102 ms2.3%
Model._do_updatedjango/db/models/base.py:12112 ms2.3%
QuerySet._updatedjango/db/models/query.py:13272 ms2.3%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms2.3%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 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%
ProjectCreatePage.test_first_project_is_onboardingapps/projects/tests.py:235 response = self.client.post(12 ms13.5%
Client.postdjango/test/client.py:115312 ms13.5%
RequestFactory.postdjango/test/client.py:49912 ms13.5%
RequestFactory.genericdjango/test/client.py:67112 ms13.5%
Client.requestdjango/test/client.py:108212 ms13.5%
ClientHandler.__call__django/test/client.py:18612 ms13.5%
BaseHandler.get_responsedjango/core/handlers/base.py:14112 ms13.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms13.5%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13012 ms13.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms13.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms13.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms13.5%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12312 ms13.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms13.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms13.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms13.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms13.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms13.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms13.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms13.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms13.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms13.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms13.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms13.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms13.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms13.5%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3412 ms13.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms13.5%
BaseHandler._get_responsedjango/core/handlers/base.py:19812 ms13.5%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:5910 ms11.3%
project_createapps/orgs/views.py:1354 ms4.5%
create_projectapps/orgs/views.py:111 project = Project.objects.create(2 ms2.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.3%
QuerySet.createdjango/db/models/query.py:6692 ms2.3%
Model.savedjango/db/models/base.py:8282 ms2.3%
Model._prepare_related_fields_for_savedjango/db/models/base.py:12472 ms2.3%
create_projectapps/orgs/views.py:117 project.secrettokens_set.create(token=secrets.token_hex(32))2 ms2.3%
create_reverse_many_to_one_manager.<locals>.RelatedManager.createdjango/db/models/fields/related_descriptors.py:8332 ms2.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.3%
QuerySet.createdjango/db/models/query.py:6692 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%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms2.3%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms2.3%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms2.3%
PostgresClientQuery.dumppsycopg/_queries.py:2992 ms2.3%
project_createapps/orgs/views.py:1252 ms2.3%
member_organizationapps/orgs/views.py:622 ms2.3%
Organization.is_memberapps/orgs/models.py:62 return user.is_authenticated and self.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%
project_createapps/orgs/views.py:126 first = not Project.objects.filter(organization__membership__user=request.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%
project_createapps/orgs/views.py:134 organization.save(update_fields=["name"])2 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:11102 ms2.3%
Model._do_updatedjango/db/models/base.py:12112 ms2.3%
QuerySet._updatedjango/db/models/query.py:13272 ms2.3%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms2.3%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 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%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:562 ms2.3%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:792 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:3112 ms2.3%
_get_user_session_keydjango/contrib/auth/__init__.py:952 ms2.3%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:552 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: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%
ProjectCreatePage.setUpapps/projects/tests.py:219 self.client.force_login(self.user)10 ms11.3%
ClientMixin.force_logindjango/test/client.py:85510 ms11.3%
ClientMixin._logindjango/test/client.py:8764 ms4.5%
ClientMixin.sessiondjango/test/client.py:8124 ms4.5%
SessionStore.savedjango/contrib/sessions/backends/db.py:1214 ms4.5%
SessionStore.createdjango/contrib/sessions/backends/db.py:702 ms2.3%
SessionBase._get_new_session_keydjango/contrib/sessions/backends/base.py:1982 ms2.3%
SessionStore.existsdjango/contrib/sessions/backends/db.py:632 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%
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%
ClientMixin._logindjango/test/client.py:8814 ms4.5%
logindjango/contrib/auth/__init__.py:1872 ms2.3%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4372 ms2.3%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1752 ms2.3%
Model.deletedjango/db/models/base.py:12982 ms2.3%
Collector.deletedjango/db/models/deletion.py:4522 ms2.3%
DeleteQuery.delete_batchdjango/db/models/sql/subqueries.py:432 ms2.3%
DeleteQuery.do_querydjango/db/models/sql/subqueries.py:252 ms2.3%
Query.get_compilerdjango/db/models/sql/query.py:3692 ms2.3%
logindjango/contrib/auth/__init__.py:1972 ms2.3%
Signal.senddjango/dispatch/dispatcher.py:2092 ms2.3%
update_last_logindjango/contrib/auth/models.py:242 ms2.3%
AbstractBaseUser.savedjango/contrib/auth/base_user.py:622 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:11102 ms2.3%
Model._do_updatedjango/db/models/base.py:12112 ms2.3%
QuerySet._updatedjango/db/models/query.py:13272 ms2.3%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms2.3%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 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%
ClientMixin._logindjango/test/client.py:8832 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:11102 ms2.3%
Model._do_updatedjango/db/models/base.py:12112 ms2.3%
QuerySet._updatedjango/db/models/query.py:13272 ms2.3%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms2.3%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 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%
TransactionTestCase._pre_setupdjango/test/testcases.py:1164 cls._fixture_setup()2 ms2.3%
TestCase._fixture_setupdjango/test/testcases.py:14782 ms2.3%
TestCase._enter_atomicsdjango/test/testcases.py:13962 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%
ProjectCreatePage.test_first_project_is_onboardingapps/projects/tests.py:229 organization = Membership.objects.get(user=self.user).organization2 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%
ProjectCreatePage.test_first_project_is_onboardingapps/projects/tests.py:231 self.assertRedirects(response, reverse("project_create", args=["ada"]))2 ms2.3%
ProjectCreatePage.test_first_project_is_onboardingapps/projects/tests.py:2392 ms2.3%
Project.urlapps/projects/models.py:59 return reverse(name, args=[self.organization.slug, self.slug, *args])2 ms2.3%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms2.3%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 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%
ProjectCreatePage.test_first_project_is_onboardingapps/projects/tests.py:2422 ms2.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 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%
Estimated from 49 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/projects/tests.py:228
response = self.client.get("/projects/create/", follow=True)
ProjectCreatePage.test_first_project_is_onboarding
· Libraries
|
32 ms |
|
apps/projects/tests.py:219
self.client.force_login(self.user)
ProjectCreatePage.setUp
· Database
|
10 ms |
|
apps/orgs/views.py:126
first = not Project.objects.filter(organization__membership__user=request.user).exists()
project_create
· Database
|
6 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:46
while slug in reserved or taken.filter(slug=slug).exists():
unique_slug
· 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 |
|
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
|
2 ms |
|
apps/orgs/views.py:137
return render(
project_create
· Templates
|
2 ms |
|
apps/projects/tests.py:229
organization = Membership.objects.get(user=self.user).organization
ProjectCreatePage.test_first_project_is_onboarding
· Database
|
2 ms |
|
apps/projects/tests.py:231
self.assertRedirects(response, reverse("project_create", args=["ada"]))
ProjectCreatePage.test_first_project_is_onboarding
· Test code
|
2 ms |
Fixtures
Exact setup time| _unittest_setUpClass_fixture_ProjectCreatePage class | 9 ms |
| _django_setup_unittest class | 0.27 ms |
| _django_db_marker function | 0.06 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _dj_autoclear_mailbox function | 0.04 ms |
| _django_set_urlconf function | 0.03 ms |
| _live_server_helper function | 0.03 ms |
| _django_clear_site_cache function | 0.02 ms |
| monkeypatch function | 0.02 ms |
Database
56 queries · 19 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…
3×
SELECT %s AS "a" FROM "orgs_membership" WHERE ("orgs_membership"."organization_id" = %s AND "orgs_membership"."role" = %s AND "orgs_membership"."user_id" = %s) LIMIT ?
Biggest pieces of work
|
call test body
apps/projects/tests.py:228
|
65 ms |
|
setup setUpClass
django/test/testcases.py:1423
|
10 ms |
|
call setUp
apps/projects/tests.py:219
|
10 ms |
|
call _pre_setup
django/test/testcases.py:1164
|
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 | 87 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 53 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 86 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 82 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 108 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 67 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 91 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 91 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 88 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 102 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 56 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 91 ms | Profile |