Tests / starter_packs/tests.py
TestOwnerManagement::test_invite_creates_pending_invitation_not_owner
First seen 3 weeks ago in 0c23747
CI
github-actions:test
11 runs
Average
178 ms
median 129 ms
max 322 ms
max 322 ms
Phases
Setup 8 ms
Call 169 ms
Teardown 0.39 ms
Categories
Database 66 ms
Test code 0.39 ms
Factories 0.31 ms
Other (Libraries, Unsampled, pytest, Templates, ...) 111 ms
34 database queries per run
Needs 69 KB of memory (max 276 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 7 hours ago ·
open run
call94 ms98.7%
TestOwnerManagement.test_invite_creates_pending_invitation_not_ownerstarter_packs/tests.py:491 response = self.client.post(reverse("invite_owner", args=[self.pack.slug, self.friend.id]))88 ms91.8%
Client.postdjango/test/client.py:116288 ms91.8%
RequestFactory.postdjango/test/client.py:49988 ms91.8%
RequestFactory.genericdjango/test/client.py:67188 ms91.8%
Client.requestdjango/test/client.py:109188 ms91.8%
ClientHandler.__call__django/test/client.py:18682 ms86.2%
BaseHandler.get_responsedjango/core/handlers/base.py:14282 ms86.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5682 ms86.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38082 ms86.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5682 ms86.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38082 ms86.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5682 ms86.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38082 ms86.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5682 ms86.2%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12382 ms86.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5682 ms86.2%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:14582 ms86.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5682 ms86.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38082 ms86.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5682 ms86.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38082 ms86.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5682 ms86.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38082 ms86.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5682 ms86.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38082 ms86.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5682 ms86.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38082 ms86.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5682 ms86.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38082 ms86.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5682 ms86.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38082 ms86.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5682 ms86.2%
BaseHandler._get_responsedjango/core/handlers/base.py:19981 ms84.8%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6380 ms83.4%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:6244 ms45.9%
invite_ownerstarter_packs/views.py:47423 ms23.6%
get_editable_packstarter_packs/views.py:60 return get_object_or_404(StarterPack, slug=slug, owners=request.user, **extra)23 ms23.6%
get_object_or_404django/shortcuts.py:10023 ms23.6%
QuerySet.getdjango/db/models/query.py:70223 ms23.6%
QuerySet.__len__django/db/models/query.py:42123 ms23.6%
QuerySet._fetch_alldjango/db/models/query.py:226223 ms23.6%
ModelIterable.__iter__django/db/models/query.py:10323 ms23.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:162523 ms23.6%
CursorWrapper.executedjango/db/backends/utils.py:7923 ms23.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9223 ms23.6%
CursorWrapper._executedjango/db/backends/utils.py:10523 ms23.6%
Cursor.executepsycopg/cursor.py:11323 ms23.6%
Connection.waitpsycopg/connection.py:49523 ms23.6%
BaseCursor._execute_genpsycopg/_cursor_base.py:20623 ms23.6%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:28621 ms22.2%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:7821 ms22.2%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3121 ms1.4%
invite_ownerstarter_packs/views.py:490 return render(request, "owners_updated.html", owners_manager_context(starter_pack, q, error))7 ms7.0%
owners_manager_contextstarter_packs/views.py:417 owners = list(starter_pack.owners.select_related("accountaccess__account").order_by("username"))4 ms4.2%
QuerySet.__iter__django/db/models/query.py:4394 ms4.2%
QuerySet._fetch_alldjango/db/models/query.py:22624 ms4.2%
ModelIterable.__iter__django/db/models/query.py:1034 ms4.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16253 ms2.8%
CursorWrapper.executedjango/db/backends/utils.py:793 ms2.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms2.8%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms2.8%
Cursor.executepsycopg/cursor.py:1133 ms2.8%
Connection.waitpsycopg/connection.py:4953 ms2.8%
BaseCursor._execute_genpsycopg/_cursor_base.py:2063 ms2.8%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2863 ms2.8%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:783 ms2.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16121 ms1.4%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7681 ms1.4%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:891 ms1.4%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:781 ms1.4%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3321 ms1.4%
BaseExpression.select_formatdjango/db/models/expressions.py:4991 ms1.4%
owners_manager_contextstarter_packs/views.py:418 invitations = list(3 ms2.8%
QuerySet.__iter__django/db/models/query.py:4393 ms2.8%
QuerySet._fetch_alldjango/db/models/query.py:22623 ms2.8%
ModelIterable.__iter__django/db/models/query.py:1033 ms2.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16253 ms2.8%
CursorWrapper.executedjango/db/backends/utils.py:793 ms2.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms2.8%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms2.8%
Cursor.executepsycopg/cursor.py:1133 ms2.8%
Connection.waitpsycopg/connection.py:4953 ms2.8%
BaseCursor._execute_genpsycopg/_cursor_base.py:2063 ms2.8%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2863 ms2.8%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:783 ms2.8%
invite_ownerstarter_packs/views.py:479 elif starter_pack.owners.filter(pk=user_id).exists():5 ms5.6%
QuerySet.existsdjango/db/models/query.py:14584 ms4.2%
Query.has_resultsdjango/db/models/sql/query.py:6874 ms4.2%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15934 ms4.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16123 ms2.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7681 ms1.4%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:891 ms1.4%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:781 ms1.4%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3191 ms1.4%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5791 ms1.4%
Value.as_sqldjango/db/models/expressions.py:11741 ms1.4%
BaseExpression._output_field_or_nonedjango/db/models/expressions.py:3421 ms1.4%
cached_property.__get__django/utils/functional.py:471 ms1.4%
BaseExpression.output_fielddjango/db/models/expressions.py:3281 ms1.4%
Value._resolve_output_fielddjango/db/models/expressions.py:12211 ms1.4%
Field.__init__django/db/models/fields/__init__.py:2621 ms1.4%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7961 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16251 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%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.4%
QuerySet.filterdjango/db/models/query.py:16751 ms1.4%
QuerySet._not_support_combined_queriesdjango/db/models/query.py:23361 ms1.4%
QuerySet.querydjango/db/models/query.py:3551 ms1.4%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:17041 ms1.4%
Query.add_qdjango/db/models/sql/query.py:16811 ms1.4%
Query._add_qdjango/db/models/sql/query.py:17131 ms1.4%
Query.build_filterdjango/db/models/sql/query.py:15771 ms1.4%
invite_ownerstarter_packs/views.py:483 elif starter_pack.owners.count() + starter_pack.invitations.count() >= MAX_OWNERS:4 ms4.2%
create_forward_many_to_many_manager.<locals>.ManyRelatedManager.countdjango/db/models/fields/related_descriptors.py:12963 ms2.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms2.8%
QuerySet.countdjango/db/models/query.py:6773 ms2.8%
QuerySet.querydjango/db/models/query.py:3551 ms1.4%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:17041 ms1.4%
Query.add_qdjango/db/models/sql/query.py:16811 ms1.4%
Query._add_qdjango/db/models/sql/query.py:17131 ms1.4%
Query.build_filterdjango/db/models/sql/query.py:15991 ms1.4%
Query.get_countdjango/db/models/sql/query.py:6571 ms1.4%
Query.get_aggregationdjango/db/models/sql/query.py:6391 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16121 ms1.4%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7931 ms1.4%
SQLCompiler.get_from_clausedjango/db/models/sql/compiler.py:11601 ms1.4%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5791 ms1.4%
Join.as_sqldjango/db/models/sql/datastructures.py:881 ms1.4%
DatabaseOperations.prepare_join_on_clausedjango/db/backends/postgresql/operations.py:4021 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:6771 ms1.4%
Query.get_countdjango/db/models/sql/query.py:6571 ms1.4%
Query.get_aggregationdjango/db/models/sql/query.py:6391 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16251 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%
invite_ownerstarter_packs/views.py:481 elif starter_pack.invitations.filter(invited_user_id=user_id).exists():3 ms2.8%
QuerySet.existsdjango/db/models/query.py:14583 ms2.8%
Query.has_resultsdjango/db/models/sql/query.py:6873 ms2.8%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15933 ms2.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16253 ms2.8%
CursorWrapper.executedjango/db/backends/utils.py:793 ms2.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms2.8%
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%
invite_ownerstarter_packs/views.py:477 if not AccountAccess.objects.filter(user_id=user_id).exists():1 ms1.4%
QuerySet.existsdjango/db/models/query.py:14581 ms1.4%
Query.has_resultsdjango/db/models/sql/query.py:6871 ms1.4%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15931 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16251 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.4%
invite_ownerstarter_packs/views.py:486 StarterPackInvitation.objects.create(1 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.4%
QuerySet.createdjango/db/models/query.py:7361 ms1.4%
Model.savedjango/db/models/base.py:9041 ms1.4%
Model.save_basedjango/db/models/base.py:9961 ms1.4%
Model._save_tabledjango/db/models/base.py:11991 ms1.4%
Model._do_insertdjango/db/models/base.py:12511 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.4%
QuerySet._insertdjango/db/models/query.py:21411 ms1.4%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19361 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%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:5936 ms37.5%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:8236 ms37.5%
new_method_proxy.<locals>.innerdjango/utils/functional.py:25136 ms37.5%
SimpleLazyObject._setupdjango/utils/functional.py:40436 ms37.5%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:3936 ms37.5%
get_userdjango/contrib/auth/middleware.py:1936 ms37.5%
get_userdjango/contrib/auth/__init__.py:28736 ms37.5%
_get_user_session_keydjango/contrib/auth/__init__.py:11136 ms37.5%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:5536 ms37.5%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:25436 ms37.5%
SessionStore.loaddjango/contrib/sessions/backends/db.py:5536 ms37.5%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:3436 ms37.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8736 ms37.5%
QuerySet.getdjango/db/models/query.py:70233 ms34.8%
QuerySet.__len__django/db/models/query.py:42133 ms34.8%
QuerySet._fetch_alldjango/db/models/query.py:226233 ms34.8%
ModelIterable.__iter__django/db/models/query.py:10333 ms34.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:162331 ms32.0%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:2631 ms32.0%
BaseDatabaseWrapper.cursordjango/db/backends/base/base.py:32031 ms32.0%
BaseDatabaseWrapper._cursordjango/db/backends/base/base.py:29831 ms32.0%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:2631 ms32.0%
DatabaseWrapper.create_cursordjango/db/backends/postgresql/base.py:44231 ms32.0%
Connection.cursorpsycopg/connection.py:25931 ms32.0%
Connection.waitpsycopg/connection.py:49529 ms30.6%
BaseCursor._execute_genpsycopg/_cursor_base.py:20629 ms30.6%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:28629 ms30.6%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:7829 ms30.6%
Cursor.__init__psycopg/cursor.py:471 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16121 ms1.4%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7681 ms1.4%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:891 ms1.4%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:781 ms1.4%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3191 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16251 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%
QuerySet.getdjango/db/models/query.py:6923 ms2.8%
QuerySet.filterdjango/db/models/query.py:16763 ms2.8%
QuerySet._filter_or_excludedjango/db/models/query.py:16943 ms2.8%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:17043 ms2.8%
Query.add_qdjango/db/models/sql/query.py:16813 ms2.8%
Query._add_qdjango/db/models/sql/query.py:17133 ms2.8%
Query.build_filterdjango/db/models/sql/query.py:15731 ms1.4%
Query.build_filterdjango/db/models/sql/query.py:16131 ms1.4%
Query.build_lookupdjango/db/models/sql/query.py:14401 ms1.4%
BaseHandler._get_responsedjango/core/handlers/base.py:1831 ms1.4%
BaseHandler.resolve_requestdjango/core/handlers/base.py:3151 ms1.4%
URLResolver.resolvedjango/urls/resolvers.py:6761 ms1.4%
ClientHandler.__call__django/test/client.py:1731 ms1.4%
BaseHandler.load_middlewaredjango/core/handlers/base.py:631 ms1.4%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:1041 ms1.4%
WhiteNoise.add_fileswhitenoise/base.py:1081 ms1.4%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1201 ms1.4%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:1311 ms1.4%
WhiteNoise.get_static_filewhitenoise/base.py:2171 ms1.4%
StaticFile.__init__whitenoise/responders.py:771 ms1.4%
ClientHandler.__call__django/test/client.py:1751 ms1.4%
Signal.disconnectdjango/dispatch/dispatcher.py:2081 ms1.4%
ClientHandler.__call__django/test/client.py:1781 ms1.4%
__init____init__:-11 ms1.4%
WSGIRequest.__init__django/core/handlers/wsgi.py:781 ms1.4%
ClientHandler.__call__django/test/client.py:2071 ms1.4%
HttpResponseBase.closedjango/http/response.py:3481 ms1.4%
Signal.senddjango/dispatch/dispatcher.py:2491 ms1.4%
close_cachesdjango/core/cache/__init__.py:641 ms1.4%
BaseConnectionHandler.close_alldjango/utils/connection.py:841 ms1.4%
BaseConnectionHandler.alldjango/utils/connection.py:771 ms1.4%
TransactionTestCase._post_teardowndjango/test/testcases.py:1243 self._fixture_teardown()3 ms2.8%
TestCase._fixture_teardowndjango/test/testcases.py:14981 ms1.4%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4951 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:2861 ms1.4%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:781 ms1.4%
TestCase._fixture_teardowndjango/test/testcases.py:15001 ms1.4%
TestCase._rollback_atomicsdjango/test/testcases.py:14081 ms1.4%
Atomic.__exit__django/db/transaction.py:2981 ms1.4%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms1.4%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4311 ms1.4%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3751 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:2861 ms1.4%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:781 ms1.4%
TestOwnerManagement.test_invite_creates_pending_invitation_not_ownerstarter_packs/tests.py:490 self.client.force_login(self.owner)1 ms1.4%
ClientMixin.force_logindjango/test/client.py:8581 ms1.4%
ClientMixin._logindjango/test/client.py:8841 ms1.4%
ClientMixin.sessiondjango/test/client.py:8151 ms1.4%
SessionStore.savedjango/contrib/sessions/backends/db.py:1211 ms1.4%
SessionStore.createdjango/contrib/sessions/backends/db.py:741 ms1.4%
SessionStore.savedjango/contrib/sessions/backends/db.py:1261 ms1.4%
Atomic.__enter__django/db/transaction.py:2231 ms1.4%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms1.4%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4001 ms1.4%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3671 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:2861 ms1.4%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:781 ms1.4%
TestOwnerManagement.test_invite_creates_pending_invitation_not_ownerstarter_packs/tests.py:494 self.assertFalse(self.pack.owners.filter(pk=self.friend.pk).exists())1 ms1.4%
QuerySet.existsdjango/db/models/query.py:14581 ms1.4%
Query.has_resultsdjango/db/models/sql/query.py:6871 ms1.4%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15931 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16251 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%
TestOwnerManagement.test_invite_creates_pending_invitation_not_ownerstarter_packs/tests.py:495 self.assertTrue(self.pack.invitations.filter(invited_user=self.friend, invited_by=self.owner).exists())1 ms1.4%
QuerySet.existsdjango/db/models/query.py:14581 ms1.4%
Query.has_resultsdjango/db/models/sql/query.py:6871 ms1.4%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15931 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16251 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%
Estimated from 71 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
starter_packs/tests.py:491
response = self.client.post(reverse("invite_owner", args=[self.pack.slug, self.friend.id]))
TestOwnerManagement.test_invite_creates_pending_invitation_not_owner
· Database
|
44 ms |
|
starter_packs/views.py:60
return get_object_or_404(StarterPack, slug=slug, owners=request.user, **extra)
get_editable_pack
· Database
|
23 ms |
|
starter_packs/views.py:479
elif starter_pack.owners.filter(pk=user_id).exists():
invite_owner
· Database
|
5 ms |
|
starter_packs/views.py:417
owners = list(starter_pack.owners.select_related("accountaccess__account").order_by("username"))
owners_manager_context
· Database
|
4 ms |
|
starter_packs/views.py:483
elif starter_pack.owners.count() + starter_pack.invitations.count() >= MAX_OWNERS:
invite_owner
· Database
|
4 ms |
|
starter_packs/views.py:418
invitations = list(
owners_manager_context
· Database
|
3 ms |
|
starter_packs/views.py:481
elif starter_pack.invitations.filter(invited_user_id=user_id).exists():
invite_owner
· Database
|
3 ms |
|
starter_packs/tests.py:490
self.client.force_login(self.owner)
TestOwnerManagement.test_invite_creates_pending_invitation_not_owner
· Database
|
1 ms |
|
starter_packs/views.py:477
if not AccountAccess.objects.filter(user_id=user_id).exists():
invite_owner
· Database
|
1 ms |
|
starter_packs/views.py:486
StarterPackInvitation.objects.create(
invite_owner
· 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.04 ms |
| _live_server_helper function | 0.04 ms |
| _django_isolate_apps function | 0.04 ms |
| _django_set_urlconf function | 0.04 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
33 queries · 14 msNo repeated queries.
Biggest pieces of work
|
call test body
starter_packs/tests.py:491
|
92 ms |
|
call _post_teardown
django/test/testcases.py:1243
|
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 | |
|---|---|---|---|---|
| 7 hours ago | CI github-actions:test | passed | 95 ms | Profile |
| 16 hours ago | CI github-actions:test | passed | 95 ms | Profile |
| 22 hours ago | CI github-actions:test | passed | 129 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 136 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 261 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 110 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 91 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 102 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 322 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 299 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 315 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 101 ms | Run |