Tests / starter_packs/tests.py
TestRemoteFollowStarterPack::test_redirects_to_subscribe_url
First seen 13 hours ago in 0c23747
CI
github-actions:test
4 runs
Average
145 ms
median 144 ms
max 230 ms
max 230 ms
Phases
Setup 1 ms
Call 143 ms
Teardown 0.67 ms
Categories
Database 10 ms
Other (Mocking, Unsampled) 135 ms
6 database queries per run
Needs 140 KB of memory (max 228 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 8 hours ago ·
open run
call61 ms97.3%
TestRemoteFollowStarterPack.test_redirects_to_subscribe_urlstarter_packs/tests.py:1257 response = self.client.post(self.url, {"handle": "@[email protected]"})58 ms92.3%
Client.postdjango/test/client.py:116258 ms92.3%
RequestFactory.postdjango/test/client.py:49958 ms92.3%
RequestFactory.genericdjango/test/client.py:67158 ms92.3%
Client.requestdjango/test/client.py:109158 ms92.3%
ClientHandler.__call__django/test/client.py:17355 ms87.3%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6355 ms87.3%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10452 ms82.3%
WhiteNoise.add_fileswhitenoise/base.py:10852 ms82.3%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12045 ms72.3%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13145 ms72.3%
WhiteNoise.get_static_filewhitenoise/base.py:21733 ms52.4%
StaticFile.__init__whitenoise/responders.py:7313 ms20.0%
StaticFile.get_headerswhitenoise/responders.py:1715 ms7.5%
Headers.__contains__<stdlib>/wsgiref/headers.py:872 ms2.5%
Headers.get<stdlib>/wsgiref/headers.py:1042 ms2.5%
StaticFile.get_headerswhitenoise/responders.py:1763 ms5.0%
formatdate<stdlib>/email/utils.py:2662 ms2.5%
format_datetime<stdlib>/email/utils.py:2842 ms2.5%
_format_timetuple_and_zone<stdlib>/email/utils.py:2312 ms2.5%
StaticFile.get_headerswhitenoise/responders.py:1782 ms2.5%
parsedate<stdlib>/email/_parseaddr.py:1852 ms2.5%
parsedate_tz<stdlib>/email/_parseaddr.py:502 ms2.5%
_parsedate_tz<stdlib>/email/_parseaddr.py:1432 ms2.5%
StaticFile.get_headerswhitenoise/responders.py:1672 ms2.5%
__init____init__:-12 ms2.5%
Headers.__init__<stdlib>/wsgiref/headers.py:442 ms2.5%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:502 ms2.5%
StaticFile.get_headerswhitenoise/responders.py:1812 ms2.5%
StaticFile.__init__whitenoise/responders.py:725 ms7.5%
StaticFile.get_file_statswhitenoise/responders.py:1573 ms5.0%
__init____init__:-13 ms5.0%
FileEntry.__init__whitenoise/responders.py:2633 ms5.0%
StaticFile.get_file_statswhitenoise/responders.py:1632 ms2.5%
StaticFile.__init__whitenoise/responders.py:775 ms7.5%
StaticFile.get_alternativeswhitenoise/responders.py:2033 ms5.0%
Headers.__setitem__<stdlib>/wsgiref/headers.py:623 ms5.0%
Headers.__delitem__<stdlib>/wsgiref/headers.py:723 ms5.0%
StaticFile.get_alternativeswhitenoise/responders.py:2012 ms2.5%
Headers.__setitem__<stdlib>/wsgiref/headers.py:622 ms2.5%
Headers.__delitem__<stdlib>/wsgiref/headers.py:662 ms2.5%
StaticFile.__init__whitenoise/responders.py:765 ms7.5%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1883 ms5.0%
Headers.__contains__<stdlib>/wsgiref/headers.py:873 ms5.0%
Headers.get<stdlib>/wsgiref/headers.py:1063 ms5.0%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1892 ms2.5%
Headers.__getitem__<stdlib>/wsgiref/headers.py:832 ms2.5%
Headers.get<stdlib>/wsgiref/headers.py:1042 ms2.5%
StaticFile.__init__whitenoise/responders.py:745 ms7.5%
Headers.__getitem__<stdlib>/wsgiref/headers.py:833 ms5.0%
Headers.get<stdlib>/wsgiref/headers.py:1062 ms2.5%
Headers.get<stdlib>/wsgiref/headers.py:1042 ms2.5%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:502 ms2.5%
parsedate<stdlib>/email/_parseaddr.py:1852 ms2.5%
StaticFile.__init__whitenoise/responders.py:752 ms2.5%
Headers.__getitem__<stdlib>/wsgiref/headers.py:832 ms2.5%
Headers.get<stdlib>/wsgiref/headers.py:1042 ms2.5%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:502 ms2.5%
WhiteNoise.get_static_filewhitenoise/base.py:2116 ms10.0%
WhiteNoise.add_mime_headerswhitenoise/base.py:2306 ms10.0%
Headers.add_header<stdlib>/wsgiref/headers.py:1922 ms2.5%
WhiteNoise.get_static_filewhitenoise/base.py:2125 ms7.5%
WhiteNoise.add_cache_headerswhitenoise/base.py:2335 ms7.5%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1765 ms7.5%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1973 ms5.0%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2502 ms2.5%
URLMixin.urldebug_toolbar/panels/staticfiles.py:202 ms2.5%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2352 ms2.5%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:2142 ms2.5%
ManifestFilesMixin.stored_namedjango/contrib/staticfiles/storage.py:5952 ms2.5%
WhiteNoise.get_static_filewhitenoise/base.py:2142 ms2.5%
Headers.__setitem__<stdlib>/wsgiref/headers.py:622 ms2.5%
Headers.__delitem__<stdlib>/wsgiref/headers.py:712 ms2.5%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:502 ms2.5%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1156 ms10.0%
scantreewhitenoise/base.py:2716 ms10.0%
scantreewhitenoise/base.py:2716 ms10.0%
scantreewhitenoise/base.py:2713 ms5.0%
scantreewhitenoise/base.py:2713 ms5.0%
scantreewhitenoise/base.py:2732 ms2.5%
scantreewhitenoise/base.py:2712 ms2.5%
scantreewhitenoise/base.py:2732 ms2.5%
scantreewhitenoise/base.py:2692 ms2.5%
scantreewhitenoise/base.py:2732 ms2.5%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:1112 ms2.5%
WhiteNoise.add_fileswhitenoise/base.py:1082 ms2.5%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1152 ms2.5%
scantreewhitenoise/base.py:2732 ms2.5%
ClientHandler.__call__django/test/client.py:1863 ms5.0%
BaseHandler.get_responsedjango/core/handlers/base.py:1423 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:563 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3803 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:563 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3803 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:563 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3803 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:563 ms5.0%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1233 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:563 ms5.0%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1453 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:563 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3803 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:563 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3803 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:563 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3792 ms2.5%
CommonMiddleware.process_requestdjango/middleware/common.py:482 ms2.5%
HttpRequest.get_hostdjango/http/request.py:1922 ms2.5%
HttpRequest._get_raw_hostdjango/http/request.py:1862 ms2.5%
HttpRequest.is_securedjango/http/request.py:3302 ms2.5%
MiddlewareMixin.__call__django/utils/deprecation.py:3802 ms2.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:562 ms2.5%
MiddlewareMixin.__call__django/utils/deprecation.py:3802 ms2.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:562 ms2.5%
MiddlewareMixin.__call__django/utils/deprecation.py:3802 ms2.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:562 ms2.5%
MiddlewareMixin.__call__django/utils/deprecation.py:3802 ms2.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:562 ms2.5%
MiddlewareMixin.__call__django/utils/deprecation.py:3802 ms2.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:562 ms2.5%
BaseHandler._get_responsedjango/core/handlers/base.py:1992 ms2.5%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:632 ms2.5%
remote_follow_starter_packstarter_packs/views.py:1018 starter_pack = get_object_or_404(StarterPack, slug=starter_pack_slug, deleted_at__isnull=True)2 ms2.5%
get_object_or_404django/shortcuts.py:1002 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:2052 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%
TestRemoteFollowStarterPack.test_redirects_to_subscribe_urlstarter_packs/tests.py:1258 self.assertRedirects(response, mock_get_subscribe_url.return_value, fetch_redirect_response=False)2 ms2.5%
SimpleTestCase.assertRedirectsdjango/test/testcases.py:5202 ms2.5%
SimpleTestCase.assertURLEqualdjango/test/testcases.py:5462 ms2.5%
SimpleTestCase.assertURLEqual.<locals>.normalizedjango/test/testcases.py:5412 ms2.5%
urlencode<stdlib>/urllib/parse.py:11692 ms2.5%
quote_plus<stdlib>/urllib/parse.py:10832 ms2.5%
quote<stdlib>/urllib/parse.py:10722 ms2.5%
quote_from_bytes<stdlib>/urllib/parse.py:11152 ms2.5%
TransactionTestCase._post_teardowndjango/test/testcases.py:1243 self._fixture_teardown()2 ms2.5%
TestCase._fixture_teardowndjango/test/testcases.py:14982 ms2.5%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4952 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:1032 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
Estimated from 39 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
starter_packs/tests.py:1257
response = self.client.post(self.url, {"handle": "@[email protected]"})
TestRemoteFollowStarterPack.test_redirects_to_subscribe_url
· Mocking
|
56 ms |
|
starter_packs/views.py:1018
starter_pack = get_object_or_404(StarterPack, slug=starter_pack_slug, deleted_at__isnull=True)
remote_follow_starter_pack
· Database
|
2 ms |
|
starter_packs/tests.py:1258
self.assertRedirects(response, mock_get_subscribe_url.return_value, fetch_redirect_response=False)
TestRemoteFollowStarterPack.test_redirects_to_subscribe_url
· Mocking
|
2 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.04 ms |
| _template_string_if_invalid_marker function | 0.03 ms |
| monkeypatch function | 0.03 ms |
| _django_db_marker function | 0.03 ms |
| _django_isolate_apps function | 0.03 ms |
| _live_server_helper function | 0.03 ms |
| _django_set_urlconf function | 0.02 ms |
| _django_clear_site_cache function | 0.02 ms |
Database
6 queries · 2 msNo repeated queries.
Biggest pieces of work
|
call test body
starter_packs/tests.py:1257
|
60 ms |
|
call _post_teardown
django/test/testcases.py:1243
|
2 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 | 63 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 230 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 79 ms | Profile |
| 13 hours ago | CI github-actions:test | passed | 209 ms | Profile |
| 13 hours ago | CI github-actions:test | passed | 67 ms | Run |