flakytest.dev anze3db fedidevs
Tests / starter_packs/tests.py

TestOwnerManagement::test_invite_twice_does_not_duplicate

First seen 3 weeks ago in 0c23747
CI github-actions:test 11 runs
Average
168 ms
median 145 ms
max 282 ms
Phases
Setup 1 ms Call 166 ms Teardown 0.37 ms
Categories
Database 64 ms App code 0.33 ms Test code 0.15 ms Other (Libraries, Unsampled, Templates, pytest, ...) 103 ms

40 database queries per run

Needs 122 KB of memory (max 860 KB)

Duration per run

Where the time goes

Latest run in ci:github-actions:test, 7 hours ago · open run
Show pytest frames
call142 ms98.0%
TestOwnerManagement.test_invite_twice_does_not_duplicatestarter_packs/tests.py:513 self.client.force_login(self.owner)88 ms60.9%
ClientMixin.force_logindjango/test/client.py:85888 ms60.9%
ClientMixin._logindjango/test/client.py:88477 ms53.3%
ClientMixin.sessiondjango/test/client.py:81577 ms53.3%
SessionStore.savedjango/contrib/sessions/backends/db.py:12177 ms53.3%
SessionStore.createdjango/contrib/sessions/backends/db.py:7076 ms52.3%
SessionBase._get_new_session_keydjango/contrib/sessions/backends/base.py:20176 ms52.3%
SessionStore.existsdjango/contrib/sessions/backends/db.py:6376 ms52.3%
QuerySet.existsdjango/db/models/query.py:145876 ms52.3%
Query.has_resultsdjango/db/models/sql/query.py:68776 ms52.3%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:159376 ms52.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:162575 ms51.4%
CursorWrapper.executedjango/db/backends/utils.py:7975 ms51.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9275 ms51.4%
CursorWrapper._executedjango/db/backends/utils.py:10575 ms51.4%
Cursor.executepsycopg/cursor.py:11375 ms51.4%
Connection.waitpsycopg/connection.py:49575 ms51.4%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms1.0%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2861 ms1.0%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:781 ms1.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16121 ms1.0%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7961 ms1.0%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5791 ms1.0%
WhereNode.as_sqldjango/db/models/sql/where.py:1511 ms1.0%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5791 ms1.0%
Exact.as_sqldjango/db/models/lookups.py:4071 ms1.0%
BuiltinLookup.as_sqldjango/db/models/lookups.py:2461 ms1.0%
BuiltinLookup.get_rhs_opdjango/db/models/lookups.py:2501 ms1.0%
SessionStore.createdjango/contrib/sessions/backends/db.py:741 ms1.0%
SessionStore.savedjango/contrib/sessions/backends/db.py:1261 ms1.0%
Atomic.__enter__django/db/transaction.py:2231 ms1.0%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms1.0%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4001 ms1.0%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3671 ms1.0%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.0%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms1.0%
Cursor.executepsycopg/cursor.py:1131 ms1.0%
Connection.waitpsycopg/connection.py:4951 ms1.0%
ClientMixin._logindjango/test/client.py:8898 ms5.7%
logindjango/contrib/auth/__init__.py:1896 ms3.8%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4374 ms2.9%
SessionStore.createdjango/contrib/sessions/backends/db.py:703 ms1.9%
SessionBase._get_new_session_keydjango/contrib/sessions/backends/base.py:2013 ms1.9%
SessionStore.existsdjango/contrib/sessions/backends/db.py:633 ms1.9%
QuerySet.existsdjango/db/models/query.py:14583 ms1.9%
Query.has_resultsdjango/db/models/sql/query.py:6851 ms1.0%
Query.existsdjango/db/models/sql/query.py:6631 ms1.0%
Query.clonedjango/db/models/sql/query.py:4021 ms1.0%
WhereNode.clonedjango/db/models/sql/where.py:2221 ms1.0%
Query.has_resultsdjango/db/models/sql/query.py:6871 ms1.0%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15931 ms1.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16251 ms1.0%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.0%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.0%
Cursor.executepsycopg/cursor.py:1131 ms1.0%
Connection.waitpsycopg/connection.py:4951 ms1.0%
SessionStore.createdjango/contrib/sessions/backends/db.py:741 ms1.0%
SessionStore.savedjango/contrib/sessions/backends/db.py:1261 ms1.0%
Atomic.__enter__django/db/transaction.py:2231 ms1.0%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms1.0%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4001 ms1.0%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3671 ms1.0%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.0%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms1.0%
Cursor.executepsycopg/cursor.py:1131 ms1.0%
Connection.waitpsycopg/connection.py:4951 ms1.0%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4401 ms1.0%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1751 ms1.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.0%
QuerySet.getdjango/db/models/query.py:7021 ms1.0%
QuerySet.__len__django/db/models/query.py:4211 ms1.0%
QuerySet._fetch_alldjango/db/models/query.py:22621 ms1.0%
ModelIterable.__iter__django/db/models/query.py:1031 ms1.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16251 ms1.0%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.0%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.0%
Cursor.executepsycopg/cursor.py:1131 ms1.0%
Connection.waitpsycopg/connection.py:4951 ms1.0%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms1.0%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2861 ms1.0%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:781 ms1.0%
logindjango/contrib/auth/__init__.py:1771 ms1.0%
SessionBase.__contains__django/contrib/sessions/backends/base.py:521 ms1.0%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2541 ms1.0%
SessionStore.loaddjango/contrib/sessions/backends/db.py:551 ms1.0%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:341 ms1.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.0%
QuerySet.getdjango/db/models/query.py:7021 ms1.0%
QuerySet.__len__django/db/models/query.py:4211 ms1.0%
QuerySet._fetch_alldjango/db/models/query.py:22621 ms1.0%
ModelIterable.__iter__django/db/models/query.py:1031 ms1.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16251 ms1.0%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.0%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.0%
Cursor.executepsycopg/cursor.py:1131 ms1.0%
Connection.waitpsycopg/connection.py:4951 ms1.0%
logindjango/contrib/auth/__init__.py:1981 ms1.0%
Signal.senddjango/dispatch/dispatcher.py:2491 ms1.0%
update_last_logindjango/contrib/auth/models.py:241 ms1.0%
AbstractBaseUser.savedjango/contrib/auth/base_user.py:621 ms1.0%
Model.savedjango/db/models/base.py:9041 ms1.0%
Model.save_basedjango/db/models/base.py:9961 ms1.0%
Model._save_tabledjango/db/models/base.py:11401 ms1.0%
Model._do_updatedjango/db/models/base.py:12441 ms1.0%
QuerySet._updatedjango/db/models/query.py:14481 ms1.0%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21501 ms1.0%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21211 ms1.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16251 ms1.0%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.0%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.0%
Cursor.executepsycopg/cursor.py:1131 ms1.0%
Connection.waitpsycopg/connection.py:4951 ms1.0%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms1.0%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2861 ms1.0%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:781 ms1.0%
ClientMixin._logindjango/test/client.py:8913 ms1.9%
SessionStore.savedjango/contrib/sessions/backends/db.py:1261 ms1.0%
Atomic.__enter__django/db/transaction.py:2231 ms1.0%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms1.0%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4001 ms1.0%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3671 ms1.0%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.0%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms1.0%
Cursor.executepsycopg/cursor.py:1131 ms1.0%
Connection.waitpsycopg/connection.py:4951 ms1.0%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms1.0%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2861 ms1.0%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:781 ms1.0%
SessionStore.savedjango/contrib/sessions/backends/db.py:1271 ms1.0%
Model.savedjango/db/models/base.py:9041 ms1.0%
Model.save_basedjango/db/models/base.py:9961 ms1.0%
Model._save_tabledjango/db/models/base.py:11401 ms1.0%
Model._do_updatedjango/db/models/base.py:12441 ms1.0%
QuerySet._updatedjango/db/models/query.py:14481 ms1.0%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21501 ms1.0%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21211 ms1.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16251 ms1.0%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.0%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.0%
Cursor.executepsycopg/cursor.py:1131 ms1.0%
Connection.waitpsycopg/connection.py:4951 ms1.0%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms1.0%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2861 ms1.0%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:781 ms1.0%
TestOwnerManagement.test_invite_twice_does_not_duplicatestarter_packs/tests.py:514 self.client.post(reverse("invite_owner", args=[self.pack.slug, self.friend.id]))54 ms37.1%
Client.postdjango/test/client.py:116254 ms37.1%
RequestFactory.postdjango/test/client.py:49954 ms37.1%
RequestFactory.genericdjango/test/client.py:67154 ms37.1%
Client.requestdjango/test/client.py:109154 ms37.1%
ClientHandler.__call__django/test/client.py:17332 ms21.9%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6332 ms21.9%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10432 ms21.9%
WhiteNoise.add_fileswhitenoise/base.py:10832 ms21.9%
WhiteNoise.update_files_dictionarywhitenoise/base.py:11519 ms13.3%
scantreewhitenoise/base.py:27117 ms11.4%
scantreewhitenoise/base.py:27311 ms7.6%
<GC>~11 ms7.6%
scantreewhitenoise/base.py:2716 ms3.8%
scantreewhitenoise/base.py:2713 ms1.9%
scantreewhitenoise/base.py:2713 ms1.9%
scantreewhitenoise/base.py:2713 ms1.9%
scantreewhitenoise/base.py:2691 ms1.0%
scantreewhitenoise/base.py:2731 ms1.0%
scantreewhitenoise/base.py:2691 ms1.0%
scantreewhitenoise/base.py:2731 ms1.0%
scantreewhitenoise/base.py:2731 ms1.0%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12012 ms8.6%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13112 ms8.6%
WhiteNoise.get_static_filewhitenoise/base.py:2177 ms4.8%
StaticFile.__init__whitenoise/responders.py:773 ms1.9%
StaticFile.get_alternativeswhitenoise/responders.py:2031 ms1.0%
Headers.__setitem__<stdlib>/wsgiref/headers.py:621 ms1.0%
Headers.__init__<stdlib>/wsgiref/headers.py:431 ms1.0%
StaticFile.get_alternativeswhitenoise/responders.py:2001 ms1.0%
__init____init__:-11 ms1.0%
Headers.__init__<stdlib>/wsgiref/headers.py:431 ms1.0%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:491 ms1.0%
StaticFile.__init__whitenoise/responders.py:731 ms1.0%
StaticFile.get_headerswhitenoise/responders.py:1761 ms1.0%
formatdate<stdlib>/email/utils.py:2661 ms1.0%
StaticFile.__init__whitenoise/responders.py:741 ms1.0%
parsedate<stdlib>/email/_parseaddr.py:1851 ms1.0%
StaticFile.__init__whitenoise/responders.py:721 ms1.0%
WhiteNoise.get_static_filewhitenoise/base.py:2124 ms2.9%
WhiteNoise.add_cache_headerswhitenoise/base.py:2334 ms2.9%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1764 ms2.9%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1974 ms2.9%
URLMixin.urldebug_toolbar/panels/staticfiles.py:204 ms2.9%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2353 ms1.9%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:2161 ms1.0%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:2141 ms1.0%
WhiteNoise.get_static_filewhitenoise/base.py:2141 ms1.0%
ClientHandler.__call__django/test/client.py:18622 ms15.2%
BaseHandler.get_responsedjango/core/handlers/base.py:14222 ms15.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5622 ms15.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38022 ms15.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5622 ms15.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38022 ms15.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5622 ms15.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38022 ms15.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5622 ms15.2%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12322 ms15.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5622 ms15.2%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:14522 ms15.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5622 ms15.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38022 ms15.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5622 ms15.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38022 ms15.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5622 ms15.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38022 ms15.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5622 ms15.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38022 ms15.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5622 ms15.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38022 ms15.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5622 ms15.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38021 ms14.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5621 ms14.3%
MiddlewareMixin.__call__django/utils/deprecation.py:38021 ms14.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5621 ms14.3%
BaseHandler._get_responsedjango/core/handlers/base.py:19921 ms14.3%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6321 ms14.3%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:6211 ms7.6%
invite_ownerstarter_packs/views.py:4746 ms3.8%
get_editable_packstarter_packs/views.py:60 return get_object_or_404(StarterPack, slug=slug, owners=request.user, **extra)6 ms3.8%
get_object_or_404django/shortcuts.py:1006 ms3.8%
QuerySet.getdjango/db/models/query.py:7024 ms2.9%
QuerySet.__len__django/db/models/query.py:4214 ms2.9%
QuerySet._fetch_alldjango/db/models/query.py:22624 ms2.9%
ModelIterable.__iter__django/db/models/query.py:1034 ms2.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16123 ms1.9%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7683 ms1.9%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:893 ms1.9%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:783 ms1.9%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:2651 ms1.0%
SQLCompiler.get_default_columnsdjango/db/models/sql/compiler.py:10101 ms1.0%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3191 ms1.0%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5791 ms1.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16251 ms1.0%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.0%
QuerySet.getdjango/db/models/query.py:6921 ms1.0%
QuerySet.filterdjango/db/models/query.py:16761 ms1.0%
QuerySet._filter_or_excludedjango/db/models/query.py:16941 ms1.0%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:17041 ms1.0%
Query.add_qdjango/db/models/sql/query.py:16811 ms1.0%
Query._add_qdjango/db/models/sql/query.py:17131 ms1.0%
Query.build_filterdjango/db/models/sql/query.py:15771 ms1.0%
Query.setup_joinsdjango/db/models/sql/query.py:19871 ms1.0%
invite_ownerstarter_packs/views.py:479 elif starter_pack.owners.filter(pk=user_id).exists():3 ms1.9%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.0%
QuerySet.filterdjango/db/models/query.py:16751 ms1.0%
QuerySet._not_support_combined_queriesdjango/db/models/query.py:23361 ms1.0%
QuerySet.querydjango/db/models/query.py:3551 ms1.0%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:17041 ms1.0%
Query.add_qdjango/db/models/sql/query.py:16811 ms1.0%
Query._add_qdjango/db/models/sql/query.py:17281 ms1.0%
JoinPromoter.update_join_typesdjango/db/models/sql/query.py:28971 ms1.0%
Query.demote_joinsdjango/db/models/sql/query.py:9871 ms1.0%
Join.demotedjango/db/models/sql/datastructures.py:1711 ms1.0%
Join.relabeled_clonedjango/db/models/sql/datastructures.py:1421 ms1.0%
QuerySet.existsdjango/db/models/query.py:14581 ms1.0%
Query.has_resultsdjango/db/models/sql/query.py:6871 ms1.0%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15931 ms1.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16231 ms1.0%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms1.0%
BaseDatabaseWrapper.cursordjango/db/backends/base/base.py:3201 ms1.0%
BaseDatabaseWrapper._cursordjango/db/backends/base/base.py:2981 ms1.0%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms1.0%
invite_ownerstarter_packs/views.py:475 q = request.POST.get("q", "").replace("\x00", "").strip()1 ms1.0%
WSGIRequest._get_postdjango/core/handlers/wsgi.py:931 ms1.0%
HttpRequest._load_post_and_filesdjango/http/request.py:4691 ms1.0%
HttpRequest.parse_file_uploaddjango/http/request.py:3971 ms1.0%
MultiPartParser.parsedjango/http/multipartparser.py:1251 ms1.0%
MultiPartParser._parsedjango/http/multipartparser.py:1881 ms1.0%
Parser.__iter__django/http/multipartparser.py:7591 ms1.0%
parse_boundary_streamdjango/http/multipartparser.py:7131 ms1.0%
invite_ownerstarter_packs/views.py:477 if not AccountAccess.objects.filter(user_id=user_id).exists():1 ms1.0%
QuerySet.existsdjango/db/models/query.py:14581 ms1.0%
Query.has_resultsdjango/db/models/sql/query.py:6871 ms1.0%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15931 ms1.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16121 ms1.0%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7681 ms1.0%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:891 ms1.0%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:781 ms1.0%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3191 ms1.0%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:5910 ms6.7%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:8210 ms6.7%
new_method_proxy.<locals>.innerdjango/utils/functional.py:25110 ms6.7%
SimpleLazyObject._setupdjango/utils/functional.py:40410 ms6.7%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:3910 ms6.7%
get_userdjango/contrib/auth/middleware.py:1910 ms6.7%
get_userdjango/contrib/auth/__init__.py:2877 ms4.8%
_get_user_session_keydjango/contrib/auth/__init__.py:1116 ms3.8%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:556 ms3.8%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2546 ms3.8%
SessionStore.loaddjango/contrib/sessions/backends/db.py:556 ms3.8%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:346 ms3.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:876 ms3.8%
QuerySet.getdjango/db/models/query.py:7024 ms2.9%
QuerySet.__len__django/db/models/query.py:4214 ms2.9%
QuerySet._fetch_alldjango/db/models/query.py:22624 ms2.9%
ModelIterable.__iter__django/db/models/query.py:1034 ms2.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16123 ms1.9%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7681 ms1.0%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:891 ms1.0%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:781 ms1.0%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:2731 ms1.0%
SQLCompiler.get_select.<locals>.<genexpr>django/db/models/sql/compiler.py:2781 ms1.0%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:9391 ms1.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16251 ms1.0%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.0%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms1.0%
Cursor.executepsycopg/cursor.py:1131 ms1.0%
Connection.waitpsycopg/connection.py:4951 ms1.0%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms1.0%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2861 ms1.0%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:781 ms1.0%
QuerySet.getdjango/db/models/query.py:6921 ms1.0%
QuerySet.filterdjango/db/models/query.py:16761 ms1.0%
QuerySet._filter_or_excludedjango/db/models/query.py:16941 ms1.0%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:17041 ms1.0%
Query.add_qdjango/db/models/sql/query.py:16811 ms1.0%
Query._add_qdjango/db/models/sql/query.py:17131 ms1.0%
Query.build_filterdjango/db/models/sql/query.py:15511 ms1.0%
get_userdjango/contrib/auth/__init__.py:2943 ms1.9%
ModelBackend.get_userdjango/contrib/auth/backends.py:2373 ms1.9%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms1.9%
QuerySet.getdjango/db/models/query.py:7023 ms1.9%
QuerySet.__len__django/db/models/query.py:4213 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:22621 ms1.0%
ModelIterable.__iter__django/db/models/query.py:1031 ms1.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16121 ms1.0%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7961 ms1.0%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5791 ms1.0%
WhereNode.as_sqldjango/db/models/sql/where.py:1511 ms1.0%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5791 ms1.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3791 ms1.0%
MessageMiddleware.process_requestdjango/contrib/messages/middleware.py:121 ms1.0%
default_storagedjango/contrib/messages/storage/__init__.py:121 ms1.0%
FallbackStorage.__init__django/contrib/messages/storage/fallback.py:171 ms1.0%
CookieStorage.__init__django/contrib/messages/storage/cookie.py:921 ms1.0%
Estimated from 103 samples; phase durations are exact. Frames from pytest and pluggy are hidden .

