Tests / apps/orgs/tests.py
MembersTest::test_owners_revoke_invitations
First seen 9 hours ago in 78a4357
CI
github-actions:test
5 runs
Average
59 ms
median 64 ms
max 70 ms
max 70 ms
Phases
Setup 0.78 ms
Call 58 ms
Teardown 0.19 ms
Categories
Database 30 ms
Other (Libraries, Templates, Unsampled, pytest) 30 ms
41 database queries per run
Needs 67 KB of memory (max 148 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 2 hours ago ·
open run
call64 ms98.3%
CallInfo.from_call_pytest/runner.py:35364 ms98.3%
call_and_report.<locals>.<lambda>_pytest/runner.py:24564 ms98.3%
HookCaller.__call__pluggy/_hooks.py:51264 ms98.3%
PluginManager._hookexecpluggy/_manager.py:12064 ms98.3%
_multicallpluggy/_callers.py:12164 ms98.3%
pytest_runtest_call_pytest/runner.py:17964 ms98.3%
_django_setup_unittest.<locals>.non_debugging_runtestpytest_django/plugin.py:57364 ms98.3%
SimpleTestCase.__call__django/test/testcases.py:31364 ms98.3%
SimpleTestCase._setup_and_calldjango/test/testcases.py:36861 ms94.7%
TestCase.__call__<stdlib>/unittest/case.py:74761 ms94.7%
TestCase.run<stdlib>/unittest/case.py:69161 ms94.7%
TestCase._callTestMethod<stdlib>/unittest/case.py:63761 ms94.7%
MembersTest.test_owners_revoke_invitationsapps/orgs/tests.py:124 response = self.client.get(reverse("org_members", args=["acme"]))47 ms72.8%
Client.getdjango/test/client.py:112447 ms72.8%
RequestFactory.getdjango/test/client.py:47547 ms72.8%
RequestFactory.genericdjango/test/client.py:67147 ms72.8%
Client.requestdjango/test/client.py:108247 ms72.8%
ClientHandler.__call__django/test/client.py:17324 ms36.4%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6224 ms36.4%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10421 ms32.8%
WhiteNoise.add_fileswhitenoise/base.py:10821 ms32.8%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12014 ms21.8%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13114 ms21.8%
WhiteNoise.get_static_filewhitenoise/base.py:20812 ms18.2%
StaticFile.__init__whitenoise/responders.py:762 ms3.6%
StaticFile.__init__whitenoise/responders.py:742 ms3.6%
parsedate<stdlib>/email/_parseaddr.py:1852 ms3.6%
parsedate_tz<stdlib>/email/_parseaddr.py:502 ms3.6%
_parsedate_tz<stdlib>/email/_parseaddr.py:1002 ms3.6%
StaticFile.__init__whitenoise/responders.py:722 ms3.6%
StaticFile.get_file_statswhitenoise/responders.py:1612 ms3.6%
__init____init__:-12 ms3.6%
FileEntry.__init__whitenoise/responders.py:2632 ms3.6%
FileEntry.stat_regular_filewhitenoise/responders.py:2762 ms3.6%
<GC>~2 ms3.6%
StaticFile.__init__whitenoise/responders.py:772 ms3.6%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms3.6%
__init____init__:-12 ms3.6%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:502 ms3.6%
StaticFile.__init__whitenoise/responders.py:732 ms3.6%
StaticFile.get_headerswhitenoise/responders.py:1762 ms3.6%
formatdate<stdlib>/email/utils.py:2662 ms3.6%
WhiteNoise.get_static_filewhitenoise/base.py:2032 ms3.6%
WhiteNoise.add_cache_headerswhitenoise/base.py:2242 ms3.6%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1762 ms3.6%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1972 ms3.6%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1157 ms10.9%
scantreewhitenoise/base.py:2627 ms10.9%
scantreewhitenoise/base.py:2627 ms10.9%
scantreewhitenoise/base.py:2625 ms7.3%
scantreewhitenoise/base.py:2625 ms7.3%
scantreewhitenoise/base.py:2642 ms3.6%
scantreewhitenoise/base.py:2622 ms3.6%
scantreewhitenoise/base.py:2642 ms3.6%
scantreewhitenoise/base.py:2642 ms3.6%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:1112 ms3.6%
WhiteNoise.add_fileswhitenoise/base.py:1082 ms3.6%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1202 ms3.6%
ClientHandler.__call__django/test/client.py:18624 ms36.4%
BaseHandler.get_responsedjango/core/handlers/base.py:14124 ms36.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5524 ms36.4%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13024 ms36.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5524 ms36.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30924 ms36.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5524 ms36.4%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12324 ms36.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5524 ms36.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms32.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms32.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms32.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms32.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms32.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms32.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms32.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms32.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms32.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms32.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms32.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms32.8%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3421 ms32.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms32.8%
BaseHandler._get_responsedjango/core/handlers/base.py:19821 ms32.8%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:5917 ms25.5%
org_membersapps/orgs/views.py:1947 ms10.9%
org_shellapps/orgs/views.py:33 organizations = [] if user.is_anonymous else list(Organization.objects.filter(membership__user=user))2 ms3.6%
QuerySet.__iter__django/db/models/query.py:3902 ms3.6%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.6%
ModelIterable.__iter__django/db/models/query.py:952 ms3.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.6%
Cursor.executepsycopg/cursor.py:1132 ms3.6%
Connection.waitpsycopg/connection.py:4952 ms3.6%
org_shellapps/orgs/views.py:40 "org_projects": list(organization.project_set.order_by("name")) if member else [],2 ms3.6%
QuerySet.__iter__django/db/models/query.py:3902 ms3.6%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.6%
ModelIterable.__iter__django/db/models/query.py:952 ms3.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.6%
Cursor.executepsycopg/cursor.py:1132 ms3.6%
Connection.waitpsycopg/connection.py:4952 ms3.6%
org_shellapps/orgs/views.py:422 ms3.6%
Organization.is_ownerapps/orgs/models.py:65 return user.is_authenticated and self.membership_set.filter(user=user, role=Membership.Role.OWNER).exists()2 ms3.6%
QuerySet.existsdjango/db/models/query.py:13372 ms3.6%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms3.6%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms3.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.6%
Cursor.executepsycopg/cursor.py:1132 ms3.6%
Connection.waitpsycopg/connection.py:4952 ms3.6%
org_membersapps/orgs/views.py:1712 ms3.6%
Organization.is_ownerapps/orgs/models.py:65 return user.is_authenticated and self.membership_set.filter(user=user, role=Membership.Role.OWNER).exists()2 ms3.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.6%
create_reverse_many_to_one_manager.<locals>.RelatedManager.get_querysetdjango/db/models/fields/related_descriptors.py:7582 ms3.6%
create_reverse_many_to_one_manager.<locals>.RelatedManager._apply_rel_filtersdjango/db/models/fields/related_descriptors.py:7032 ms3.6%
org_membersapps/orgs/views.py:196 "invitations": [invitation for invitation in invitations if not invitation.expired],2 ms3.6%
QuerySet.__iter__django/db/models/query.py:3902 ms3.6%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.6%
ModelIterable.__iter__django/db/models/query.py:952 ms3.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1022 ms3.6%
QueryStats.addflakytest/profiling/dbtrack.py:382 ms3.6%
org_membersapps/orgs/views.py:199 "owners": organization.membership_set.filter(role=Membership.Role.OWNER).count(),2 ms3.6%
QuerySet.countdjango/db/models/query.py:6102 ms3.6%
Query.get_countdjango/db/models/sql/query.py:6512 ms3.6%
Query.get_aggregationdjango/db/models/sql/query.py:6332 ms3.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1022 ms3.6%
QueryStats.addflakytest/profiling/dbtrack.py:382 ms3.6%
normalize_sqlflakytest/profiling/dbtrack.py:252 ms3.6%
org_membersapps/orgs/views.py:190 return render(2 ms3.6%
renderdjango/shortcuts.py:252 ms3.6%
render_to_stringdjango/template/loader.py:622 ms3.6%
Template.renderdjango/template/backends/django.py:1072 ms3.6%
Template.renderdjango/template/base.py:1742 ms3.6%
instrumented_test_renderdjango/test/utils.py:1142 ms3.6%
NodeList.renderdjango/template/base.py:10912 ms3.6%
Node.render_annotateddjango/template/base.py:10522 ms3.6%
ExtendsNode.renderdjango/template/loader_tags.py:1602 ms3.6%
instrumented_test_renderdjango/test/utils.py:1142 ms3.6%
NodeList.renderdjango/template/base.py:10912 ms3.6%
Node.render_annotateddjango/template/base.py:10522 ms3.6%
ExtendsNode.renderdjango/template/loader_tags.py:1602 ms3.6%
instrumented_test_renderdjango/test/utils.py:1142 ms3.6%
NodeList.renderdjango/template/base.py:10912 ms3.6%
Node.render_annotateddjango/template/base.py:10522 ms3.6%
BlockNode.renderdjango/template/loader_tags.py:662 ms3.6%
NodeList.renderdjango/template/base.py:10912 ms3.6%
Node.render_annotateddjango/template/base.py:10522 ms3.6%
IfNode.renderdjango/template/defaulttags.py:3332 ms3.6%
NodeList.renderdjango/template/base.py:10912 ms3.6%
Node.render_annotateddjango/template/base.py:10522 ms3.6%
SimpleNode.renderdjango/template/library.py:3252 ms3.6%
heroicon_miniheroicons/templatetags/heroicons.py:182 ms3.6%
_render_iconheroicons/templatetags/heroicons.py:392 ms3.6%
_render_iconheroicons/__init__.py:452 ms3.6%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:565 ms7.3%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:795 ms7.3%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2515 ms7.3%
SimpleLazyObject._setupdjango/utils/functional.py:4045 ms7.3%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:405 ms7.3%
get_userdjango/contrib/auth/middleware.py:205 ms7.3%
get_userdjango/contrib/auth/__init__.py:3112 ms3.6%
_get_user_session_keydjango/contrib/auth/__init__.py:952 ms3.6%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:552 ms3.6%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms3.6%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms3.6%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms3.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.6%
QuerySet.getdjango/db/models/query.py:6352 ms3.6%
QuerySet.__len__django/db/models/query.py:3722 ms3.6%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.6%
ModelIterable.__iter__django/db/models/query.py:952 ms3.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.6%
Cursor.executepsycopg/cursor.py:1132 ms3.6%
Connection.waitpsycopg/connection.py:4952 ms3.6%
get_userdjango/contrib/auth/__init__.py:3182 ms3.6%
ModelBackend.get_userdjango/contrib/auth/backends.py:2322 ms3.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.6%
QuerySet.getdjango/db/models/query.py:6352 ms3.6%
QuerySet.__len__django/db/models/query.py:3722 ms3.6%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.6%
ModelIterable.__iter__django/db/models/query.py:952 ms3.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.6%
Cursor.executepsycopg/cursor.py:1132 ms3.6%
Connection.waitpsycopg/connection.py:4952 ms3.6%
MiddlewareMixin.__call__django/utils/deprecation.py:3112 ms3.6%
SessionMiddleware.process_responsedjango/contrib/sessions/middleware.py:592 ms3.6%
SessionStore.savedjango/contrib/sessions/backends/db.py:1262 ms3.6%
Atomic.__enter__django/db/transaction.py:2112 ms3.6%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms3.6%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms3.6%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms3.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.6%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms3.6%
Cursor.executepsycopg/cursor.py:1132 ms3.6%
Connection.waitpsycopg/connection.py:4952 ms3.6%
MembersTest.test_owners_revoke_invitationsapps/orgs/tests.py:123 self.client.force_login(self.owner)9 ms14.6%
ClientMixin.force_logindjango/test/client.py:8559 ms14.6%
ClientMixin._logindjango/test/client.py:8815 ms7.3%
logindjango/contrib/auth/__init__.py:1752 ms3.6%
SessionBase.__contains__django/contrib/sessions/backends/base.py:522 ms3.6%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms3.6%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms3.6%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms3.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.6%
QuerySet.getdjango/db/models/query.py:6352 ms3.6%
QuerySet.__len__django/db/models/query.py:3722 ms3.6%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.6%
ModelIterable.__iter__django/db/models/query.py:952 ms3.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.6%
Cursor.executepsycopg/cursor.py:1132 ms3.6%
Connection.waitpsycopg/connection.py:4952 ms3.6%
logindjango/contrib/auth/__init__.py:1872 ms3.6%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4372 ms3.6%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1752 ms3.6%
Model.deletedjango/db/models/base.py:12982 ms3.6%
Collector.deletedjango/db/models/deletion.py:4522 ms3.6%
DeleteQuery.delete_batchdjango/db/models/sql/subqueries.py:432 ms3.6%
DeleteQuery.do_querydjango/db/models/sql/subqueries.py:252 ms3.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.6%
Cursor.executepsycopg/cursor.py:1132 ms3.6%
Connection.waitpsycopg/connection.py:4952 ms3.6%
ClientMixin._logindjango/test/client.py:8762 ms3.6%
ClientMixin.sessiondjango/test/client.py:8122 ms3.6%
SessionStore.savedjango/contrib/sessions/backends/db.py:1212 ms3.6%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms3.6%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms3.6%
Model.savedjango/db/models/base.py:8742 ms3.6%
Model.save_basedjango/db/models/base.py:9662 ms3.6%
Model._save_tabledjango/db/models/base.py:11672 ms3.6%
Model._do_insertdjango/db/models/base.py:12182 ms3.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.6%
QuerySet._insertdjango/db/models/query.py:19182 ms3.6%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms3.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.6%
Cursor.executepsycopg/cursor.py:1132 ms3.6%
Connection.waitpsycopg/connection.py:4952 ms3.6%
ClientMixin._logindjango/test/client.py:8832 ms3.6%
SessionStore.savedjango/contrib/sessions/backends/db.py:1262 ms3.6%
Atomic.__exit__django/db/transaction.py:2472 ms3.6%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms3.6%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms3.6%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms3.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.6%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms3.6%
Cursor.executepsycopg/cursor.py:1132 ms3.6%
Connection.waitpsycopg/connection.py:4952 ms3.6%
MembersTest.test_owners_revoke_invitationsapps/orgs/tests.py:126 self.client.post(reverse("invitation_revoke", args=["acme"]), {"email": "[email protected]"})5 ms7.3%
Client.postdjango/test/client.py:11535 ms7.3%
RequestFactory.postdjango/test/client.py:4995 ms7.3%
RequestFactory.genericdjango/test/client.py:6715 ms7.3%
Client.requestdjango/test/client.py:10825 ms7.3%
ClientHandler.__call__django/test/client.py:1865 ms7.3%
BaseHandler.get_responsedjango/core/handlers/base.py:1415 ms7.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.3%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1305 ms7.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms7.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.3%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1235 ms7.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms7.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms7.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms7.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms7.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms7.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms7.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.3%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:345 ms7.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.3%
BaseHandler._get_responsedjango/core/handlers/base.py:1985 ms7.3%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:565 ms7.3%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:795 ms7.3%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2515 ms7.3%
SimpleLazyObject._setupdjango/utils/functional.py:4045 ms7.3%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:405 ms7.3%
get_userdjango/contrib/auth/middleware.py:205 ms7.3%
get_userdjango/contrib/auth/__init__.py:3112 ms3.6%
_get_user_session_keydjango/contrib/auth/__init__.py:952 ms3.6%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:552 ms3.6%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms3.6%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms3.6%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms3.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.6%
QuerySet.getdjango/db/models/query.py:6352 ms3.6%
QuerySet.__len__django/db/models/query.py:3722 ms3.6%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.6%
ModelIterable.__iter__django/db/models/query.py:952 ms3.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.6%
Cursor.executepsycopg/cursor.py:1132 ms3.6%
Connection.waitpsycopg/connection.py:4952 ms3.6%
get_userdjango/contrib/auth/__init__.py:3182 ms3.6%
ModelBackend.get_userdjango/contrib/auth/backends.py:2322 ms3.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.6%
QuerySet.getdjango/db/models/query.py:6352 ms3.6%
QuerySet.__len__django/db/models/query.py:3722 ms3.6%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.6%
ModelIterable.__iter__django/db/models/query.py:952 ms3.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.6%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.6%
Cursor.executepsycopg/cursor.py:1132 ms3.6%
Connection.waitpsycopg/connection.py:4952 ms3.6%
SimpleTestCase._setup_and_calldjango/test/testcases.py:3712 ms3.6%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()2 ms3.6%
TestCase._fixture_teardowndjango/test/testcases.py:14952 ms3.6%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4832 ms3.6%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.6%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms3.6%
Cursor.executepsycopg/cursor.py:1132 ms3.6%
Connection.waitpsycopg/connection.py:4952 ms3.6%
Estimated from 27 samples; phase durations are exact. Frames from pytest and pluggy are
shown
.
Hot lines in your code
|
apps/orgs/tests.py:124
response = self.client.get(reverse("org_members", args=["acme"]))
MembersTest.test_owners_revoke_invitations
· Libraries
|
31 ms |
|
apps/orgs/tests.py:123
self.client.force_login(self.owner)
MembersTest.test_owners_revoke_invitations
· Database
|
9 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
|
5 ms |
|
apps/orgs/tests.py:126
self.client.post(reverse("invitation_revoke", args=["acme"]), {"email": "[email protected]"})
MembersTest.test_owners_revoke_invitations
· Database
|
5 ms |
|
apps/orgs/views.py:33
organizations = [] if user.is_anonymous else list(Organization.objects.filter(membership__user=user))
org_shell
· 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/views.py:196
"invitations": [invitation for invitation in invitations if not invitation.expired],
org_members
· Database
|
2 ms |
|
apps/orgs/views.py:199
"owners": organization.membership_set.filter(role=Membership.Role.OWNER).count(),
org_members
· Database
|
2 ms |
|
apps/orgs/views.py:190
return render(
org_members
· Templates
|
2 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.06 ms |
| _template_string_if_invalid_marker function | 0.06 ms |
| _django_db_marker function | 0.05 ms |
| _live_server_helper function | 0.05 ms |
| _django_set_urlconf function | 0.05 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.03 ms |
Database
41 queries · 13 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 ?
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/orgs/tests.py:123
|
61 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
2 ms |
Reliability
5 results · 0 CI failures · 0 local failuresThis test hasn't failed recently.
History
Latest 5 results, oldest first in the strip| When | Environment | Outcome | Duration | |
|---|---|---|---|---|
| 2 hours ago | CI github-actions:test | passed | 65 ms | Profile |
| 2 hours ago | CI github-actions:test | passed | 64 ms | Profile |
| 9 hours ago | CI github-actions:test | passed | 70 ms | Profile |
| 9 hours ago | CI github-actions:test | passed | 36 ms | Profile |
| 9 hours ago | CI github-actions:test | passed | 62 ms | Profile |