Tests / apps/projects/tests.py
ProjectsPageTest::test_multiple_projects
First seen 2 years, 9 months ago in b9e98d9
CI
github-actions:test
5 runs
Average
86 ms
median 87 ms
max 110 ms
max 110 ms
Phases
Setup 12 ms
Call 74 ms
Teardown 0.18 ms
Categories
Database 55 ms
App code 0.36 ms
Other (Libraries, pytest, Unsampled) 31 ms
48 database queries per run
Needs 255 KB of memory (max 660 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 17 minutes ago ·
open run
setup12 ms13.6%
TestCase.setUpClassdjango/test/testcases.py:1423 cls.cls_atomics = cls._enter_atomics()10 ms11.1%
TestCase._enter_atomicsdjango/test/testcases.py:139610 ms11.1%
Atomic.__enter__django/db/transaction.py:19810 ms11.1%
BaseDatabaseWrapper.get_autocommitdjango/db/backends/base/base.py:45410 ms11.1%
SimpleTestCase.ensure_connection_patch_method.<locals>.patched_ensure_connectiondjango/test/testcases.py:30310 ms11.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:2610 ms11.1%
BaseDatabaseWrapper.ensure_connectiondjango/db/backends/base/base.py:27910 ms11.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:2610 ms11.1%
BaseDatabaseWrapper.connectdjango/db/backends/base/base.py:2569 ms9.9%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:269 ms9.9%
DatabaseWrapper.get_new_connectiondjango/db/backends/postgresql/base.py:3339 ms9.9%
Connection.connectpsycopg/connection.py:1099 ms9.9%
wait_connpsycopg/waiting.py:1414 ms5.0%
EpollSelector.select<stdlib>/selectors.py:4524 ms5.0%
wait_connpsycopg/waiting.py:1453 ms3.7%
BaseConnection._connect_genpsycopg/_connection_base.py:4393 ms3.7%
wait_connpsycopg/waiting.py:1361 ms1.2%
BaseConnection._connect_genpsycopg/_connection_base.py:4391 ms1.2%
BaseDatabaseWrapper.connectdjango/db/backends/base/base.py:2581 ms1.2%
DatabaseWrapper.init_connection_statedjango/db/backends/postgresql/base.py:4021 ms1.2%
DatabaseWrapper._configure_connectiondjango/db/backends/postgresql/base.py:3741 ms1.2%
DatabaseWrapper._configure_timezonedjango/db/backends/postgresql/base.py:3571 ms1.2%
Cursor.executepsycopg/cursor.py:1131 ms1.2%
Connection.waitpsycopg/connection.py:4951 ms1.2%
is_django_unittestpytest_django/django_compat.py:10 from django.test import SimpleTestCase1 ms1.2%
call75 ms86.2%
ProjectsPageTest.test_multiple_projectsapps/projects/tests.py:130 response = self.client.get("/projects/", follow=True)46 ms52.5%
Client.getdjango/test/client.py:112429 ms33.6%
RequestFactory.getdjango/test/client.py:47529 ms33.6%
RequestFactory.genericdjango/test/client.py:67129 ms33.6%
Client.requestdjango/test/client.py:108229 ms33.6%
ClientHandler.__call__django/test/client.py:17322 ms25.2%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6222 ms25.2%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10420 ms23.1%
WhiteNoise.add_fileswhitenoise/base.py:10820 ms23.1%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12016 ms18.9%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13116 ms18.9%
WhiteNoise.get_static_filewhitenoise/base.py:20811 ms12.6%
StaticFile.__init__whitenoise/responders.py:775 ms6.3%
StaticFile.get_alternativeswhitenoise/responders.py:2014 ms4.2%
StaticFile.get_alternativeswhitenoise/responders.py:2032 ms2.1%
Headers.__setitem__<stdlib>/wsgiref/headers.py:622 ms2.1%
Headers.__init__<stdlib>/wsgiref/headers.py:442 ms2.1%
StaticFile.__init__whitenoise/responders.py:734 ms4.2%
StaticFile.get_headerswhitenoise/responders.py:1764 ms4.2%
StaticFile.__init__whitenoise/responders.py:762 ms2.1%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1882 ms2.1%
Headers.__contains__<stdlib>/wsgiref/headers.py:872 ms2.1%
Headers.get<stdlib>/wsgiref/headers.py:1052 ms2.1%
WhiteNoise.get_static_filewhitenoise/base.py:2034 ms4.2%
WhiteNoise.add_cache_headerswhitenoise/base.py:2244 ms4.2%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1764 ms4.2%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1974 ms4.2%
URLMixin.urldebug_toolbar/panels/staticfiles.py:204 ms4.2%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2054 ms4.2%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1842 ms2.1%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1862 ms2.1%
FileSystemStorage.urldjango/core/files/storage/filesystem.py:2092 ms2.1%
WhiteNoise.get_static_filewhitenoise/base.py:2052 ms2.1%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1154 ms4.2%
scantreewhitenoise/base.py:2624 ms4.2%
scantreewhitenoise/base.py:2624 ms4.2%
scantreewhitenoise/base.py:2622 ms2.1%
scantreewhitenoise/base.py:2622 ms2.1%
scantreewhitenoise/base.py:2622 ms2.1%
scantreewhitenoise/base.py:2642 ms2.1%
scantreewhitenoise/base.py:2612 ms2.1%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:1112 ms2.1%
WhiteNoise.add_fileswhitenoise/base.py:1082 ms2.1%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1202 ms2.1%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:1312 ms2.1%
WhiteNoise.get_static_filewhitenoise/base.py:2082 ms2.1%
StaticFile.__init__whitenoise/responders.py:742 ms2.1%
parsedate<stdlib>/email/_parseaddr.py:1852 ms2.1%
ClientHandler.__call__django/test/client.py:1867 ms8.4%
BaseHandler.get_responsedjango/core/handlers/base.py:1417 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms8.4%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1307 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms8.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms8.4%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1237 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms8.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms8.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms8.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms8.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms8.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms8.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms8.4%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:347 ms8.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms8.4%
BaseHandler._get_responsedjango/core/handlers/base.py:1987 ms8.4%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:595 ms6.3%
homeapps/orgs/views.py:724 ms4.2%
current_organizationapps/orgs/views.py:544 ms4.2%
ensure_organizationapps/orgs/models.py:126 membership = Membership.objects.filter(user=user).select_related("organization").order_by("id").first()4 ms4.2%
QuerySet.firstdjango/db/models/query.py:11454 ms4.2%
QuerySet.__iter__django/db/models/query.py:3904 ms4.2%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms4.2%
ModelIterable.__iter__django/db/models/query.py:954 ms4.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.1%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.1%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
homeapps/orgs/views.py:74 if not projects.exists():2 ms2.1%
QuerySet.existsdjango/db/models/query.py:13372 ms2.1%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.1%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:562 ms2.1%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:792 ms2.1%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2512 ms2.1%
SimpleLazyObject._setupdjango/utils/functional.py:4042 ms2.1%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:402 ms2.1%
get_userdjango/contrib/auth/middleware.py:202 ms2.1%
get_userdjango/contrib/auth/__init__.py:3182 ms2.1%
ModelBackend.get_userdjango/contrib/auth/backends.py:2322 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet.getdjango/db/models/query.py:6352 ms2.1%
QuerySet.__len__django/db/models/query.py:3722 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
Client.getdjango/test/client.py:113316 ms18.9%
Client._handle_redirectsdjango/test/client.py:138416 ms18.9%
ClientMixin._follow_redirectdjango/test/client.py:100216 ms18.9%
Client.getdjango/test/client.py:112416 ms18.9%
RequestFactory.getdjango/test/client.py:47516 ms18.9%
RequestFactory.genericdjango/test/client.py:67116 ms18.9%
Client.requestdjango/test/client.py:108216 ms18.9%
ClientHandler.__call__django/test/client.py:18616 ms18.9%
BaseHandler.get_responsedjango/core/handlers/base.py:14116 ms18.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms18.9%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13016 ms18.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms18.9%
MiddlewareMixin.__call__django/utils/deprecation.py:30916 ms18.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms18.9%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12316 ms18.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms18.9%
MiddlewareMixin.__call__django/utils/deprecation.py:30913 ms14.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms14.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30913 ms14.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms14.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30913 ms14.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms14.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30913 ms14.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms14.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30913 ms14.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms14.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30913 ms14.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms14.7%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3413 ms14.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5513 ms14.7%
BaseHandler._get_responsedjango/core/handlers/base.py:19813 ms14.7%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:5911 ms12.6%
org_projectsapps/orgs/views.py:96 cards = [{"project": project, **analytics.project_card(project)} for project in projects]9 ms10.5%
QuerySet.__iter__django/db/models/query.py:3905 ms6.3%
QuerySet._fetch_alldjango/db/models/query.py:20005 ms6.3%
ModelIterable.__iter__django/db/models/query.py:955 ms6.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16245 ms6.3%
CursorWrapper.executedjango/db/backends/utils.py:795 ms6.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:925 ms6.3%
CursorWrapper._executedjango/db/backends/utils.py:1055 ms6.3%
Cursor.executepsycopg/cursor.py:1135 ms6.3%
Connection.waitpsycopg/connection.py:4955 ms6.3%
project_cardapps/projects/analytics.py:579 .first()4 ms4.2%
QuerySet.firstdjango/db/models/query.py:11454 ms4.2%
QuerySet.__iter__django/db/models/query.py:3904 ms4.2%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms4.2%
ValuesIterable.__iter__django/db/models/query.py:2224 ms4.2%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15734 ms4.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7952 ms2.1%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms2.1%
WhereNode.as_sqldjango/db/models/sql/where.py:1512 ms2.1%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms2.1%
RelatedLookupMixin.as_sqldjango/db/models/fields/related_lookups.py:1282 ms2.1%
Exact.as_sqldjango/db/models/lookups.py:4072 ms2.1%
BuiltinLookup.as_sqldjango/db/models/lookups.py:2412 ms2.1%
BuiltinLookup.get_rhs_opdjango/db/models/lookups.py:2452 ms2.1%
org_projectsapps/orgs/views.py:97 return render(request, "org.html", {**org_shell(request, organization, "projects"), "cards": cards})2 ms2.1%
org_shellapps/orgs/views.py:40 "org_projects": list(organization.project_set.order_by("name")) if member else [],2 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.1%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:872 ms2.1%
SQLCompiler.get_order_bydjango/db/models/sql/compiler.py:4922 ms2.1%
BaseExpression.resolve_expressiondjango/db/models/expressions.py:2972 ms2.1%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:562 ms2.1%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:792 ms2.1%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2512 ms2.1%
SimpleLazyObject._setupdjango/utils/functional.py:4042 ms2.1%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:402 ms2.1%
get_userdjango/contrib/auth/middleware.py:202 ms2.1%
get_userdjango/contrib/auth/__init__.py:3112 ms2.1%
_get_user_session_keydjango/contrib/auth/__init__.py:952 ms2.1%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:552 ms2.1%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms2.1%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms2.1%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet.getdjango/db/models/query.py:6352 ms2.1%
QuerySet.__len__django/db/models/query.py:3722 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
MiddlewareMixin.__call__django/utils/deprecation.py:3114 ms4.2%
SessionMiddleware.process_responsedjango/contrib/sessions/middleware.py:544 ms4.2%
http_datedjango/utils/http.py:972 ms2.1%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms2.1%
Model.savedjango/db/models/base.py:8742 ms2.1%
Model.save_basedjango/db/models/base.py:9662 ms2.1%
Model._save_tabledjango/db/models/base.py:11102 ms2.1%
Model._do_updatedjango/db/models/base.py:12112 ms2.1%
QuerySet._updatedjango/db/models/query.py:13272 ms2.1%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms2.1%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
ProjectsPageTest.setUpapps/projects/tests.py:100 self.client.force_login(self.user)16 ms18.9%
ClientMixin.force_logindjango/test/client.py:85516 ms18.9%
ClientMixin._logindjango/test/client.py:8819 ms10.5%
logindjango/contrib/auth/__init__.py:1875 ms6.3%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4344 ms4.2%
SessionStore.createdjango/contrib/sessions/backends/db.py:702 ms2.1%
SessionBase._get_new_session_keydjango/contrib/sessions/backends/base.py:1982 ms2.1%
SessionStore.existsdjango/contrib/sessions/backends/db.py:632 ms2.1%
QuerySet.existsdjango/db/models/query.py:13372 ms2.1%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.1%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7952 ms2.1%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms2.1%
WhereNode.as_sqldjango/db/models/sql/where.py:1512 ms2.1%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms2.1%
Exact.as_sqldjango/db/models/lookups.py:4072 ms2.1%
BuiltinLookup.as_sqldjango/db/models/lookups.py:2382 ms2.1%
BuiltinLookup.process_lhsdjango/db/models/lookups.py:2302 ms2.1%
Lookup.process_lhsdjango/db/models/lookups.py:1092 ms2.1%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms2.1%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms2.1%
Model.savedjango/db/models/base.py:8742 ms2.1%
Model.save_basedjango/db/models/base.py:9662 ms2.1%
Model._save_tabledjango/db/models/base.py:11672 ms2.1%
Model._do_insertdjango/db/models/base.py:12182 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet._insertdjango/db/models/query.py:19182 ms2.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4372 ms2.1%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1752 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet.getdjango/db/models/query.py:6352 ms2.1%
QuerySet.__len__django/db/models/query.py:3722 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
logindjango/contrib/auth/__init__.py:1752 ms2.1%
SessionBase.__contains__django/contrib/sessions/backends/base.py:522 ms2.1%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms2.1%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms2.1%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet.getdjango/db/models/query.py:6352 ms2.1%
QuerySet.__len__django/db/models/query.py:3722 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.1%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.1%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.1%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms2.1%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms2.1%
logindjango/contrib/auth/__init__.py:1972 ms2.1%
Signal.senddjango/dispatch/dispatcher.py:2092 ms2.1%
update_last_logindjango/contrib/auth/models.py:242 ms2.1%
AbstractBaseUser.savedjango/contrib/auth/base_user.py:622 ms2.1%
Model.savedjango/db/models/base.py:8742 ms2.1%
Model.save_basedjango/db/models/base.py:9662 ms2.1%
Model._save_tabledjango/db/models/base.py:11102 ms2.1%
Model._do_updatedjango/db/models/base.py:11882 ms2.1%
QuerySet.filterdjango/db/models/query.py:15422 ms2.1%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms2.1%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms2.1%
Query.add_qdjango/db/models/sql/query.py:16712 ms2.1%
Query._add_qdjango/db/models/sql/query.py:17182 ms2.1%
JoinPromoter.update_join_typesdjango/db/models/sql/query.py:28412 ms2.1%
ClientMixin._logindjango/test/client.py:8764 ms4.2%
ClientMixin.sessiondjango/test/client.py:8124 ms4.2%
SessionStore.savedjango/contrib/sessions/backends/db.py:1214 ms4.2%
SessionStore.createdjango/contrib/sessions/backends/db.py:702 ms2.1%
SessionBase._get_new_session_keydjango/contrib/sessions/backends/base.py:1982 ms2.1%
SessionStore.existsdjango/contrib/sessions/backends/db.py:632 ms2.1%
QuerySet.existsdjango/db/models/query.py:13372 ms2.1%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.1%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms2.1%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms2.1%
Model.savedjango/db/models/base.py:8742 ms2.1%
Model.save_basedjango/db/models/base.py:9662 ms2.1%
Model._save_tabledjango/db/models/base.py:10572 ms2.1%
ClientMixin._logindjango/test/client.py:8834 ms4.2%
SessionStore.savedjango/contrib/sessions/backends/db.py:1264 ms4.2%
Atomic.__enter__django/db/transaction.py:2112 ms2.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.1%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms2.1%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.1%
Atomic.__exit__django/db/transaction.py:2472 ms2.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.1%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms2.1%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
ProjectsPageTest.test_multiple_projectsapps/projects/tests.py:1289 ms10.5%
make_projectapps/projects/testing.py:67 slug=unique_slug(name, organization.project_set.all(), fallback="project", reserved=RESERVED_PROJECT_SLUGS),4 ms4.2%
unique_slugapps/orgs/models.py:46 while slug in reserved or taken.filter(slug=slug).exists():2 ms2.1%
QuerySet.existsdjango/db/models/query.py:13372 ms2.1%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.1%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
make_projectapps/projects/testing.py:714 ms4.2%
add_memberapps/projects/testing.py:76 membership, _ = Membership.objects.get_or_create(4 ms4.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms4.2%
QuerySet.get_or_createdjango/db/models/query.py:9924 ms4.2%
Atomic.__enter__django/db/transaction.py:2112 ms2.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.1%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms2.1%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
Atomic.__exit__django/db/transaction.py:2472 ms2.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.1%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms2.1%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
make_projectapps/projects/testing.py:622 ms2.1%
unique_slugapps/orgs/models.py:46 while slug in reserved or taken.filter(slug=slug).exists():2 ms2.1%
QuerySet.existsdjango/db/models/query.py:13372 ms2.1%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.1%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()4 ms4.2%
TestCase._fixture_teardowndjango/test/testcases.py:14952 ms2.1%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4832 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
TestCase._fixture_teardowndjango/test/testcases.py:14972 ms2.1%
TestCase._rollback_atomicsdjango/test/testcases.py:14052 ms2.1%
Atomic.__exit__django/db/transaction.py:2832 ms2.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.1%
BaseDatabaseWrapper.savepoint_rollbackdjango/db/backends/base/base.py:4132 ms2.1%
BaseDatabaseWrapper._savepoint_rollbackdjango/db/backends/base/base.py:3712 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
Estimated from 52 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/projects/tests.py:130
response = self.client.get("/projects/", follow=True)
ProjectsPageTest.test_multiple_projects
· Libraries
|
29 ms |
|
apps/projects/tests.py:100
self.client.force_login(self.user)
ProjectsPageTest.setUp
· Database
|
16 ms |
|
apps/orgs/views.py:96
cards = [{"project": project, **analytics.project_card(project)} for project in projects]
org_projects
· Database
|
5 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/orgs/models.py:126
membership = Membership.objects.filter(user=user).select_related("organization").order_by("id").first()
ensure_organization
· Database
|
4 ms |
|
apps/projects/analytics.py:579
.first()
project_card
· Database
|
4 ms |
|
apps/projects/testing.py:67
slug=unique_slug(name, organization.project_set.all(), fallback="project", reserved=RESERVED_PROJECT_SLUGS),
make_project
· App code
|
2 ms |
|
apps/orgs/views.py:74
if not projects.exists():
home
· Database
|
2 ms |
|
apps/orgs/views.py:40
"org_projects": list(organization.project_set.order_by("name")) if member else [],
org_shell
· Database
|
2 ms |
Fixtures
Exact setup time| _unittest_setUpClass_fixture_ProjectsPageTest class | 11 ms |
| _django_setup_unittest class | 0.29 ms |
| _django_db_marker function | 0.04 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.03 ms |
| monkeypatch function | 0.02 ms |
Database
49 queries · 22 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
apps/projects/tests.py:130
|
55 ms |
|
call setUp
apps/projects/tests.py:100
|
16 ms |
|
setup setUpClass
django/test/testcases.py:1423
|
10 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
4 ms |
|
setup is_django_unittest
pytest_django/django_compat.py:10
|
1 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 | |
|---|---|---|---|---|
| 17 minutes ago | CI github-actions:test | passed | 87 ms | Profile |
| 42 minutes ago | CI github-actions:test | passed | 110 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 100 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 50 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 82 ms | Profile |
| 2 years ago | CI github-actions | passed | 214 ms | Run |
| 2 years, 2 months ago | CI github-actions | passed | 213 ms | Run |
| 2 years, 3 months ago | CI github-actions | passed | 222 ms | Run |
| 2 years, 4 months ago | CI github-actions | passed | 216 ms | Run |
| 2 years, 4 months ago | CI github-actions | passed | 243 ms | Run |
| 2 years, 4 months ago | CI github-actions | passed | 245 ms | Run |
| 2 years, 4 months ago | CI github-actions | passed | 199 ms | Run |
| 2 years, 5 months ago | CI github-actions | passed | 205 ms | Run |
| 2 years, 5 months ago | CI github-actions | passed | 198 ms | Run |
| 2 years, 5 months ago | CI github-actions | passed | 207 ms | Run |
| 2 years, 5 months ago | CI github-actions | passed | 250 ms | Run |
| 2 years, 5 months ago | CI github-actions | passed | 262 ms | Run |
| 2 years, 6 months ago | CI github-actions | passed | 263 ms | Run |
| 2 years, 6 months ago | CI github-actions | passed | 278 ms | Run |
| 2 years, 6 months ago | CI github-actions | passed | 237 ms | Run |