CI
github-actions:test
12 runs
Average
73 ms
median 79 ms
max 103 ms
max 103 ms
Phases
Setup 0.69 ms
Call 71 ms
Teardown 0.91 ms
Categories
Database 45 ms
App code 0.15 ms
Other (Libraries, Templates, Unsampled, pytest) 28 ms
52 database queries per run
Needs 205 KB of memory (max 824 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
call99 ms95.5%
SettingsTest.test_renameapps/orgs/tests.py:170 response = self.client.post(reverse("org_settings", args=["acme"]), {"name": "Acme Inc", "slug": "acme-inc"})34 ms32.8%
Client.postdjango/test/client.py:115334 ms32.8%
RequestFactory.postdjango/test/client.py:49934 ms32.8%
RequestFactory.genericdjango/test/client.py:67134 ms32.8%
Client.requestdjango/test/client.py:108234 ms32.8%
ClientHandler.__call__django/test/client.py:17332 ms31.4%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6232 ms31.4%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10432 ms31.4%
WhiteNoise.add_fileswhitenoise/base.py:10832 ms31.4%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12032 ms31.4%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13132 ms31.4%
WhiteNoise.get_static_filewhitenoise/base.py:20825 ms24.6%
StaticFile.__init__whitenoise/responders.py:747 ms6.8%
parsedate<stdlib>/email/_parseaddr.py:1856 ms5.5%
Headers.__getitem__<stdlib>/wsgiref/headers.py:831 ms1.4%
StaticFile.__init__whitenoise/responders.py:776 ms5.5%
StaticFile.get_alternativeswhitenoise/responders.py:2006 ms5.5%
StaticFile.__init__whitenoise/responders.py:766 ms5.5%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1884 ms4.1%
Headers.__contains__<stdlib>/wsgiref/headers.py:873 ms2.7%
Headers.get<stdlib>/wsgiref/headers.py:1063 ms2.7%
StaticFile.__init__whitenoise/responders.py:723 ms2.7%
StaticFile.get_file_statswhitenoise/responders.py:1591 ms1.4%
StaticFile.__init__whitenoise/responders.py:733 ms2.7%
StaticFile.get_headerswhitenoise/responders.py:1761 ms1.4%
formatdate<stdlib>/email/utils.py:2591 ms1.4%
StaticFile.get_headerswhitenoise/responders.py:1781 ms1.4%
parsedate<stdlib>/email/_parseaddr.py:1851 ms1.4%
parsedate_tz<stdlib>/email/_parseaddr.py:501 ms1.4%
_parsedate_tz<stdlib>/email/_parseaddr.py:1801 ms1.4%
WhiteNoise.get_static_filewhitenoise/base.py:2036 ms5.5%
WhiteNoise.add_cache_headerswhitenoise/base.py:2244 ms4.1%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1764 ms4.1%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1974 ms4.1%
URLMixin.urldebug_toolbar/panels/staticfiles.py:203 ms2.7%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2051 ms1.4%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1861 ms1.4%
FileSystemStorage.urldjango/core/files/storage/filesystem.py:2091 ms1.4%
StaticFile.__init__whitenoise/responders.py:771 ms1.4%
StaticFile.get_alternativeswhitenoise/responders.py:2001 ms1.4%
WhiteNoise.get_static_filewhitenoise/base.py:2011 ms1.4%
ClientHandler.__call__django/test/client.py:1861 ms1.4%
BaseHandler.get_responsedjango/core/handlers/base.py:1411 ms1.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:551 ms1.4%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1301 ms1.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:551 ms1.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3091 ms1.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:551 ms1.4%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1231 ms1.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:551 ms1.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3091 ms1.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:551 ms1.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3091 ms1.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:551 ms1.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3091 ms1.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:551 ms1.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3091 ms1.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:551 ms1.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3091 ms1.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:551 ms1.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3091 ms1.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:551 ms1.4%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:341 ms1.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:551 ms1.4%
BaseHandler._get_responsedjango/core/handlers/base.py:1981 ms1.4%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:561 ms1.4%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:791 ms1.4%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2511 ms1.4%
SimpleLazyObject._setupdjango/utils/functional.py:4041 ms1.4%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:401 ms1.4%
get_userdjango/contrib/auth/middleware.py:201 ms1.4%
get_userdjango/contrib/auth/__init__.py:3111 ms1.4%
_get_user_session_keydjango/contrib/auth/__init__.py:951 ms1.4%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:551 ms1.4%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2511 ms1.4%
SessionStore.loaddjango/contrib/sessions/backends/db.py:551 ms1.4%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:341 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.4%
QuerySet.getdjango/db/models/query.py:6251 ms1.4%
QuerySet.filterdjango/db/models/query.py:15421 ms1.4%
QuerySet._filter_or_excludedjango/db/models/query.py:15601 ms1.4%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15701 ms1.4%
SettingsTest.test_renameapps/orgs/tests.py:171 self.assertRedirects(response, reverse("org_settings", args=["acme-inc"]))34 ms32.8%
SimpleTestCase.assertRedirectsdjango/test/testcases.py:50132 ms31.4%
Client.getdjango/test/client.py:112432 ms31.4%
RequestFactory.getdjango/test/client.py:47532 ms31.4%
RequestFactory.genericdjango/test/client.py:67132 ms31.4%
Client.requestdjango/test/client.py:108232 ms31.4%
ClientHandler.__call__django/test/client.py:18632 ms31.4%
BaseHandler.get_responsedjango/core/handlers/base.py:14132 ms31.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5532 ms31.4%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13032 ms31.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5532 ms31.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30932 ms31.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5532 ms31.4%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12332 ms31.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5532 ms31.4%
MiddlewareMixin.__call__django/utils/deprecation.py:31118 ms17.7%
SessionMiddleware.process_responsedjango/contrib/sessions/middleware.py:5918 ms17.7%
SessionStore.savedjango/contrib/sessions/backends/db.py:12617 ms16.4%
Atomic.__enter__django/db/transaction.py:21117 ms16.4%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:2617 ms16.4%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:40017 ms16.4%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:36717 ms16.4%
CursorWrapper.executedjango/db/backends/utils.py:7917 ms16.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9217 ms16.4%
CursorWrapper._executedjango/db/backends/utils.py:10317 ms16.4%
Cursor.executepsycopg/cursor.py:11317 ms16.4%
Connection.waitpsycopg/connection.py:49517 ms16.4%
BaseCursor._execute_genpsycopg/_cursor_base.py:20617 ms16.4%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:28617 ms16.4%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:7817 ms16.4%
SessionStore.savedjango/contrib/sessions/backends/db.py:1271 ms1.4%
Model.savedjango/db/models/base.py:8741 ms1.4%
Model.save_basedjango/db/models/base.py:9661 ms1.4%
Model._save_tabledjango/db/models/base.py:11101 ms1.4%
Model._do_updatedjango/db/models/base.py:12111 ms1.4%
QuerySet._updatedjango/db/models/query.py:13271 ms1.4%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21401 ms1.4%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.4%
Cursor.executepsycopg/cursor.py:1131 ms1.4%
Connection.waitpsycopg/connection.py:4951 ms1.4%
BaseCursor._execute_genpsycopg/_cursor_base.py:2051 ms1.4%
BaseCursor._convert_querypsycopg/_cursor_base.py:4651 ms1.4%
PostgresClientQuery.convertpsycopg/_queries.py:2891 ms1.4%
PostgresClientQuery.dumppsycopg/_queries.py:2991 ms1.4%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3001 ms1.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms13.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms13.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms13.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms13.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms13.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms13.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms13.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms13.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms13.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms13.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms13.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms13.6%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3414 ms13.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms13.6%
BaseHandler._get_responsedjango/core/handlers/base.py:19814 ms13.6%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:5914 ms13.6%
org_settingsapps/orgs/views.py:289 return render(14 ms13.6%
renderdjango/shortcuts.py:2514 ms13.6%
render_to_stringdjango/template/loader.py:6214 ms13.6%
Template.renderdjango/template/backends/django.py:10714 ms13.6%
Template.renderdjango/template/base.py:17414 ms13.6%
instrumented_test_renderdjango/test/utils.py:11414 ms13.6%
NodeList.renderdjango/template/base.py:109114 ms13.6%
Node.render_annotateddjango/template/base.py:105214 ms13.6%
ExtendsNode.renderdjango/template/loader_tags.py:16014 ms13.6%
instrumented_test_renderdjango/test/utils.py:11414 ms13.6%
NodeList.renderdjango/template/base.py:109114 ms13.6%
Node.render_annotateddjango/template/base.py:105214 ms13.6%
ExtendsNode.renderdjango/template/loader_tags.py:16014 ms13.6%
instrumented_test_renderdjango/test/utils.py:11414 ms13.6%
NodeList.renderdjango/template/base.py:109114 ms13.6%
Node.render_annotateddjango/template/base.py:105214 ms13.6%
BlockNode.renderdjango/template/loader_tags.py:6614 ms13.6%
NodeList.renderdjango/template/base.py:109114 ms13.6%
Node.render_annotateddjango/template/base.py:105214 ms13.6%
IncludeNode.renderdjango/template/loader_tags.py:21114 ms13.6%
Template.renderdjango/template/base.py:17614 ms13.6%
instrumented_test_renderdjango/test/utils.py:11414 ms13.6%
NodeList.renderdjango/template/base.py:109114 ms13.6%
Node.render_annotateddjango/template/base.py:105214 ms13.6%
IfNode.renderdjango/template/defaulttags.py:33314 ms13.6%
NodeList.renderdjango/template/base.py:109114 ms13.6%
Node.render_annotateddjango/template/base.py:105214 ms13.6%
ForNode.renderdjango/template/defaulttags.py:24914 ms13.6%
Node.render_annotateddjango/template/base.py:105214 ms13.6%
SimpleNode.renderdjango/template/library.py:32514 ms13.6%
heroicon_miniheroicons/templatetags/heroicons.py:1814 ms13.6%
_render_iconheroicons/templatetags/heroicons.py:3914 ms13.6%
_render_iconheroicons/__init__.py:6314 ms13.6%
SimpleTestCase.assertRedirectsdjango/test/testcases.py:5091 ms1.4%
SettingsTest.test_renameapps/orgs/tests.py:174 response = self.client.post(reverse("org_settings", args=["acme-inc"]), {"name": "Acme", "slug": "docs"})25 ms24.6%
Client.postdjango/test/client.py:115325 ms24.6%
RequestFactory.postdjango/test/client.py:49925 ms24.6%
RequestFactory.genericdjango/test/client.py:67125 ms24.6%
Client.requestdjango/test/client.py:108225 ms24.6%
ClientHandler.__call__django/test/client.py:18625 ms24.6%
BaseHandler.get_responsedjango/core/handlers/base.py:14125 ms24.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms24.6%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13025 ms24.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms24.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30925 ms24.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms24.6%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12325 ms24.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms24.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30923 ms21.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5523 ms21.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30923 ms21.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5523 ms21.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30923 ms21.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5523 ms21.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30923 ms21.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5523 ms21.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30923 ms21.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5523 ms21.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30923 ms21.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5523 ms21.8%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3423 ms21.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5523 ms21.8%
BaseHandler._get_responsedjango/core/handlers/base.py:19823 ms21.8%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:5920 ms19.1%
org_settingsapps/orgs/views.py:2936 ms5.5%
org_shellapps/orgs/views.py:40 "org_projects": list(organization.project_set.order_by("name")) if member else [],3 ms2.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.4%
create_reverse_many_to_one_manager.<locals>.RelatedManager.get_querysetdjango/db/models/fields/related_descriptors.py:7581 ms1.4%
create_reverse_many_to_one_manager.<locals>.RelatedManager._apply_rel_filtersdjango/db/models/fields/related_descriptors.py:7071 ms1.4%
QuerySet.filterdjango/db/models/query.py:15421 ms1.4%
QuerySet._filter_or_excludedjango/db/models/query.py:15551 ms1.4%
QuerySet._chaindjango/db/models/query.py:19731 ms1.4%
QuerySet._clonedjango/db/models/query.py:19841 ms1.4%
QuerySet.__init__django/db/models/query.py:2961 ms1.4%
QuerySet.__iter__django/db/models/query.py:3901 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.4%
ModelIterable.__iter__django/db/models/query.py:951 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.4%
Cursor.executepsycopg/cursor.py:1131 ms1.4%
Connection.waitpsycopg/connection.py:4951 ms1.4%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms1.4%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3181 ms1.4%
BaseCursor._set_resultspsycopg/_cursor_base.py:5351 ms1.4%
BaseCursor._select_current_resultpsycopg/_cursor_base.py:5141 ms1.4%
org_shellapps/orgs/views.py:33 organizations = [] if user.is_anonymous else list(Organization.objects.filter(membership__user=user))1 ms1.4%
QuerySet.__iter__django/db/models/query.py:3901 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.4%
ModelIterable.__iter__django/db/models/query.py:951 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms1.4%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7951 ms1.4%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5781 ms1.4%
WhereNode.as_sqldjango/db/models/sql/where.py:1511 ms1.4%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5781 ms1.4%
RelatedLookupMixin.as_sqldjango/db/models/fields/related_lookups.py:1281 ms1.4%
Exact.as_sqldjango/db/models/lookups.py:4071 ms1.4%
BuiltinLookup.as_sqldjango/db/models/lookups.py:2381 ms1.4%
BuiltinLookup.process_lhsdjango/db/models/lookups.py:2311 ms1.4%
Field.get_internal_typedjango/db/models/fields/__init__.py:9841 ms1.4%
org_shellapps/orgs/views.py:421 ms1.4%
Organization.is_ownerapps/orgs/models.py:65 return user.is_authenticated and self.membership_set.filter(user=user, role=Membership.Role.OWNER).exists()1 ms1.4%
QuerySet.existsdjango/db/models/query.py:13371 ms1.4%
Query.has_resultsdjango/db/models/sql/query.py:6811 ms1.4%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15921 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.4%
Cursor.executepsycopg/cursor.py:1131 ms1.4%
Connection.waitpsycopg/connection.py:4961 ms1.4%
org_settingsapps/orgs/views.py:289 return render(6 ms5.5%
renderdjango/shortcuts.py:256 ms5.5%
render_to_stringdjango/template/loader.py:626 ms5.5%
Template.renderdjango/template/backends/django.py:1076 ms5.5%
Template.renderdjango/template/base.py:1746 ms5.5%
instrumented_test_renderdjango/test/utils.py:1146 ms5.5%
NodeList.renderdjango/template/base.py:10916 ms5.5%
Node.render_annotateddjango/template/base.py:10526 ms5.5%
ExtendsNode.renderdjango/template/loader_tags.py:1606 ms5.5%
instrumented_test_renderdjango/test/utils.py:1146 ms5.5%
NodeList.renderdjango/template/base.py:10916 ms5.5%
Node.render_annotateddjango/template/base.py:10526 ms5.5%
ExtendsNode.renderdjango/template/loader_tags.py:1606 ms5.5%
instrumented_test_renderdjango/test/utils.py:1146 ms5.5%
NodeList.renderdjango/template/base.py:10916 ms5.5%
Node.render_annotateddjango/template/base.py:10526 ms5.5%
BlockNode.renderdjango/template/loader_tags.py:664 ms4.1%
NodeList.renderdjango/template/base.py:10914 ms4.1%
Node.render_annotateddjango/template/base.py:10524 ms4.1%
IfNode.renderdjango/template/defaulttags.py:3333 ms2.7%
NodeList.renderdjango/template/base.py:10913 ms2.7%
Node.render_annotateddjango/template/base.py:10523 ms2.7%
SimpleNode.renderdjango/template/library.py:3251 ms1.4%
heroicon_miniheroicons/templatetags/heroicons.py:181 ms1.4%
_render_iconheroicons/templatetags/heroicons.py:391 ms1.4%
_render_iconheroicons/__init__.py:451 ms1.4%
deepcopy<stdlib>/copy.py:1371 ms1.4%
deepcopy<stdlib>/copy.py:1561 ms1.4%
_reconstruct<stdlib>/copy.py:2631 ms1.4%
IfNode.renderdjango/template/defaulttags.py:3331 ms1.4%
NodeList.renderdjango/template/base.py:10911 ms1.4%
Node.render_annotateddjango/template/base.py:10521 ms1.4%
SimpleNode.renderdjango/template/library.py:3251 ms1.4%
heroicon_miniheroicons/templatetags/heroicons.py:181 ms1.4%
_render_iconheroicons/templatetags/heroicons.py:391 ms1.4%
_render_iconheroicons/__init__.py:631 ms1.4%
tostring<stdlib>/xml/etree/ElementTree.py:11061 ms1.4%
ElementTree.write<stdlib>/xml/etree/ElementTree.py:7451 ms1.4%
_serialize_xml<stdlib>/xml/etree/ElementTree.py:9011 ms1.4%
_escape_attrib<stdlib>/xml/etree/ElementTree.py:10681 ms1.4%
BlockNode.renderdjango/template/loader_tags.py:661 ms1.4%
NodeList.renderdjango/template/base.py:10911 ms1.4%
Node.render_annotateddjango/template/base.py:10521 ms1.4%
IncludeNode.renderdjango/template/loader_tags.py:2111 ms1.4%
Template.renderdjango/template/base.py:1761 ms1.4%
instrumented_test_renderdjango/test/utils.py:1141 ms1.4%
NodeList.renderdjango/template/base.py:10911 ms1.4%
Node.render_annotateddjango/template/base.py:10521 ms1.4%
VariableNode.renderdjango/template/base.py:11561 ms1.4%
render_value_in_contextdjango/template/base.py:11331 ms1.4%
RenderableFieldMixin.__str__django/forms/utils.py:791 ms1.4%
BoundField.as_widgetdjango/forms/boundfield.py:1081 ms1.4%
Widget.renderdjango/forms/widgets.py:3311 ms1.4%
Widget._renderdjango/forms/widgets.py:3361 ms1.4%
BaseRenderer.renderdjango/forms/renderers.py:291 ms1.4%
Template.renderdjango/template/backends/django.py:1071 ms1.4%
Template.renderdjango/template/base.py:1741 ms1.4%
instrumented_test_renderdjango/test/utils.py:1141 ms1.4%
NodeList.renderdjango/template/base.py:10911 ms1.4%
Node.render_annotateddjango/template/base.py:10521 ms1.4%
IncludeNode.renderdjango/template/loader_tags.py:2111 ms1.4%
Template.renderdjango/template/base.py:1761 ms1.4%
instrumented_test_renderdjango/test/utils.py:1141 ms1.4%
NodeList.renderdjango/template/base.py:10911 ms1.4%
Node.render_annotateddjango/template/base.py:10521 ms1.4%
IncludeNode.renderdjango/template/loader_tags.py:2111 ms1.4%
Template.renderdjango/template/base.py:1761 ms1.4%
instrumented_test_renderdjango/test/utils.py:1141 ms1.4%
NodeList.renderdjango/template/base.py:10911 ms1.4%
Node.render_annotateddjango/template/base.py:10521 ms1.4%
ForNode.renderdjango/template/defaulttags.py:2491 ms1.4%
BlockNode.renderdjango/template/loader_tags.py:531 ms1.4%
BaseContext.pushdjango/template/context.py:601 ms1.4%
org_settingsapps/orgs/views.py:2824 ms4.1%
member_organizationapps/orgs/views.py:623 ms2.7%
Organization.is_ownerapps/orgs/models.py:65 return user.is_authenticated and self.membership_set.filter(user=user, role=Membership.Role.OWNER).exists()3 ms2.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.4%
QuerySet.filterdjango/db/models/query.py:15411 ms1.4%
QuerySet._not_support_combined_queriesdjango/db/models/query.py:20741 ms1.4%
QuerySet.querydjango/db/models/query.py:3061 ms1.4%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15701 ms1.4%
Query.add_qdjango/db/models/sql/query.py:16711 ms1.4%
Query._add_qdjango/db/models/sql/query.py:17031 ms1.4%
Query.build_filterdjango/db/models/sql/query.py:15771 ms1.4%
Query.setup_joinsdjango/db/models/sql/query.py:19771 ms1.4%
QuerySet.existsdjango/db/models/query.py:13371 ms1.4%
Query.has_resultsdjango/db/models/sql/query.py:6811 ms1.4%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15921 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.4%
Cursor.executepsycopg/cursor.py:1131 ms1.4%
Connection.waitpsycopg/connection.py:4951 ms1.4%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms1.4%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3121 ms1.4%
member_organizationapps/orgs/views.py:59 organization = get_object_or_404(Organization, slug=org_slug)1 ms1.4%
get_object_or_404django/shortcuts.py:901 ms1.4%
QuerySet.getdjango/db/models/query.py:6251 ms1.4%
QuerySet.filterdjango/db/models/query.py:15421 ms1.4%
QuerySet._filter_or_excludedjango/db/models/query.py:15601 ms1.4%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15701 ms1.4%
Query.add_qdjango/db/models/sql/query.py:16641 ms1.4%
org_settingsapps/orgs/views.py:288 organization.refresh_from_db() # an invalid form changed it in memory3 ms2.7%
Model.refresh_from_dbdjango/db/models/base.py:7431 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.4%
QuerySet.filterdjango/db/models/query.py:15421 ms1.4%
QuerySet._filter_or_excludedjango/db/models/query.py:15601 ms1.4%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15701 ms1.4%
Query.add_qdjango/db/models/sql/query.py:16711 ms1.4%
Query._add_qdjango/db/models/sql/query.py:17031 ms1.4%
Query.build_filterdjango/db/models/sql/query.py:15981 ms1.4%
Model.refresh_from_dbdjango/db/models/base.py:7581 ms1.4%
QuerySet.getdjango/db/models/query.py:6351 ms1.4%
QuerySet.__len__django/db/models/query.py:3721 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.4%
ModelIterable.__iter__django/db/models/query.py:951 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.4%
Cursor.executepsycopg/cursor.py:1131 ms1.4%
Connection.waitpsycopg/connection.py:4951 ms1.4%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms1.4%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2861 ms1.4%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:781 ms1.4%
org_settingsapps/orgs/views.py:295 "projects": organization.project_set.count(),1 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.4%
QuerySet.countdjango/db/models/query.py:6101 ms1.4%
Query.get_countdjango/db/models/sql/query.py:6511 ms1.4%
Query.get_aggregationdjango/db/models/sql/query.py:6331 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms1.4%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7951 ms1.4%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5781 ms1.4%
WhereNode.as_sqldjango/db/models/sql/where.py:1511 ms1.4%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5781 ms1.4%
RelatedLookupMixin.as_sqldjango/db/models/fields/related_lookups.py:1281 ms1.4%
Exact.as_sqldjango/db/models/lookups.py:4071 ms1.4%
BuiltinLookup.as_sqldjango/db/models/lookups.py:2381 ms1.4%
BuiltinLookup.process_lhsdjango/db/models/lookups.py:2301 ms1.4%
Lookup.process_lhsdjango/db/models/lookups.py:1091 ms1.4%
BaseExpression.resolve_expressiondjango/db/models/expressions.py:3071 ms1.4%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:563 ms2.7%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:793 ms2.7%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2513 ms2.7%
SimpleLazyObject._setupdjango/utils/functional.py:4043 ms2.7%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:403 ms2.7%
get_userdjango/contrib/auth/middleware.py:203 ms2.7%
get_userdjango/contrib/auth/__init__.py:3111 ms1.4%
_get_user_session_keydjango/contrib/auth/__init__.py:951 ms1.4%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:551 ms1.4%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2511 ms1.4%
SessionStore.loaddjango/contrib/sessions/backends/db.py:551 ms1.4%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:341 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.4%
QuerySet.getdjango/db/models/query.py:6271 ms1.4%
get_userdjango/contrib/auth/__init__.py:3181 ms1.4%
ModelBackend.get_userdjango/contrib/auth/backends.py:2321 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.4%
QuerySet.getdjango/db/models/query.py:6251 ms1.4%
QuerySet.filterdjango/db/models/query.py:15421 ms1.4%
QuerySet._filter_or_excludedjango/db/models/query.py:15601 ms1.4%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15701 ms1.4%
Query.add_qdjango/db/models/sql/query.py:16711 ms1.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3113 ms2.7%
SessionMiddleware.process_responsedjango/contrib/sessions/middleware.py:593 ms2.7%
SessionStore.savedjango/contrib/sessions/backends/db.py:1231 ms1.4%
SessionStore.create_model_instancedjango/contrib/sessions/backends/db.py:1021 ms1.4%
SessionBase.encodedjango/contrib/sessions/backends/base.py:1261 ms1.4%
dumpsdjango/core/signing.py:1511 ms1.4%
SessionStore.savedjango/contrib/sessions/backends/db.py:1271 ms1.4%
Model.savedjango/db/models/base.py:8741 ms1.4%
Model.save_basedjango/db/models/base.py:9661 ms1.4%
Model._save_tabledjango/db/models/base.py:11101 ms1.4%
Model._do_updatedjango/db/models/base.py:12111 ms1.4%
QuerySet._updatedjango/db/models/query.py:13271 ms1.4%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21401 ms1.4%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms1.4%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()3 ms2.7%
TestCase._fixture_teardowndjango/test/testcases.py:14951 ms1.4%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4831 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:901 ms1.4%
TestCase._fixture_teardowndjango/test/testcases.py:14971 ms1.4%
TestCase._rollback_atomicsdjango/test/testcases.py:14051 ms1.4%
Atomic.__exit__django/db/transaction.py:2831 ms1.4%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms1.4%
BaseDatabaseWrapper.savepoint_rollbackdjango/db/backends/base/base.py:4131 ms1.4%
BaseDatabaseWrapper._savepoint_rollbackdjango/db/backends/base/base.py:3711 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms1.4%
Cursor.executepsycopg/cursor.py:1131 ms1.4%
Connection.waitpsycopg/connection.py:4951 ms1.4%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms1.4%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3121 ms1.4%
SettingsTest.test_renameapps/orgs/tests.py:172 self.project.refresh_from_db()1 ms1.4%
Model.refresh_from_dbdjango/db/models/base.py:7581 ms1.4%
QuerySet.getdjango/db/models/query.py:6351 ms1.4%
QuerySet.__len__django/db/models/query.py:3721 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.4%
ModelIterable.__iter__django/db/models/query.py:951 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.4%
SettingsTest.test_renameapps/orgs/tests.py:1731 ms1.4%
Project.urlapps/projects/models.py:59 return reverse(name, args=[self.organization.slug, self.slug, *args])1 ms1.4%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2571 ms1.4%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2221 ms1.4%
QuerySet.getdjango/db/models/query.py:6351 ms1.4%
QuerySet.__len__django/db/models/query.py:3721 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms1.4%
ModelIterable.__iter__django/db/models/query.py:951 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.4%
teardown4 ms3.7%
TestCase.tearDownClassdjango/test/testcases.py:1455 conn.close()3 ms2.7%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:263 ms2.7%
BaseDatabaseWrapper.closedjango/db/backends/base/base.py:3553 ms2.7%
DatabaseWrapper._closedjango/db/backends/postgresql/base.py:3963 ms2.7%
Connection.closepsycopg/connection.py:2013 ms2.7%
TestCase.tearDownClassdjango/test/testcases.py:1453 cls._rollback_atomics(cls.cls_atomics)0.94 ms0.9%
TestCase._rollback_atomicsdjango/test/testcases.py:14050.94 ms0.9%
Atomic.__exit__django/db/transaction.py:2950.94 ms0.9%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:260.94 ms0.9%
BaseDatabaseWrapper.rollbackdjango/db/backends/base/base.py:3370.94 ms0.9%
BaseDatabaseWrapper._rollbackdjango/db/backends/base/base.py:3080.94 ms0.9%
Connection.rollbackpsycopg/connection.py:3140.94 ms0.9%
Connection.waitpsycopg/connection.py:4950.94 ms0.9%
BaseConnection._rollback_genpsycopg/_connection_base.py:6170.94 ms0.9%
BaseConnection._exec_commandpsycopg/_connection_base.py:4740.94 ms0.9%
Estimated from 74 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/orgs/tests.py:170
response = self.client.post(reverse("org_settings", args=["acme"]), {"name": "Acme Inc", "slug": "acme-inc"})
SettingsTest.test_rename
· Libraries
|
34 ms |
|
apps/orgs/tests.py:171
self.assertRedirects(response, reverse("org_settings", args=["acme-inc"]))
SettingsTest.test_rename
· Database
|
20 ms |
|
apps/orgs/views.py:289
return render(
org_settings
· Templates
|
20 ms |
|
apps/orgs/tests.py:174
response = self.client.post(reverse("org_settings", args=["acme-inc"]), {"name": "Acme", "slug": "docs"})
SettingsTest.test_rename
· Database
|
6 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/orgs/views.py:288
organization.refresh_from_db() # an invalid form changed it in memory
org_settings
· Database
|
3 ms |
|
apps/orgs/views.py:40
"org_projects": list(organization.project_set.order_by("name")) if member else [],
org_shell
· Database
|
3 ms |
|
apps/orgs/tests.py:172
self.project.refresh_from_db()
SettingsTest.test_rename
· Database
|
1 ms |
|
apps/projects/models.py:59
return reverse(name, args=[self.organization.slug, self.slug, *args])
Project.url
· Database
|
1 ms |
|
apps/orgs/views.py:59
organization = get_object_or_404(Organization, slug=org_slug)
member_organization
· Database
|
1 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.05 ms |
| _template_string_if_invalid_marker function | 0.05 ms |
| _django_db_marker function | 0.05 ms |
| _django_set_urlconf function | 0.05 ms |
| _live_server_helper function | 0.04 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
52 queries · 17 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
5×
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 ?
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×
UPDATE "django_session" SET "session_data" = %s, "expire_date" = %s WHERE "django_session"."session_key" = %s
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 "orgs_organization"."id", "orgs_organization"."name", "orgs_organization"."slug", "orgs_organization"."created_by_id", "orgs_organization"."date_created" FROM "orgs_organization" WHERE "orgs_organization"."slug" = %s LIMIT ?
Biggest pieces of work
|
call test body
apps/orgs/tests.py:171
|
96 ms |
|
teardown tearDownClass
django/test/testcases.py:1455
|
4 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
3 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 | 103 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 41 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 80 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 65 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 84 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 49 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 80 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 78 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 77 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 84 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 45 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 88 ms | Profile |