Tests / starter_packs/tests.py
TestOwnerManagement::test_owner_cancels_invitation
First seen 14 hours ago in 0c23747
CI
github-actions:test
4 runs
Average
178 ms
median 211 ms
max 223 ms
max 223 ms
Phases
Setup 1 ms
Call 177 ms
Teardown 0.34 ms
Categories
Database 29 ms
Other (Libraries, pytest, Unsampled) 150 ms
28 database queries per run
Needs 288 KB of memory (max 1 MB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 8 hours ago ·
open run
setup0.88 ms1.3%
__init____init__:-10.88 ms1.3%
call66 ms98.3%
TestOwnerManagement.test_owner_cancels_invitationstarter_packs/tests.py:551 response = self.client.post(reverse("cancel_invitation", args=[self.pack.slug, self.friend.id]))54 ms80.6%
Client.postdjango/test/client.py:116254 ms80.6%
RequestFactory.postdjango/test/client.py:49954 ms80.6%
RequestFactory.genericdjango/test/client.py:67154 ms80.6%
Client.requestdjango/test/client.py:109154 ms80.6%
ClientHandler.__call__django/test/client.py:17337 ms55.4%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6337 ms55.4%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10437 ms55.4%
WhiteNoise.add_fileswhitenoise/base.py:10837 ms55.4%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12026 ms37.8%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13126 ms37.8%
WhiteNoise.get_static_filewhitenoise/base.py:21714 ms20.2%
StaticFile.__init__whitenoise/responders.py:777 ms10.1%
StaticFile.get_alternativeswhitenoise/responders.py:1983 ms5.0%
StaticFile.get_alternatives.<locals>.<lambda>whitenoise/responders.py:1982 ms2.5%
<GC>~2 ms2.5%
StaticFile.get_alternativeswhitenoise/responders.py:2003 ms5.0%
__init____init__:-13 ms5.0%
Headers.__init__<stdlib>/wsgiref/headers.py:443 ms5.0%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:502 ms2.5%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:492 ms2.5%
StaticFile.__init__whitenoise/responders.py:763 ms5.0%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1893 ms5.0%
Headers.__getitem__<stdlib>/wsgiref/headers.py:833 ms5.0%
Headers.get<stdlib>/wsgiref/headers.py:1062 ms2.5%
StaticFile.__init__whitenoise/responders.py:733 ms5.0%
StaticFile.get_headerswhitenoise/responders.py:1672 ms2.5%
__init____init__:-12 ms2.5%
Headers.__init__<stdlib>/wsgiref/headers.py:432 ms2.5%
StaticFile.get_headerswhitenoise/responders.py:1762 ms2.5%
WhiteNoise.get_static_filewhitenoise/base.py:2129 ms12.6%
WhiteNoise.add_cache_headerswhitenoise/base.py:2335 ms7.6%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1765 ms7.6%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1975 ms7.6%
URLMixin.urldebug_toolbar/panels/staticfiles.py:205 ms7.6%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2355 ms7.6%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:2083 ms5.0%
urlsplit<stdlib>/urllib/parse.py:5792 ms2.5%
WhiteNoise.add_cache_headerswhitenoise/base.py:2363 ms5.0%
WhiteNoise.get_static_filewhitenoise/base.py:2113 ms5.0%
WhiteNoise.add_mime_headerswhitenoise/base.py:2253 ms5.0%
MediaTypes.get_typewhitenoise/media_types.py:192 ms2.5%
splitext<frozen posixpath>:1262 ms2.5%
_splitext<frozen genericpath>:1852 ms2.5%
MediaTypes.get_typewhitenoise/media_types.py:152 ms2.5%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1159 ms12.6%
scantreewhitenoise/base.py:2719 ms12.6%
scantreewhitenoise/base.py:2717 ms10.1%
scantreewhitenoise/base.py:2715 ms7.6%
scantreewhitenoise/base.py:2715 ms7.6%
scantreewhitenoise/base.py:2713 ms5.0%
scantreewhitenoise/base.py:2733 ms5.0%
<GC>~2 ms2.5%
scantreewhitenoise/base.py:2732 ms2.5%
scantreewhitenoise/base.py:2692 ms2.5%
scantreewhitenoise/base.py:2732 ms2.5%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1182 ms2.5%
ClientHandler.__call__django/test/client.py:18617 ms25.2%
BaseHandler.get_responsedjango/core/handlers/base.py:14217 ms25.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5617 ms25.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38017 ms25.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5617 ms25.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38017 ms25.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5617 ms25.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38015 ms22.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5615 ms22.7%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12315 ms22.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5615 ms22.7%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:14515 ms22.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5614 ms20.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38014 ms20.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5614 ms20.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38014 ms20.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5614 ms20.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38014 ms20.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5614 ms20.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38014 ms20.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5614 ms20.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38014 ms20.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5614 ms20.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38014 ms20.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5614 ms20.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38014 ms20.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5614 ms20.2%
BaseHandler._get_responsedjango/core/handlers/base.py:19914 ms20.2%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6314 ms20.2%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:6212 ms17.6%
cancel_invitationstarter_packs/views.py:4997 ms10.1%
owners_manager_contextstarter_packs/views.py:417 owners = list(starter_pack.owners.select_related("accountaccess__account").order_by("username"))3 ms5.0%
QuerySet.__iter__django/db/models/query.py:4393 ms5.0%
QuerySet._fetch_alldjango/db/models/query.py:22623 ms5.0%
ModelIterable.__iter__django/db/models/query.py:1033 ms5.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16253 ms5.0%
CursorWrapper.executedjango/db/backends/utils.py:793 ms5.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms5.0%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms5.0%
Cursor.executepsycopg/cursor.py:1133 ms5.0%
Connection.waitpsycopg/connection.py:4953 ms5.0%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.5%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.5%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.5%
owners_manager_contextstarter_packs/views.py:418 invitations = list(3 ms5.0%
QuerySet.__iter__django/db/models/query.py:4393 ms5.0%
QuerySet._fetch_alldjango/db/models/query.py:22623 ms5.0%
ModelIterable.__iter__django/db/models/query.py:1033 ms5.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16122 ms2.5%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7682 ms2.5%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:902 ms2.5%
SQLCompiler.get_order_bydjango/db/models/sql/compiler.py:4912 ms2.5%
SQLCompiler._order_by_pairsdjango/db/models/sql/compiler.py:3612 ms2.5%
Expression.__hash__django/db/models/expressions.py:5622 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16252 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
cancel_invitationstarter_packs/views.py:4963 ms5.0%
get_editable_packstarter_packs/views.py:60 return get_object_or_404(StarterPack, slug=slug, owners=request.user, **extra)3 ms5.0%
get_object_or_404django/shortcuts.py:1003 ms5.0%
QuerySet.getdjango/db/models/query.py:7023 ms5.0%
QuerySet.__len__django/db/models/query.py:4213 ms5.0%
QuerySet._fetch_alldjango/db/models/query.py:22623 ms5.0%
ModelIterable.__iter__django/db/models/query.py:1033 ms5.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16253 ms5.0%
CursorWrapper.executedjango/db/backends/utils.py:793 ms5.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms5.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.5%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.5%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.5%
cancel_invitationstarter_packs/views.py:498 starter_pack.invitations.filter(invited_user_id=user_id).delete()2 ms2.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.5%
QuerySet.filterdjango/db/models/query.py:16752 ms2.5%
QuerySet._not_support_combined_queriesdjango/db/models/query.py:23362 ms2.5%
QuerySet.querydjango/db/models/query.py:3552 ms2.5%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:17042 ms2.5%
Query.add_qdjango/db/models/sql/query.py:16812 ms2.5%
Query._add_qdjango/db/models/sql/query.py:17132 ms2.5%
Query.build_filterdjango/db/models/sql/query.py:16132 ms2.5%
Query.build_lookupdjango/db/models/sql/query.py:14402 ms2.5%
deconstructible.<locals>.decorator.<locals>.__new__django/utils/deconstruct.py:172 ms2.5%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:592 ms2.5%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:822 ms2.5%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2512 ms2.5%
SimpleLazyObject._setupdjango/utils/functional.py:4042 ms2.5%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:392 ms2.5%
get_userdjango/contrib/auth/middleware.py:192 ms2.5%
get_userdjango/contrib/auth/__init__.py:2872 ms2.5%
_get_user_session_keydjango/contrib/auth/__init__.py:1112 ms2.5%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:552 ms2.5%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2542 ms2.5%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms2.5%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms2.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.5%
QuerySet.getdjango/db/models/query.py:6922 ms2.5%
QuerySet.filterdjango/db/models/query.py:16762 ms2.5%
QuerySet._filter_or_excludedjango/db/models/query.py:16942 ms2.5%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:17042 ms2.5%
Query.add_qdjango/db/models/sql/query.py:16812 ms2.5%
Query._add_qdjango/db/models/sql/query.py:17132 ms2.5%
Query.build_filterdjango/db/models/sql/query.py:15732 ms2.5%
Query.get_initial_aliasdjango/db/models/sql/query.py:11222 ms2.5%
MiddlewareMixin.__call__django/utils/deprecation.py:3822 ms2.5%
SecurityMiddleware.process_responsedjango/middleware/security.py:362 ms2.5%
TestOwnerManagement.test_owner_cancels_invitationstarter_packs/tests.py:550 self.client.force_login(self.owner)10 ms15.1%
ClientMixin.force_logindjango/test/client.py:85810 ms15.1%
ClientMixin._logindjango/test/client.py:8895 ms7.6%
logindjango/contrib/auth/__init__.py:1893 ms5.0%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4403 ms5.0%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1753 ms5.0%
Model.deletedjango/db/models/base.py:13302 ms2.5%
Model.deletedjango/db/models/base.py:13312 ms2.5%
Collector.deletedjango/db/models/deletion.py:4832 ms2.5%
DeleteQuery.delete_batchdjango/db/models/sql/subqueries.py:432 ms2.5%
DeleteQuery.do_querydjango/db/models/sql/subqueries.py:252 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16252 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.5%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.5%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.5%
logindjango/contrib/auth/__init__.py:1772 ms2.5%
SessionBase.__contains__django/contrib/sessions/backends/base.py:522 ms2.5%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2542 ms2.5%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms2.5%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms2.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.5%
QuerySet.getdjango/db/models/query.py:7022 ms2.5%
QuerySet.__len__django/db/models/query.py:4212 ms2.5%
QuerySet._fetch_alldjango/db/models/query.py:22622 ms2.5%
ModelIterable.__iter__django/db/models/query.py:1032 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16252 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.5%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms2.5%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms2.5%
PostgresClientQuery.dumppsycopg/_queries.py:2992 ms2.5%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3002 ms2.5%
ClientMixin._logindjango/test/client.py:8843 ms5.0%
ClientMixin.sessiondjango/test/client.py:8153 ms5.0%
SessionStore.savedjango/contrib/sessions/backends/db.py:1213 ms5.0%
SessionStore.createdjango/contrib/sessions/backends/db.py:702 ms2.5%
SessionBase._get_new_session_keydjango/contrib/sessions/backends/base.py:2002 ms2.5%
get_random_stringdjango/utils/crypto.py:782 ms2.5%
get_random_string.<locals>.<genexpr>django/utils/crypto.py:782 ms2.5%
Random.choice<stdlib>/random.py:3542 ms2.5%
Random._randbelow_with_getrandbits<stdlib>/random.py:2492 ms2.5%
SystemRandom.getrandbits<stdlib>/random.py:9152 ms2.5%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms2.5%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms2.5%
Model.savedjango/db/models/base.py:9042 ms2.5%
Model.save_basedjango/db/models/base.py:9932 ms2.5%
Model._save_parentsdjango/db/models/base.py:10262 ms2.5%
ClientMixin._logindjango/test/client.py:8912 ms2.5%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms2.5%
Model.savedjango/db/models/base.py:9042 ms2.5%
Model.save_basedjango/db/models/base.py:9962 ms2.5%
TestOwnerManagement.test_owner_cancels_invitationstarter_packs/tests.py:553 self.assertFalse(self.pack.invitations.filter(invited_user=self.friend).exists())2 ms2.5%
QuerySet.existsdjango/db/models/query.py:14582 ms2.5%
Query.has_resultsdjango/db/models/sql/query.py:6872 ms2.5%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15932 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16252 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms2.5%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms2.5%
teardown0.28 ms0.4%
Estimated from 41 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
starter_packs/tests.py:551
response = self.client.post(reverse("cancel_invitation", args=[self.pack.slug, self.friend.id]))
TestOwnerManagement.test_owner_cancels_invitation
· Libraries
|
43 ms |
|
starter_packs/tests.py:550
self.client.force_login(self.owner)
TestOwnerManagement.test_owner_cancels_invitation
· Database
|
10 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:417
owners = list(starter_pack.owners.select_related("accountaccess__account").order_by("username"))
owners_manager_context
· Database
|
3 ms |
|
starter_packs/views.py:418
invitations = list(
owners_manager_context
· Database
|
3 ms |
|
starter_packs/views.py:498
starter_pack.invitations.filter(invited_user_id=user_id).delete()
cancel_invitation
· Database
|
2 ms |
|
starter_packs/tests.py:553
self.assertFalse(self.pack.invitations.filter(invited_user=self.friend).exists())
TestOwnerManagement.test_owner_cancels_invitation
· Database
|
2 ms |
Fixtures
Exact setup time| _live_server_helper function | 0.15 ms |
| _dj_autoclear_mailbox function | 0.05 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _django_db_marker function | 0.03 ms |
| _django_isolate_apps function | 0.03 ms |
| _django_set_urlconf function | 0.02 ms |
| _django_clear_site_cache function | 0.02 ms |
| monkeypatch function | 0.02 ms |
Database
28 queries · 9 msNo repeated queries.
Biggest pieces of work
|
call test body
starter_packs/tests.py:551
|
66 ms |
|
setup __init__
__init__:-1
|
0.88 ms |
|
teardown __setitem__
<frozen os>:735
|
0.28 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 | 68 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 223 ms | Profile |
| 9 hours ago | CI github-actions:test | passed | 215 ms | Profile |
| 13 hours ago | CI github-actions:test | passed | 208 ms | Profile |
| 14 hours ago | CI github-actions:test | passed | 83 ms | Run |