Tests / starter_packs/tests.py
TestOwnerManagement::test_removing_self_redirects_home
First seen 13 hours ago in 0c23747
CI
github-actions:test
4 runs
Average
152 ms
median 159 ms
max 188 ms
max 188 ms
Phases
Setup 1 ms
Call 149 ms
Teardown 1 ms
Categories
Database 29 ms
Other (Libraries, Unsampled, pytest, Logging) 123 ms
27 database queries per run
Needs 119 KB of memory (max 468 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 8 hours ago ·
open run
setup1 ms1.3%
call101 ms98.3%
TestOwnerManagement.test_removing_self_redirects_homestarter_packs/tests.py:648 response = self.client.post(reverse("remove_owner", args=[self.pack.slug, self.owner.id]))84 ms82.1%
Client.postdjango/test/client.py:116284 ms82.1%
RequestFactory.postdjango/test/client.py:49984 ms82.1%
RequestFactory.genericdjango/test/client.py:67184 ms82.1%
Client.requestdjango/test/client.py:109184 ms82.1%
ClientHandler.__call__django/test/client.py:17373 ms71.0%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6373 ms71.0%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10472 ms70.0%
WhiteNoise.add_fileswhitenoise/base.py:10872 ms70.0%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12055 ms53.7%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13154 ms52.7%
WhiteNoise.get_static_filewhitenoise/base.py:21742 ms40.6%
StaticFile.__init__whitenoise/responders.py:7313 ms13.2%
StaticFile.get_headerswhitenoise/responders.py:1784 ms4.1%
parsedate<stdlib>/email/_parseaddr.py:1853 ms3.0%
parsedate_tz<stdlib>/email/_parseaddr.py:502 ms2.0%
_parsedate_tz<stdlib>/email/_parseaddr.py:1211 ms1.0%
Headers.__getitem__<stdlib>/wsgiref/headers.py:831 ms1.0%
Headers.get<stdlib>/wsgiref/headers.py:1061 ms1.0%
StaticFile.get_headerswhitenoise/responders.py:1813 ms3.0%
Headers.__setitem__<stdlib>/wsgiref/headers.py:622 ms2.0%
Headers.__delitem__<stdlib>/wsgiref/headers.py:722 ms2.0%
Headers.__setitem__<stdlib>/wsgiref/headers.py:641 ms1.0%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:501 ms1.0%
StaticFile.get_headerswhitenoise/responders.py:1762 ms2.0%
formatdate<stdlib>/email/utils.py:2662 ms2.0%
format_datetime<stdlib>/email/utils.py:2751 ms1.0%
format_datetime<stdlib>/email/utils.py:2841 ms1.0%
_format_timetuple_and_zone<stdlib>/email/utils.py:2361 ms1.0%
StaticFile.get_headerswhitenoise/responders.py:1671 ms1.0%
__init____init__:-11 ms1.0%
Headers.__init__<stdlib>/wsgiref/headers.py:431 ms1.0%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:501 ms1.0%
StaticFile.get_headerswhitenoise/responders.py:1711 ms1.0%
StaticFile.get_headerswhitenoise/responders.py:1701 ms1.0%
Headers.__setitem__<stdlib>/wsgiref/headers.py:621 ms1.0%
Headers.__delitem__<stdlib>/wsgiref/headers.py:721 ms1.0%
StaticFile.__init__whitenoise/responders.py:7711 ms11.2%
StaticFile.get_alternativeswhitenoise/responders.py:2007 ms7.1%
__init____init__:-17 ms7.1%
Headers.__init__<stdlib>/wsgiref/headers.py:444 ms4.1%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:503 ms3.0%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:481 ms1.0%
Headers.__init__<stdlib>/wsgiref/headers.py:433 ms3.0%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:503 ms3.0%
StaticFile.get_alternativeswhitenoise/responders.py:1982 ms2.0%
StaticFile.get_alternatives.<locals>.<lambda>whitenoise/responders.py:1982 ms2.0%
<GC>~2 ms2.0%
StaticFile.get_alternativeswhitenoise/responders.py:2012 ms2.0%
Headers.__setitem__<stdlib>/wsgiref/headers.py:641 ms1.0%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:501 ms1.0%
Headers.__setitem__<stdlib>/wsgiref/headers.py:621 ms1.0%
Headers.__delitem__<stdlib>/wsgiref/headers.py:721 ms1.0%
<GC>~1 ms1.0%
StaticFile.__init__whitenoise/responders.py:768 ms8.1%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1885 ms5.1%
Headers.__contains__<stdlib>/wsgiref/headers.py:874 ms4.1%
Headers.get<stdlib>/wsgiref/headers.py:1062 ms2.0%
Headers.get<stdlib>/wsgiref/headers.py:1052 ms2.0%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1893 ms3.0%
Headers.__getitem__<stdlib>/wsgiref/headers.py:833 ms3.0%
Headers.get<stdlib>/wsgiref/headers.py:1041 ms1.0%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:501 ms1.0%
Headers.get<stdlib>/wsgiref/headers.py:1061 ms1.0%
StaticFile.__init__whitenoise/responders.py:743 ms3.0%
parsedate<stdlib>/email/_parseaddr.py:1852 ms2.0%
parsedate_tz<stdlib>/email/_parseaddr.py:502 ms2.0%
_parsedate_tz<stdlib>/email/_parseaddr.py:1631 ms1.0%
_parsedate_tz<stdlib>/email/_parseaddr.py:851 ms1.0%
Headers.__getitem__<stdlib>/wsgiref/headers.py:831 ms1.0%
Headers.get<stdlib>/wsgiref/headers.py:1061 ms1.0%
StaticFile.__init__whitenoise/responders.py:722 ms2.0%
StaticFile.get_file_statswhitenoise/responders.py:1611 ms1.0%
__init____init__:-11 ms1.0%
FileEntry.__init__whitenoise/responders.py:2631 ms1.0%
FileEntry.stat_regular_filewhitenoise/responders.py:2761 ms1.0%
StaticFile.get_file_statswhitenoise/responders.py:1591 ms1.0%
WhiteNoise.get_static_filewhitenoise/base.py:2127 ms7.1%
WhiteNoise.add_cache_headerswhitenoise/base.py:2336 ms6.1%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1764 ms4.1%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1974 ms4.1%
URLMixin.urldebug_toolbar/panels/staticfiles.py:204 ms4.1%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2354 ms4.1%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:2163 ms3.0%
FileSystemStorage.urldjango/core/files/storage/filesystem.py:2073 ms3.0%
urljoin<stdlib>/urllib/parse.py:7371 ms1.0%
urljoin<stdlib>/urllib/parse.py:7071 ms1.0%
_urlsplit<stdlib>/urllib/parse.py:5961 ms1.0%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:2081 ms1.0%
urlsplit<stdlib>/urllib/parse.py:5821 ms1.0%
_urlsplit<stdlib>/urllib/parse.py:5971 ms1.0%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1732 ms2.0%
WhiteNoiseMiddleware.get_name_without_hashwhitenoise/middleware.py:1921 ms1.0%
splitext<frozen posixpath>:1201 ms1.0%
WhiteNoiseMiddleware.get_name_without_hashwhitenoise/middleware.py:1911 ms1.0%
splitext<frozen posixpath>:1261 ms1.0%
_splitext<frozen genericpath>:1851 ms1.0%
WhiteNoise.add_cache_headerswhitenoise/base.py:2361 ms1.0%
Headers.__setitem__<stdlib>/wsgiref/headers.py:641 ms1.0%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:501 ms1.0%
WhiteNoise.get_static_filewhitenoise/base.py:2114 ms4.1%
WhiteNoise.add_mime_headerswhitenoise/base.py:2302 ms2.0%
Headers.add_header<stdlib>/wsgiref/headers.py:1921 ms1.0%
Headers.add_header<stdlib>/wsgiref/headers.py:1831 ms1.0%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:501 ms1.0%
WhiteNoise.add_mime_headerswhitenoise/base.py:2252 ms2.0%
MediaTypes.get_typewhitenoise/media_types.py:152 ms2.0%
basename<frozen posixpath>:1721 ms1.0%
basename<frozen posixpath>:1711 ms1.0%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:1231 ms1.0%
WhiteNoise.is_compressed_variantwhitenoise/base.py:2031 ms1.0%
WhiteNoise.update_files_dictionarywhitenoise/base.py:11515 ms14.2%
scantreewhitenoise/base.py:27115 ms14.2%
scantreewhitenoise/base.py:27115 ms14.2%
scantreewhitenoise/base.py:27310 ms10.1%
<GC>~9 ms9.1%
scantreewhitenoise/base.py:2714 ms4.1%
scantreewhitenoise/base.py:2714 ms4.1%
scantreewhitenoise/base.py:2713 ms3.0%
scantreewhitenoise/base.py:2692 ms2.0%
scantreewhitenoise/base.py:2731 ms1.0%
scantreewhitenoise/base.py:2731 ms1.0%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:1111 ms1.0%
WhiteNoise.add_fileswhitenoise/base.py:1081 ms1.0%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1201 ms1.0%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:1311 ms1.0%
WhiteNoise.get_static_filewhitenoise/base.py:2171 ms1.0%
StaticFile.__init__whitenoise/responders.py:731 ms1.0%
StaticFile.get_headerswhitenoise/responders.py:1801 ms1.0%
ClientHandler.__call__django/test/client.py:18611 ms11.2%
BaseHandler.get_responsedjango/core/handlers/base.py:14211 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5611 ms11.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38011 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5611 ms11.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38011 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5611 ms11.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38011 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5611 ms11.2%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12311 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5611 ms11.2%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:14511 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5611 ms11.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38011 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5611 ms11.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38011 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5611 ms11.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38011 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5611 ms11.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38011 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5611 ms11.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38011 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5611 ms11.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38011 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5611 ms11.2%
MiddlewareMixin.__call__django/utils/deprecation.py:38011 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5611 ms11.2%
BaseHandler._get_responsedjango/core/handlers/base.py:19911 ms11.2%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6311 ms11.2%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:628 ms8.1%
remove_ownerstarter_packs/views.py:5053 ms3.0%
get_editable_packstarter_packs/views.py:60 return get_object_or_404(StarterPack, slug=slug, owners=request.user, **extra)3 ms3.0%
get_object_or_404django/shortcuts.py:1003 ms3.0%
QuerySet.getdjango/db/models/query.py:6922 ms2.0%
QuerySet.filterdjango/db/models/query.py:16762 ms2.0%
QuerySet._filter_or_excludedjango/db/models/query.py:16942 ms2.0%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:17042 ms2.0%
Query.add_qdjango/db/models/sql/query.py:16812 ms2.0%
Query._add_qdjango/db/models/sql/query.py:17132 ms2.0%
Query.build_filterdjango/db/models/sql/query.py:16132 ms2.0%
Query.build_lookupdjango/db/models/sql/query.py:14302 ms2.0%
BaseExpression.get_lookupdjango/db/models/expressions.py:4042 ms2.0%
RegisterLookupMixin.get_lookupdjango/db/models/query_utils.py:3502 ms2.0%
RegisterLookupMixin._get_lookupdjango/db/models/query_utils.py:3292 ms2.0%
class_or_instance_method.__get__django/db/models/query_utils.py:3242 ms2.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%
remove_ownerstarter_packs/views.py:506 q = request.POST.get("q", "").replace("\x00", "").strip()2 ms2.0%
WSGIRequest._get_postdjango/core/handlers/wsgi.py:932 ms2.0%
HttpRequest._load_post_and_filesdjango/http/request.py:4692 ms2.0%
HttpRequest.parse_file_uploaddjango/http/request.py:3972 ms2.0%
MultiPartParser.parsedjango/http/multipartparser.py:1252 ms2.0%
MultiPartParser._parsedjango/http/multipartparser.py:1532 ms2.0%
MemoryFileUploadHandler.handle_raw_inputdjango/core/files/uploadhandler.py:2132 ms2.0%
remove_ownerstarter_packs/views.py:507 if starter_pack.owners.count() <= 1:1 ms1.0%
create_forward_many_to_many_manager.<locals>.ManyRelatedManager.countdjango/db/models/fields/related_descriptors.py:12961 ms1.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.0%
QuerySet.countdjango/db/models/query.py:6771 ms1.0%
Query.get_countdjango/db/models/sql/query.py:6571 ms1.0%
Query.get_aggregationdjango/db/models/sql/query.py:6391 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%
remove_ownerstarter_packs/views.py:512 starter_pack.owners.remove(user_id)1 ms1.0%
create_forward_many_to_many_manager.<locals>.ManyRelatedManager.removedjango/db/models/fields/related_descriptors.py:13441 ms1.0%
create_forward_many_to_many_manager.<locals>.ManyRelatedManager._remove_basedjango/db/models/fields/related_descriptors.py:13371 ms1.0%
create_forward_many_to_many_manager.<locals>.ManyRelatedManager._remove_itemsdjango/db/models/fields/related_descriptors.py:16991 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%
remove_ownerstarter_packs/views.py:514 if user_id == request.user.id:1 ms1.0%
LazyObject.__getattribute__django/utils/functional.py:2771 ms1.0%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:593 ms3.0%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:823 ms3.0%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2513 ms3.0%
SimpleLazyObject._setupdjango/utils/functional.py:4043 ms3.0%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:393 ms3.0%
get_userdjango/contrib/auth/middleware.py:193 ms3.0%
get_userdjango/contrib/auth/__init__.py:2872 ms2.0%
_get_user_session_keydjango/contrib/auth/__init__.py:1112 ms2.0%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:552 ms2.0%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2542 ms2.0%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms2.0%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms2.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.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:16891 ms1.0%
QuerySet._chaindjango/db/models/query.py:22341 ms1.0%
QuerySet._clonedjango/db/models/query.py:22471 ms1.0%
Query.chaindjango/db/models/sql/query.py:4381 ms1.0%
Query.clonedjango/db/models/sql/query.py:4041 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%
get_userdjango/contrib/auth/__init__.py:2931 ms1.0%
load_backenddjango/contrib/auth/__init__.py:231 ms1.0%
import_stringdjango/utils/module_loading.py:301 ms1.0%
cached_importdjango/utils/module_loading.py:161 ms1.0%
TestOwnerManagement.test_removing_self_redirects_homestarter_packs/tests.py:647 self.client.force_login(self.owner)10 ms10.1%
ClientMixin.force_logindjango/test/client.py:85810 ms10.1%
ClientMixin._logindjango/test/client.py:8897 ms7.1%
logindjango/contrib/auth/__init__.py:1894 ms4.1%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4372 ms2.0%
SessionStore.createdjango/contrib/sessions/backends/db.py:701 ms1.0%
SessionBase._get_new_session_keydjango/contrib/sessions/backends/base.py:2011 ms1.0%
SessionStore.existsdjango/contrib/sessions/backends/db.py:631 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:16251 ms1.0%
CursorWrapper.executedjango/db/backends/utils.py:791 ms1.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms1.0%
SessionStore.createdjango/contrib/sessions/backends/db.py:741 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:11991 ms1.0%
Model._do_insertdjango/db/models/base.py:12511 ms1.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.0%
QuerySet._insertdjango/db/models/query.py:21411 ms1.0%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19361 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%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4402 ms2.0%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1752 ms2.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%
Model.deletedjango/db/models/base.py:13311 ms1.0%
Collector.deletedjango/db/models/deletion.py:4831 ms1.0%
DeleteQuery.delete_batchdjango/db/models/sql/subqueries.py:431 ms1.0%
DeleteQuery.do_querydjango/db/models/sql/subqueries.py:251 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:1773 ms3.0%
SessionBase.__contains__django/contrib/sessions/backends/base.py:523 ms3.0%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2543 ms3.0%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms2.0%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms2.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.0%
QuerySet.getdjango/db/models/query.py:7022 ms2.0%
QuerySet.__len__django/db/models/query.py:4212 ms2.0%
QuerySet._fetch_alldjango/db/models/query.py:22622 ms2.0%
ModelIterable.__iter__django/db/models/query.py:1032 ms2.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16252 ms2.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.0%
Cursor.executepsycopg/cursor.py:1132 ms2.0%
Connection.waitpsycopg/connection.py:4952 ms2.0%
SessionStore.loaddjango/contrib/sessions/backends/db.py:561 ms1.0%
SessionBase.decodedjango/contrib/sessions/backends/base.py:1381 ms1.0%
loadsdjango/core/signing.py:2091 ms1.0%
Signer.__init__django/core/signing.py:2341 ms1.0%
LazyObject.__getattribute__django/utils/functional.py:2801 ms1.0%
ClientMixin._logindjango/test/client.py:8842 ms2.0%
ClientMixin.sessiondjango/test/client.py:8152 ms2.0%
SessionStore.savedjango/contrib/sessions/backends/db.py:1212 ms2.0%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms2.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%
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:11991 ms1.0%
Model._do_insertdjango/db/models/base.py:12511 ms1.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.0%
QuerySet._insertdjango/db/models/query.py:21411 ms1.0%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19361 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:3121 ms1.0%
ClientMixin._logindjango/test/client.py:8911 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_removing_self_redirects_homestarter_packs/tests.py:646 self.pack.owners.add(self.friend) # not the last owner, so removal is allowed2 ms2.0%
TestData.__get__django/test/testcases.py:13701 ms1.0%
deepcopy<stdlib>/copy.py:1461 ms1.0%
Model.__reduce__django/db/models/base.py:6541 ms1.0%
Model.__getstate__django/db/models/base.py:6671 ms1.0%
create_forward_many_to_many_manager.<locals>.ManyRelatedManager.adddjango/db/models/fields/related_descriptors.py:13241 ms1.0%
create_forward_many_to_many_manager.<locals>.ManyRelatedManager._add_basedjango/db/models/fields/related_descriptors.py:13011 ms1.0%
create_forward_many_to_many_manager.<locals>.ManyRelatedManager._add_itemsdjango/db/models/fields/related_descriptors.py:16031 ms1.0%
QuerySet.bulk_createdjango/db/models/query.py:9001 ms1.0%
QuerySet._batched_insertdjango/db/models/query.py:21791 ms1.0%
QuerySet._insertdjango/db/models/query.py:21411 ms1.0%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19361 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%
TransactionTestCase._post_teardowndjango/test/testcases.py:1243 self._fixture_teardown()2 ms2.0%
TestCase._fixture_teardowndjango/test/testcases.py:14971 ms1.0%
TestCase._should_check_constraintsdjango/test/testcases.py:15061 ms1.0%
DatabaseWrapper.is_usabledjango/db/backends/postgresql/base.py:5041 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%
TestCase._fixture_teardowndjango/test/testcases.py:14981 ms1.0%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4951 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%
TestOwnerManagement.test_removing_self_redirects_homestarter_packs/tests.py:650 self.assertFalse(self.pack.owners.filter(pk=self.owner.pk).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%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5791 ms1.0%
Value.as_sqldjango/db/models/expressions.py:11741 ms1.0%
BaseExpression._output_field_or_nonedjango/db/models/expressions.py:3421 ms1.0%
cached_property.__get__django/utils/functional.py:451 ms1.0%
Logger.removeHandler<stdlib>/logging/__init__.py:1699 if hdlr in self.handlers:1 ms1.0%
Estimated from 98 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
starter_packs/tests.py:648
response = self.client.post(reverse("remove_owner", args=[self.pack.slug, self.owner.id]))
TestOwnerManagement.test_removing_self_redirects_home
· Libraries
|
76 ms |
|
starter_packs/tests.py:647
self.client.force_login(self.owner)
TestOwnerManagement.test_removing_self_redirects_home
· 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:506
q = request.POST.get("q", "").replace("\x00", "").strip()
remove_owner
· Libraries
|
2 ms |
|
starter_packs/tests.py:646
self.pack.owners.add(self.friend) # not the last owner, so removal is allowed
TestOwnerManagement.test_removing_self_redirects_home
· Database
|
2 ms |
|
starter_packs/views.py:507
if starter_pack.owners.count() <= 1:
remove_owner
· Database
|
1 ms |
|
starter_packs/views.py:512
starter_pack.owners.remove(user_id)
remove_owner
· Database
|
1 ms |
|
starter_packs/views.py:514
if user_id == request.user.id:
remove_owner
· Libraries
|
1 ms |
|
starter_packs/tests.py:650
self.assertFalse(self.pack.owners.filter(pk=self.owner.pk).exists())
TestOwnerManagement.test_removing_self_redirects_home
· Database
|
1 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.07 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.03 ms |
| _live_server_helper function | 0.03 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
27 queries · 14 msNo repeated queries.
Biggest pieces of work
|
call test body
starter_packs/tests.py:648
|
98 ms |
|
call _post_teardown
django/test/testcases.py:1243
|
2 ms |
| setup pytest internals | 1 ms |
|
call removeHandler
<stdlib>/logging/__init__.py:1699
|
1 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 | 102 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 188 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 178 ms | Profile |
| 13 hours ago | CI github-actions:test | passed | 140 ms | Profile |
| 13 hours ago | CI github-actions:test | passed | 79 ms | Run |