Hot lines in your code

starter_packs/tests.py:513
self.client.force_login(self.owner)
TestOwnerManagement.test_invite_twice_does_not_duplicate · Database
88 ms
starter_packs/tests.py:514
self.client.post(reverse("invite_owner", args=[self.pack.slug, self.friend.id]))
TestOwnerManagement.test_invite_twice_does_not_duplicate · Libraries
43 ms
starter_packs/views.py:60
return get_object_or_404(StarterPack, slug=slug, owners=request.user, **extra)
get_editable_pack · Database
6 ms
starter_packs/views.py:479
elif starter_pack.owners.filter(pk=user_id).exists():
invite_owner · Database
3 ms
starter_packs/views.py:475
q = request.POST.get("q", "").replace("\x00", "").strip()
invite_owner · Libraries
1 ms
starter_packs/views.py:477
if not AccountAccess.objects.filter(user_id=user_id).exists():
invite_owner · Database
1 ms

Fixtures

Exact setup time
_django_set_urlconf function 0.08 ms
_template_string_if_invalid_marker function 0.06 ms
_live_server_helper function 0.05 ms
_dj_autoclear_mailbox function 0.05 ms
_django_db_marker function 0.04 ms
_django_isolate_apps function 0.04 ms
_django_clear_site_cache function 0.03 ms
monkeypatch function 0.03 ms

Database

40 queries · 27 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
starter_packs/tests.py:513
142 ms

Reliability

12 results · 0 CI failures · 0 local failures

This test hasn't failed recently.

History

Latest 12 results, oldest first in the strip
When Environment Outcome Duration Commit
7 hours ago CI github-actions:test passed 145 ms c28a326 main Profile
16 hours ago CI github-actions:test passed 73 ms 9b8826a main Profile
22 hours ago CI github-actions:test passed 142 ms 4f01055 main Profile
1 week, 5 days ago CI github-actions:test passed 184 ms 8ab642e main Profile
2 weeks, 2 days ago CI github-actions:test passed 130 ms 9b75244 main Profile
2 weeks, 2 days ago CI github-actions:test passed 126 ms 9603516 main Profile
2 weeks, 4 days ago CI github-actions:test passed 148 ms 615a272 main Profile
3 weeks ago CI github-actions:test passed 111 ms d923a46 main Profile
3 weeks ago CI github-actions:test passed 269 ms 82997f8 main Profile
3 weeks ago CI github-actions:test passed 282 ms 623aa3e main Profile
3 weeks ago CI github-actions:test passed 236 ms ab6465a main Profile
3 weeks ago CI github-actions:test passed 122 ms 0c23747 main Run