CI
github-actions:test
3 runs
Average
1.17 s
median 1.32 s
max 1.46 s
max 1.46 s
Phases
Setup 214 ms
Call 952 ms
Teardown 0.18 ms
Categories
Password hashing 1.14 s
Database 15 ms
Other (Libraries, Templates, pytest, Unsampled) 12 ms
39 database queries per run
Needs 7 KB of memory (max 20 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 6 hours ago ·
open run
setup240 ms18.2%
setUpClassdjango/test/testcases.py:1439 cls.setUpTestData()233 ms17.7%
setUpTestDataft/tests.py:175 cls.user = User.objects.create_user("anze", email="[email protected]", password="correct horse battery")233 ms17.7%
create_userdjango/contrib/auth/models.py:175233 ms17.7%
_create_userdjango/contrib/auth/models.py:162231 ms17.6%
_create_user_objectdjango/contrib/auth/models.py:155231 ms17.6%
make_passworddjango/contrib/auth/hashers.py:119231 ms17.6%
encodedjango/contrib/auth/hashers.py:335231 ms17.6%
pbkdf2django/utils/crypto.py:77231 ms17.6%
1 smaller frames hidden
1 smaller frames hidden
call1.08 s81.8%
test_change_passwordft/tests.py:205 {560 ms42.6%
postdjango/test/client.py:1153560 ms42.6%
postdjango/test/client.py:499560 ms42.6%
genericdjango/test/client.py:671560 ms42.6%
requestdjango/test/client.py:1082560 ms42.6%
__call__django/test/client.py:186560 ms42.6%
get_responsedjango/core/handlers/base.py:141560 ms42.6%
innerdjango/core/handlers/exception.py:55560 ms42.6%
__call__debug_toolbar/middleware.py:130560 ms42.6%
innerdjango/core/handlers/exception.py:55560 ms42.6%
__call__django/utils/deprecation.py:309560 ms42.6%
innerdjango/core/handlers/exception.py:55560 ms42.6%
__call__whitenoise/middleware.py:123560 ms42.6%
innerdjango/core/handlers/exception.py:55560 ms42.6%
__call__django/utils/deprecation.py:309558 ms42.4%
innerdjango/core/handlers/exception.py:55558 ms42.4%
__call__django/utils/deprecation.py:309558 ms42.4%
innerdjango/core/handlers/exception.py:55558 ms42.4%
__call__django/utils/deprecation.py:309558 ms42.4%
innerdjango/core/handlers/exception.py:55558 ms42.4%
__call__django/utils/deprecation.py:309558 ms42.4%
innerdjango/core/handlers/exception.py:55558 ms42.4%
__call__django/utils/deprecation.py:309558 ms42.4%
innerdjango/core/handlers/exception.py:55558 ms42.4%
__call__django/utils/deprecation.py:309558 ms42.4%
innerdjango/core/handlers/exception.py:55558 ms42.4%
middlewareallauth/account/middleware.py:34558 ms42.4%
innerdjango/core/handlers/exception.py:55558 ms42.4%
_get_responsedjango/core/handlers/base.py:198558 ms42.4%
viewdjango/views/generic/base.py:106558 ms42.4%
_wrapperdjango/utils/decorators.py:48558 ms42.4%
_view_wrapperdjango/contrib/auth/decorators.py:59558 ms42.4%
_wrapperdjango/utils/decorators.py:48558 ms42.4%
wrapallauth/decorators.py:12558 ms42.4%
_wrapperdjango/utils/decorators.py:48558 ms42.4%
sensitive_post_parameters_wrapperdjango/views/decorators/debug.py:143558 ms42.4%
dispatchallauth/account/views.py:503558 ms42.4%
dispatchdjango/views/generic/base.py:145558 ms42.4%
postallauth/account/mixins.py:82293 ms22.3%
form_validallauth/account/views.py:514289 ms22.0%
saveallauth/account/forms.py:606289 ms22.0%
change_passwordallauth/account/internal/flows/password_change.py:12289 ms22.0%
set_passwordallauth/account/adapter.py:579287 ms21.8%
set_passworddjango/contrib/auth/base_user.py:94287 ms21.8%
make_passworddjango/contrib/auth/hashers.py:119287 ms21.8%
encodedjango/contrib/auth/hashers.py:335287 ms21.8%
pbkdf2django/utils/crypto.py:77287 ms21.8%
1 smaller frames hidden
1 smaller frames hidden
postallauth/account/mixins.py:81265 ms20.1%
is_validdjango/forms/forms.py:206265 ms20.1%
errorsdjango/forms/forms.py:201265 ms20.1%
full_cleandjango/forms/forms.py:337265 ms20.1%
_clean_fieldsdjango/forms/forms.py:347265 ms20.1%
clean_oldpasswordallauth/account/forms.py:601265 ms20.1%
check_passworddjango/contrib/auth/base_user.py:109265 ms20.1%
check_passworddjango/contrib/auth/hashers.py:83265 ms20.1%
verify_passworddjango/contrib/auth/hashers.py:63265 ms20.1%
verifydjango/contrib/auth/hashers.py:351265 ms20.1%
encodedjango/contrib/auth/hashers.py:335265 ms20.1%
pbkdf2django/utils/crypto.py:77265 ms20.1%
1 smaller frames hidden
test_change_passwordft/tests.py:200 {"oldpassword": "wrong", "password1": "staple battery horse", "password2": "staple battery horse"},269 ms20.4%
postdjango/test/client.py:1153269 ms20.4%
postdjango/test/client.py:499269 ms20.4%
genericdjango/test/client.py:671269 ms20.4%
requestdjango/test/client.py:1082269 ms20.4%
__call__django/test/client.py:186269 ms20.4%
get_responsedjango/core/handlers/base.py:141269 ms20.4%
innerdjango/core/handlers/exception.py:55269 ms20.4%
__call__debug_toolbar/middleware.py:130269 ms20.4%
innerdjango/core/handlers/exception.py:55269 ms20.4%
__call__django/utils/deprecation.py:309269 ms20.4%
innerdjango/core/handlers/exception.py:55269 ms20.4%
__call__whitenoise/middleware.py:123269 ms20.4%
innerdjango/core/handlers/exception.py:55269 ms20.4%
__call__django/utils/deprecation.py:309269 ms20.4%
innerdjango/core/handlers/exception.py:55269 ms20.4%
__call__django/utils/deprecation.py:309269 ms20.4%
innerdjango/core/handlers/exception.py:55269 ms20.4%
__call__django/utils/deprecation.py:309269 ms20.4%
innerdjango/core/handlers/exception.py:55269 ms20.4%
__call__django/utils/deprecation.py:309269 ms20.4%
innerdjango/core/handlers/exception.py:55269 ms20.4%
__call__django/utils/deprecation.py:309269 ms20.4%
innerdjango/core/handlers/exception.py:55269 ms20.4%
__call__django/utils/deprecation.py:309269 ms20.4%
innerdjango/core/handlers/exception.py:55269 ms20.4%
middlewareallauth/account/middleware.py:34269 ms20.4%
innerdjango/core/handlers/exception.py:55269 ms20.4%
_get_responsedjango/core/handlers/base.py:198267 ms20.3%
viewdjango/views/generic/base.py:106267 ms20.3%
_wrapperdjango/utils/decorators.py:48267 ms20.3%
_view_wrapperdjango/contrib/auth/decorators.py:59267 ms20.3%
_wrapperdjango/utils/decorators.py:48267 ms20.3%
wrapallauth/decorators.py:12267 ms20.3%
_wrapperdjango/utils/decorators.py:48267 ms20.3%
sensitive_post_parameters_wrapperdjango/views/decorators/debug.py:143267 ms20.3%
dispatchallauth/account/views.py:503267 ms20.3%
dispatchdjango/views/generic/base.py:145267 ms20.3%
postallauth/account/mixins.py:81267 ms20.3%
is_validdjango/forms/forms.py:206267 ms20.3%
errorsdjango/forms/forms.py:201267 ms20.3%
full_cleandjango/forms/forms.py:337267 ms20.3%
_clean_fieldsdjango/forms/forms.py:347267 ms20.3%
clean_oldpasswordallauth/account/forms.py:601265 ms20.1%
check_passworddjango/contrib/auth/base_user.py:109265 ms20.1%
check_passworddjango/contrib/auth/hashers.py:83265 ms20.1%
verify_passworddjango/contrib/auth/hashers.py:63265 ms20.1%
verifydjango/contrib/auth/hashers.py:351265 ms20.1%
encodedjango/contrib/auth/hashers.py:335265 ms20.1%
pbkdf2django/utils/crypto.py:77265 ms20.1%
1 smaller frames hidden
1 smaller frames hidden
test_change_passwordft/tests.py:213 self.assertTrue(self.user.check_password("staple battery horse"))226 ms17.2%
check_passworddjango/contrib/auth/base_user.py:109226 ms17.2%
check_passworddjango/contrib/auth/hashers.py:83226 ms17.2%
verify_passworddjango/contrib/auth/hashers.py:63226 ms17.2%
verifydjango/contrib/auth/hashers.py:351226 ms17.2%
encodedjango/contrib/auth/hashers.py:335226 ms17.2%
pbkdf2django/utils/crypto.py:77226 ms17.2%
test_change_passwordft/tests.py:196 response = self.client.get(reverse("account_change_password"))10 ms0.8%
getdjango/test/client.py:112410 ms0.8%
getdjango/test/client.py:47510 ms0.8%
genericdjango/test/client.py:67110 ms0.8%
requestdjango/test/client.py:108210 ms0.8%
__call__django/test/client.py:17310 ms0.8%
load_middlewaredjango/core/handlers/base.py:6210 ms0.8%
__init__whitenoise/middleware.py:1048 ms0.6%
add_fileswhitenoise/base.py:1088 ms0.6%
1 smaller frames hidden
3 smaller frames hidden
Estimated from 648 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
ft/tests.py:205
{
test_change_password
· Password hashing
|
560 ms |
|
ft/tests.py:200
{"oldpassword": "wrong", "password1": "staple battery horse", "password2": "staple battery horse"},
test_change_password
· Password hashing
|
269 ms |
|
ft/tests.py:175
cls.user = User.objects.create_user("anze", email="[email protected]", password="correct horse battery")
setUpTestData
· Password hashing
|
233 ms |
|
ft/tests.py:213
self.assertTrue(self.user.check_password("staple battery horse"))
test_change_password
· Password hashing
|
226 ms |
|
ft/tests.py:196
response = self.client.get(reverse("account_change_password"))
test_change_password
· Libraries
|
10 ms |
|
ft/tests.py:212
self.user.refresh_from_db()
test_change_password
· Database
|
2 ms |
|
ft/tests.py:179
self.client.force_login(self.user)
setUp
· Database
|
2 ms |
Fixtures
Exact setup time| _unittest_setUpClass_fixture_TestAccountSettings class | 238 ms |
| _django_setup_unittest class | 0.36 ms |
| _dj_autoclear_mailbox function | 0.07 ms |
| _django_set_urlconf function | 0.07 ms |
| _django_db_marker function | 0.06 ms |
| _template_string_if_invalid_marker function | 0.05 ms |
| _django_clear_site_cache function | 0.05 ms |
| _live_server_helper function | 0.04 ms |
| monkeypatch function | 0.02 ms |
Database
39 queries · 16 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
4×
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 ?
4×
SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "a…
3×
SELECT %s AS "a" FROM "django_session" WHERE "django_session"."session_key" = %s LIMIT ?
3×
INSERT INTO "django_session" ("session_key", "session_data", "expire_date") VALUES (%s, %s, %s)
Biggest pieces of work
|
call test body
ft/tests.py:205
|
1.07 s |
|
setup setUpClass
django/test/testcases.py:1439
|
240 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
4 ms |
| call pytest internals | 2 ms |
|
call setUp
ft/tests.py:179
|
2 ms |
Reliability
3 results · 0 CI failures · 0 local failuresThis test hasn't failed recently.