Tests / starter_packs/tests.py
TestPinAccountInStarterPack::test_toggle_pin_and_unpin
First seen 3 weeks ago in 0c23747
CI
github-actions:test
11 runs
Average
142 ms
median 105 ms
max 361 ms
max 361 ms
Phases
Setup 2 ms
Call 139 ms
Teardown 0.85 ms
Categories
Database 44 ms
Other (Libraries, pytest, Templates, Deep copies, ...) 98 ms
33 database queries per run
Needs 137 KB of memory (max 856 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 7 hours ago ·
open run
setup1 ms0.9%
call126 ms94.7%
TestPinAccountInStarterPack.test_toggle_pin_and_unpinstarter_packs/tests.py:1043 response = self.client.post(self.pin_url(self.niche))80 ms60.3%
Client.postdjango/test/client.py:116280 ms60.3%
RequestFactory.postdjango/test/client.py:49980 ms60.3%
RequestFactory.genericdjango/test/client.py:67180 ms60.3%
Client.requestdjango/test/client.py:109180 ms60.3%
ClientHandler.__call__django/test/client.py:17380 ms60.3%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6380 ms60.3%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10480 ms60.3%
WhiteNoise.add_fileswhitenoise/base.py:10880 ms60.3%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12075 ms56.4%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13175 ms56.4%
WhiteNoise.get_static_filewhitenoise/base.py:21156 ms42.1%
WhiteNoise.add_mime_headerswhitenoise/base.py:22556 ms42.1%
MediaTypes.get_typewhitenoise/media_types.py:163 ms1.9%
WhiteNoise.get_static_filewhitenoise/base.py:21718 ms13.4%
StaticFile.__init__whitenoise/responders.py:7313 ms9.6%
StaticFile.get_headerswhitenoise/responders.py:1765 ms3.8%
formatdate<stdlib>/email/utils.py:2663 ms1.9%
format_datetime<stdlib>/email/utils.py:2843 ms1.9%
_format_timetuple_and_zone<stdlib>/email/utils.py:2323 ms1.9%
Headers.__setitem__<stdlib>/wsgiref/headers.py:621 ms1.0%
Headers.__delitem__<stdlib>/wsgiref/headers.py:711 ms1.0%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:521 ms1.0%
StaticFile.get_headerswhitenoise/responders.py:1714 ms2.9%
Headers.__contains__<stdlib>/wsgiref/headers.py:874 ms2.9%
Headers.get<stdlib>/wsgiref/headers.py:1041 ms1.0%
StaticFile.get_headerswhitenoise/responders.py:1783 ms1.9%
parsedate<stdlib>/email/_parseaddr.py:1851 ms1.0%
parsedate_tz<stdlib>/email/_parseaddr.py:501 ms1.0%
_parsedate_tz<stdlib>/email/_parseaddr.py:1421 ms1.0%
Headers.__getitem__<stdlib>/wsgiref/headers.py:831 ms1.0%
Headers.get<stdlib>/wsgiref/headers.py:1071 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.__init__whitenoise/responders.py:774 ms2.9%
StaticFile.get_alternativeswhitenoise/responders.py:2033 ms1.9%
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.__init__<stdlib>/wsgiref/headers.py:441 ms1.0%
StaticFile.get_alternativeswhitenoise/responders.py:1981 ms1.0%
StaticFile.__init__whitenoise/responders.py:721 ms1.0%
StaticFile.get_file_statswhitenoise/responders.py:1611 ms1.0%
__init____init__:-11 ms1.0%
FileEntry.__init__whitenoise/responders.py:2631 ms1.0%
WhiteNoise.get_static_filewhitenoise/base.py:2141 ms1.0%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1155 ms3.8%
scantreewhitenoise/base.py:2713 ms1.9%
scantreewhitenoise/base.py:2691 ms1.0%
scantreewhitenoise/base.py:2711 ms1.0%
scantreewhitenoise/base.py:2731 ms1.0%
scantreewhitenoise/base.py:2731 ms1.0%
scantreewhitenoise/base.py:2691 ms1.0%
TestPinAccountInStarterPack.test_toggle_pin_and_unpinstarter_packs/tests.py:104832 ms23.9%
Client.postdjango/test/client.py:116232 ms23.9%
RequestFactory.postdjango/test/client.py:49932 ms23.9%
RequestFactory.genericdjango/test/client.py:67132 ms23.9%
Client.requestdjango/test/client.py:109132 ms23.9%
ClientHandler.__call__django/test/client.py:18632 ms23.9%
BaseHandler.get_responsedjango/core/handlers/base.py:14232 ms23.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5632 ms23.9%
MiddlewareMixin.__call__django/utils/deprecation.py:38032 ms23.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5632 ms23.9%
MiddlewareMixin.__call__django/utils/deprecation.py:38032 ms23.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5632 ms23.9%
MiddlewareMixin.__call__django/utils/deprecation.py:38032 ms23.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5632 ms23.9%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12332 ms23.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5632 ms23.9%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:14532 ms23.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5632 ms23.9%
MiddlewareMixin.__call__django/utils/deprecation.py:38032 ms23.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5632 ms23.9%
MiddlewareMixin.__call__django/utils/deprecation.py:38032 ms23.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5632 ms23.9%
MiddlewareMixin.__call__django/utils/deprecation.py:38032 ms23.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5632 ms23.9%
MiddlewareMixin.__call__django/utils/deprecation.py:38032 ms23.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5632 ms23.9%
MiddlewareMixin.__call__django/utils/deprecation.py:38032 ms23.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5632 ms23.9%
MiddlewareMixin.__call__django/utils/deprecation.py:38032 ms23.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5632 ms23.9%
MiddlewareMixin.__call__django/utils/deprecation.py:38032 ms23.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5632 ms23.9%
BaseHandler._get_responsedjango/core/handlers/base.py:19932 ms23.9%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:6232 ms23.9%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6332 ms23.9%
toggle_pin_in_starter_packstarter_packs/views.py:899 .first()19 ms14.3%
QuerySet.firstdjango/db/models/query.py:121219 ms14.3%
QuerySet.__iter__django/db/models/query.py:43919 ms14.3%
QuerySet._fetch_alldjango/db/models/query.py:226219 ms14.3%
ModelIterable.__iter__django/db/models/query.py:10318 ms13.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:162518 ms13.4%
CursorWrapper.executedjango/db/backends/utils.py:7918 ms13.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9218 ms13.4%
CursorWrapper._executedjango/db/backends/utils.py:10516 ms12.4%
Cursor.executepsycopg/cursor.py:11316 ms12.4%
Connection.waitpsycopg/connection.py:49516 ms12.4%
BaseCursor._execute_genpsycopg/_cursor_base.py:20616 ms12.4%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:28616 ms12.4%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:7816 ms12.4%
ModelIterable.__iter__django/db/models/query.py:1461 ms1.0%
RelatedPopulator.populatedjango/db/models/query.py:30441 ms1.0%
Model.from_dbdjango/db/models/base.py:6251 ms1.0%
toggle_pin_in_starter_packstarter_packs/views.py:916 starter_pack_account.save(update_fields=["pinned"])13 ms9.6%
Model.savedjango/db/models/base.py:90413 ms9.6%
Model.save_basedjango/db/models/base.py:99613 ms9.6%
Model._save_tabledjango/db/models/base.py:111613 ms9.6%
Model._do_updatedjango/db/models/base.py:124411 ms8.6%
QuerySet._updatedjango/db/models/query.py:144811 ms8.6%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:215011 ms8.6%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:212111 ms8.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:162511 ms8.6%
CursorWrapper.executedjango/db/backends/utils.py:7911 ms8.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9211 ms8.6%
CursorWrapper._executedjango/db/backends/utils.py:10511 ms8.6%
Cursor.executepsycopg/cursor.py:11311 ms8.6%
Connection.waitpsycopg/connection.py:49511 ms8.6%
BaseCursor._execute_genpsycopg/_cursor_base.py:20611 ms8.6%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:28611 ms8.6%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:7811 ms8.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms1.0%
TestPinAccountInStarterPack.test_toggle_pin_and_unpinstarter_packs/tests.py:1041 self.client.force_login(self.owner)10 ms7.7%
ClientMixin.force_logindjango/test/client.py:85810 ms7.7%
ClientMixin._logindjango/test/client.py:8899 ms6.7%
logindjango/contrib/auth/__init__.py:1775 ms3.8%
SessionBase.__contains__django/contrib/sessions/backends/base.py:525 ms3.8%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2545 ms3.8%
SessionStore.loaddjango/contrib/sessions/backends/db.py:555 ms3.8%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:345 ms3.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:875 ms3.8%
QuerySet.getdjango/db/models/query.py:7025 ms3.8%
QuerySet.__len__django/db/models/query.py:4215 ms3.8%
QuerySet._fetch_alldjango/db/models/query.py:22625 ms3.8%
ModelIterable.__iter__django/db/models/query.py:1035 ms3.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16255 ms3.8%
CursorWrapper.executedjango/db/backends/utils.py:795 ms3.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:925 ms3.8%
CursorWrapper._executedjango/db/backends/utils.py:1055 ms3.8%
Cursor.executepsycopg/cursor.py:1135 ms3.8%
Connection.waitpsycopg/connection.py:4955 ms3.8%
BaseCursor._execute_genpsycopg/_cursor_base.py:2065 ms3.8%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2865 ms3.8%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:785 ms3.8%
logindjango/contrib/auth/__init__.py:1893 ms1.9%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4371 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:19351 ms1.0%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18801 ms1.0%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4401 ms1.0%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1751 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%
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: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: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%
TransactionTestCase._post_teardowndjango/test/testcases.py:1243 self._fixture_teardown()4 ms2.9%
TestCase._fixture_teardowndjango/test/testcases.py:14973 ms1.9%
TestCase._should_check_constraintsdjango/test/testcases.py:15063 ms1.9%
DatabaseWrapper.is_usabledjango/db/backends/postgresql/base.py:5043 ms1.9%
Cursor.executepsycopg/cursor.py:1133 ms1.9%
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:15001 ms1.0%
TestCase._rollback_atomicsdjango/test/testcases.py:14071 ms1.0%
teardown6 ms4.4%
TestCase.tearDownClassdjango/test/testcases.py:1458 conn.close()6 ms4.4%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:266 ms4.4%
BaseDatabaseWrapper.closedjango/db/backends/base/base.py:3556 ms4.4%
DatabaseWrapper._closedjango/db/backends/postgresql/base.py:4086 ms4.4%
Connection.closepsycopg/connection.py:2016 ms4.4%
Estimated from 106 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
starter_packs/tests.py:1043
response = self.client.post(self.pin_url(self.niche))
TestPinAccountInStarterPack.test_toggle_pin_and_unpin
· Libraries
|
80 ms |
|
starter_packs/views.py:899
.first()
toggle_pin_in_starter_pack
· Database
|
19 ms |
|
starter_packs/views.py:916
starter_pack_account.save(update_fields=["pinned"])
toggle_pin_in_starter_pack
· Database
|
13 ms |
|
starter_packs/tests.py:1041
self.client.force_login(self.owner)
TestPinAccountInStarterPack.test_toggle_pin_and_unpin
· Database
|
10 ms |
Fixtures
Exact setup time| _template_string_if_invalid_marker function | 0.17 ms |
| _dj_autoclear_mailbox function | 0.06 ms |
| _django_isolate_apps function | 0.05 ms |
| _django_db_marker function | 0.05 ms |
| _live_server_helper function | 0.05 ms |
| _django_set_urlconf function | 0.05 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.03 ms |
Database
33 queries · 23 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:1043
|
122 ms |
|
teardown tearDownClass
django/test/testcases.py:1458
|
6 ms |
|
call _post_teardown
django/test/testcases.py:1243
|
4 ms |
| setup pytest internals | 1 ms |
Reliability
12 results · 0 CI failures · 0 local failuresThis test hasn't failed recently.
History
Latest 12 results, oldest first in the strip| When | Environment | Outcome | Duration | |
|---|---|---|---|---|
| 7 hours ago | CI github-actions:test | passed | 133 ms | Profile |
| 16 hours ago | CI github-actions:test | passed | 98 ms | Profile |
| 22 hours ago | CI github-actions:test | passed | 119 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 105 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 89 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 100 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 88 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 67 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 361 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 114 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 289 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 105 ms | Run |