Tests / starter_packs/tests.py
TestOwnerManagement::test_invite_without_account_access_is_rejected
First seen 13 hours ago in 0c23747
CI
github-actions:test
4 runs
Average
181 ms
median 207 ms
max 237 ms
max 237 ms
Phases
Setup 4 ms
Call 177 ms
Teardown 0.42 ms
Categories
Database 42 ms
Other (Libraries, pytest, Templates, Unsampled) 139 ms
28 database queries per run
Needs 0 KB of memory (max 0 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 8 hours ago ·
open run
setup0.78 ms1.1%
call71 ms98.5%
TestOwnerManagement.test_invite_without_account_access_is_rejectedstarter_packs/tests.py:500 response = self.client.post(reverse("invite_owner", args=[self.pack.slug, ghost.id]))56 ms77.4%
Client.postdjango/test/client.py:116256 ms77.4%
RequestFactory.postdjango/test/client.py:49956 ms77.4%
RequestFactory.genericdjango/test/client.py:67156 ms77.4%
Client.requestdjango/test/client.py:109156 ms77.4%
ClientHandler.__call__django/test/client.py:17338 ms52.8%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6338 ms52.8%
__init____init__:-138 ms52.8%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10438 ms52.8%
WhiteNoise.add_fileswhitenoise/base.py:10838 ms52.8%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12026 ms35.2%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13120 ms28.2%
WhiteNoise.get_static_filewhitenoise/base.py:21213 ms17.6%
WhiteNoise.add_cache_headerswhitenoise/base.py:23313 ms17.6%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:17613 ms17.6%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:19713 ms17.6%
URLMixin.urldebug_toolbar/panels/staticfiles.py:2013 ms17.6%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2355 ms7.0%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:2073 ms3.5%
urldefrag<stdlib>/urllib/parse.py:7843 ms3.5%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:2163 ms3.5%
WhiteNoise.get_static_filewhitenoise/base.py:2178 ms10.6%
StaticFile.__init__whitenoise/responders.py:733 ms3.5%
StaticFile.get_headerswhitenoise/responders.py:1703 ms3.5%
StaticFile.__init__whitenoise/responders.py:773 ms3.5%
StaticFile.get_alternativeswhitenoise/responders.py:1983 ms3.5%
StaticFile.__init__whitenoise/responders.py:763 ms3.5%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1903 ms3.5%
WhiteNoise.update_files_dictionarywhitenoise/base.py:11513 ms17.6%
scantreewhitenoise/base.py:27113 ms17.6%
scantreewhitenoise/base.py:27113 ms17.6%
scantreewhitenoise/base.py:2738 ms10.6%
scantreewhitenoise/base.py:2715 ms7.0%
scantreewhitenoise/base.py:2715 ms7.0%
scantreewhitenoise/base.py:2733 ms3.5%
scantreewhitenoise/base.py:2713 ms3.5%
scantreewhitenoise/base.py:2693 ms3.5%
ClientHandler.__call__django/test/client.py:18618 ms24.6%
BaseHandler.get_responsedjango/core/handlers/base.py:14218 ms24.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5618 ms24.6%
MiddlewareMixin.__call__django/utils/deprecation.py:38018 ms24.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5618 ms24.6%
MiddlewareMixin.__call__django/utils/deprecation.py:38018 ms24.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5618 ms24.6%
MiddlewareMixin.__call__django/utils/deprecation.py:38018 ms24.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5618 ms24.6%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12318 ms24.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5618 ms24.6%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:14518 ms24.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5618 ms24.6%
MiddlewareMixin.__call__django/utils/deprecation.py:38018 ms24.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5618 ms24.6%
MiddlewareMixin.__call__django/utils/deprecation.py:38018 ms24.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5618 ms24.6%
MiddlewareMixin.__call__django/utils/deprecation.py:38018 ms24.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5618 ms24.6%
MiddlewareMixin.__call__django/utils/deprecation.py:38018 ms24.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5618 ms24.6%
MiddlewareMixin.__call__django/utils/deprecation.py:38018 ms24.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5618 ms24.6%
MiddlewareMixin.__call__django/utils/deprecation.py:38018 ms24.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5618 ms24.6%
MiddlewareMixin.__call__django/utils/deprecation.py:38018 ms24.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5618 ms24.6%
BaseHandler._get_responsedjango/core/handlers/base.py:19918 ms24.6%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6318 ms24.6%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:6215 ms21.1%
invite_ownerstarter_packs/views.py:490 return render(request, "owners_updated.html", owners_manager_context(starter_pack, q, error))10 ms14.1%
owners_manager_contextstarter_packs/views.py:417 owners = list(starter_pack.owners.select_related("accountaccess__account").order_by("username"))5 ms7.0%
QuerySet.__iter__django/db/models/query.py:4395 ms7.0%
QuerySet._fetch_alldjango/db/models/query.py:22625 ms7.0%
ModelIterable.__iter__django/db/models/query.py:1035 ms7.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16123 ms3.5%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7933 ms3.5%
SQLCompiler.get_from_clausedjango/db/models/sql/compiler.py:11603 ms3.5%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5793 ms3.5%
Join.as_sqldjango/db/models/sql/datastructures.py:883 ms3.5%
DatabaseOperations.prepare_join_on_clausedjango/db/backends/postgresql/operations.py:4053 ms3.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16253 ms3.5%
CursorWrapper.executedjango/db/backends/utils.py:793 ms3.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms3.5%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms3.5%
Cursor.executepsycopg/cursor.py:1133 ms3.5%
Connection.waitpsycopg/connection.py:4953 ms3.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2063 ms3.5%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2863 ms3.5%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:783 ms3.5%
owners_manager_contextstarter_packs/views.py:419 starter_pack.invitations.select_related("invited_user__accountaccess__account").order_by("created_at")3 ms3.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms3.5%
QuerySet.select_relateddjango/db/models/query.py:17883 ms3.5%
QuerySet._not_support_combined_queriesdjango/db/models/query.py:23363 ms3.5%
QuerySet.querydjango/db/models/query.py:3553 ms3.5%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:17043 ms3.5%
Query.add_qdjango/db/models/sql/query.py:16813 ms3.5%
Query._add_qdjango/db/models/sql/query.py:17133 ms3.5%
Query.build_filterdjango/db/models/sql/query.py:16133 ms3.5%
Query.build_lookupdjango/db/models/sql/query.py:14303 ms3.5%
owners_manager_contextstarter_packs/views.py:418 invitations = list(3 ms3.5%
QuerySet.__iter__django/db/models/query.py:4393 ms3.5%
QuerySet._fetch_alldjango/db/models/query.py:22623 ms3.5%
ModelIterable.__iter__django/db/models/query.py:1033 ms3.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16253 ms3.5%
CursorWrapper.executedjango/db/backends/utils.py:793 ms3.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms3.5%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms3.5%
Cursor.executepsycopg/cursor.py:1133 ms3.5%
Connection.waitpsycopg/connection.py:4953 ms3.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2063 ms3.5%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2863 ms3.5%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:783 ms3.5%
invite_ownerstarter_packs/views.py:4743 ms3.5%
get_editable_packstarter_packs/views.py:60 return get_object_or_404(StarterPack, slug=slug, owners=request.user, **extra)3 ms3.5%
get_object_or_404django/shortcuts.py:1003 ms3.5%
QuerySet.getdjango/db/models/query.py:7023 ms3.5%
QuerySet.__len__django/db/models/query.py:4213 ms3.5%
QuerySet._fetch_alldjango/db/models/query.py:22623 ms3.5%
ModelIterable.__iter__django/db/models/query.py:1033 ms3.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16253 ms3.5%
CursorWrapper.executedjango/db/backends/utils.py:793 ms3.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms3.5%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms3.5%
Cursor.executepsycopg/cursor.py:1133 ms3.5%
Connection.waitpsycopg/connection.py:4953 ms3.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2063 ms3.5%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2863 ms3.5%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:783 ms3.5%
invite_ownerstarter_packs/views.py:477 if not AccountAccess.objects.filter(user_id=user_id).exists():3 ms3.5%
QuerySet.existsdjango/db/models/query.py:14583 ms3.5%
Query.has_resultsdjango/db/models/sql/query.py:6873 ms3.5%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15933 ms3.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16253 ms3.5%
CursorWrapper.executedjango/db/backends/utils.py:793 ms3.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms3.5%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms3.5%
Cursor.executepsycopg/cursor.py:1133 ms3.5%
Connection.waitpsycopg/connection.py:4953 ms3.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2063 ms3.5%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2863 ms3.5%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:783 ms3.5%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:593 ms3.5%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:823 ms3.5%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2513 ms3.5%
SimpleLazyObject._setupdjango/utils/functional.py:4043 ms3.5%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:393 ms3.5%
get_userdjango/contrib/auth/middleware.py:193 ms3.5%
get_userdjango/contrib/auth/__init__.py:2873 ms3.5%
_get_user_session_keydjango/contrib/auth/__init__.py:1113 ms3.5%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:553 ms3.5%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2543 ms3.5%
SessionStore.loaddjango/contrib/sessions/backends/db.py:553 ms3.5%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:343 ms3.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms3.5%
QuerySet.getdjango/db/models/query.py:7023 ms3.5%
QuerySet.__len__django/db/models/query.py:4213 ms3.5%
QuerySet._fetch_alldjango/db/models/query.py:22623 ms3.5%
ModelIterable.__iter__django/db/models/query.py:1033 ms3.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16123 ms3.5%
TestOwnerManagement.test_invite_without_account_access_is_rejectedstarter_packs/tests.py:499 self.client.force_login(self.owner)10 ms14.1%
ClientMixin.force_logindjango/test/client.py:85810 ms14.1%
ClientMixin._logindjango/test/client.py:8898 ms10.6%
logindjango/contrib/auth/__init__.py:1895 ms7.0%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4373 ms3.5%
SessionStore.createdjango/contrib/sessions/backends/db.py:703 ms3.5%
SessionBase._get_new_session_keydjango/contrib/sessions/backends/base.py:2013 ms3.5%
SessionStore.existsdjango/contrib/sessions/backends/db.py:633 ms3.5%
QuerySet.existsdjango/db/models/query.py:14583 ms3.5%
Query.has_resultsdjango/db/models/sql/query.py:6873 ms3.5%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15933 ms3.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16233 ms3.5%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:213 ms3.5%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4403 ms3.5%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1753 ms3.5%
Model.deletedjango/db/models/base.py:13313 ms3.5%
Collector.deletedjango/db/models/deletion.py:4833 ms3.5%
DeleteQuery.delete_batchdjango/db/models/sql/subqueries.py:433 ms3.5%
DeleteQuery.do_querydjango/db/models/sql/subqueries.py:253 ms3.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16253 ms3.5%
CursorWrapper.executedjango/db/backends/utils.py:793 ms3.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms3.5%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms3.5%
Cursor.executepsycopg/cursor.py:1133 ms3.5%
Connection.waitpsycopg/connection.py:4953 ms3.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2063 ms3.5%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2863 ms3.5%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:783 ms3.5%
logindjango/contrib/auth/__init__.py:1753 ms3.5%
AbstractBaseUser.get_session_auth_hashdjango/contrib/auth/base_user.py:1363 ms3.5%
ClientMixin._logindjango/test/client.py:8843 ms3.5%
ClientMixin.sessiondjango/test/client.py:8153 ms3.5%
SessionStore.savedjango/contrib/sessions/backends/db.py:1213 ms3.5%
SessionStore.createdjango/contrib/sessions/backends/db.py:703 ms3.5%
SessionBase._get_new_session_keydjango/contrib/sessions/backends/base.py:2013 ms3.5%
SessionStore.existsdjango/contrib/sessions/backends/db.py:633 ms3.5%
QuerySet.existsdjango/db/models/query.py:14583 ms3.5%
Query.has_resultsdjango/db/models/sql/query.py:6873 ms3.5%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15933 ms3.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16253 ms3.5%
CursorWrapper.executedjango/db/backends/utils.py:793 ms3.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms3.5%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms3.5%
Cursor.executepsycopg/cursor.py:1133 ms3.5%
Connection.waitpsycopg/connection.py:4953 ms3.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2063 ms3.5%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2863 ms3.5%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:783 ms3.5%
TestOwnerManagement.test_invite_without_account_access_is_rejectedstarter_packs/tests.py:502 self.assertFalse(self.pack.invitations.filter(invited_user=ghost).exists())3 ms3.5%
QuerySet.existsdjango/db/models/query.py:14583 ms3.5%
Query.has_resultsdjango/db/models/sql/query.py:6873 ms3.5%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15933 ms3.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16253 ms3.5%
CursorWrapper.executedjango/db/backends/utils.py:793 ms3.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms3.5%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms3.5%
Cursor.executepsycopg/cursor.py:1133 ms3.5%
Connection.waitpsycopg/connection.py:4953 ms3.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2063 ms3.5%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2863 ms3.5%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:783 ms3.5%
TransactionTestCase._post_teardowndjango/test/testcases.py:1243 self._fixture_teardown()3 ms3.5%
TestCase._fixture_teardowndjango/test/testcases.py:14983 ms3.5%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4953 ms3.5%
CursorWrapper.executedjango/db/backends/utils.py:793 ms3.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms3.5%
CursorWrapper._executedjango/db/backends/utils.py:1033 ms3.5%
Cursor.executepsycopg/cursor.py:1133 ms3.5%
Connection.waitpsycopg/connection.py:4953 ms3.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2063 ms3.5%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2863 ms3.5%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:783 ms3.5%
Estimated from 29 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
starter_packs/tests.py:500
response = self.client.post(reverse("invite_owner", args=[self.pack.slug, ghost.id]))
TestOwnerManagement.test_invite_without_account_access_is_rejected
· Libraries
|
41 ms |
|
starter_packs/tests.py:499
self.client.force_login(self.owner)
TestOwnerManagement.test_invite_without_account_access_is_rejected
· Database
|
10 ms |
|
starter_packs/views.py:417
owners = list(starter_pack.owners.select_related("accountaccess__account").order_by("username"))
owners_manager_context
· Database
|
5 ms |
|
starter_packs/views.py:60
return get_object_or_404(StarterPack, slug=slug, owners=request.user, **extra)
get_editable_pack
· Database
|
3 ms |
|
starter_packs/views.py:477
if not AccountAccess.objects.filter(user_id=user_id).exists():
invite_owner
· Database
|
3 ms |
|
starter_packs/views.py:419
starter_pack.invitations.select_related("invited_user__accountaccess__account").order_by("created_at")
owners_manager_context
· Database
|
3 ms |
|
starter_packs/views.py:418
invitations = list(
owners_manager_context
· Database
|
3 ms |
|
starter_packs/tests.py:502
self.assertFalse(self.pack.invitations.filter(invited_user=ghost).exists())
TestOwnerManagement.test_invite_without_account_access_is_rejected
· Database
|
3 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.03 ms |
| _live_server_helper function | 0.03 ms |
| _django_isolate_apps function | 0.03 ms |
| _django_set_urlconf function | 0.03 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
28 queries · 9 msNo repeated queries.
Biggest pieces of work
|
call test body
starter_packs/tests.py:500
|
69 ms |
|
call _post_teardown
django/test/testcases.py:1243
|
3 ms |
| setup pytest internals | 0.78 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 | |
|---|---|---|---|---|
| 8 hours ago | CI github-actions:test | passed | 73 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 195 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 237 ms | Profile |
| 13 hours ago | CI github-actions:test | passed | 220 ms | Profile |
| 13 hours ago | CI github-actions:test | passed | 106 ms | Run |