flakytest.dev anze3db flakytest
Tests / ft/tests.py

TestAccountSettings::test_change_password

First seen 7 hours ago in 78a4357
CI github-actions:test 5 runs
Average
1.13 s
median 1.09 s
max 1.46 s
Phases
Setup 217 ms Call 912 ms Teardown 0.19 ms
Categories
Password hashing 1.09 s Database 21 ms Other (Libraries, Templates, pytest, Unsampled) 15 ms

39 database queries per run

Needs 4 KB of memory (max 20 KB)

Duration per run

Where the time goes

Latest run in ci:github-actions:test, 23 minutes ago · open run
Show pytest frames
setup236 ms21.7%
TestCase.setUpClassdjango/test/testcases.py:1439 cls.setUpTestData()227 ms20.8%
TestAccountSettings.setUpTestDataft/tests.py:175 cls.user = User.objects.create_user("anze", email="[email protected]", password="correct horse battery")225 ms20.6%
UserManager.create_userdjango/contrib/auth/models.py:175225 ms20.6%
UserManager._create_userdjango/contrib/auth/models.py:162221 ms20.3%
UserManager._create_user_objectdjango/contrib/auth/models.py:155221 ms20.3%
make_passworddjango/contrib/auth/hashers.py:119220 ms20.2%
PBKDF2PasswordHasher.encodedjango/contrib/auth/hashers.py:335220 ms20.2%
pbkdf2django/utils/crypto.py:77220 ms20.2%
1 smaller frames hidden
1 smaller frames hidden
1 smaller frames hidden
TestCase.setUpClassdjango/test/testcases.py:1423 cls.cls_atomics = cls._enter_atomics()7 ms0.6%
TestCase._enter_atomicsdjango/test/testcases.py:13967 ms0.6%
Atomic.__enter__django/db/transaction.py:1987 ms0.6%
BaseDatabaseWrapper.get_autocommitdjango/db/backends/base/base.py:4547 ms0.6%
SimpleTestCase.ensure_connection_patch_method.<locals>.patched_ensure_connectiondjango/test/testcases.py:3037 ms0.6%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:267 ms0.6%
BaseDatabaseWrapper.ensure_connectiondjango/db/backends/base/base.py:2797 ms0.6%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:267 ms0.6%
BaseDatabaseWrapper.connectdjango/db/backends/base/base.py:2567 ms0.6%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:267 ms0.6%
DatabaseWrapper.get_new_connectiondjango/db/backends/postgresql/base.py:3337 ms0.6%
Connection.connectpsycopg/connection.py:1097 ms0.6%
call853 ms78.3%
TestAccountSettings.test_change_passwordft/tests.py:203 response = self.client.post(415 ms38.1%
Client.postdjango/test/client.py:1153415 ms38.1%
RequestFactory.postdjango/test/client.py:499415 ms38.1%
RequestFactory.genericdjango/test/client.py:671415 ms38.1%
Client.requestdjango/test/client.py:1082413 ms38.0%
ClientHandler.__call__django/test/client.py:186413 ms38.0%
BaseHandler.get_responsedjango/core/handlers/base.py:141413 ms38.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55413 ms38.0%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:130413 ms38.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55413 ms38.0%
MiddlewareMixin.__call__django/utils/deprecation.py:309413 ms38.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55413 ms38.0%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:123413 ms38.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55413 ms38.0%
MiddlewareMixin.__call__django/utils/deprecation.py:309413 ms38.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55413 ms38.0%
MiddlewareMixin.__call__django/utils/deprecation.py:309413 ms38.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55413 ms38.0%
MiddlewareMixin.__call__django/utils/deprecation.py:309413 ms38.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55413 ms38.0%
MiddlewareMixin.__call__django/utils/deprecation.py:309413 ms38.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55413 ms38.0%
MiddlewareMixin.__call__django/utils/deprecation.py:309413 ms38.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55413 ms38.0%
MiddlewareMixin.__call__django/utils/deprecation.py:309413 ms38.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55413 ms38.0%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:34413 ms38.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55413 ms38.0%
BaseHandler._get_responsedjango/core/handlers/base.py:198413 ms38.0%
View.as_view.<locals>.viewdjango/views/generic/base.py:106413 ms38.0%
_multi_decorate.<locals>._wrapperdjango/utils/decorators.py:48413 ms38.0%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:59410 ms37.7%
_multi_decorate.<locals>._wrapperdjango/utils/decorators.py:48410 ms37.7%
rate_limit.<locals>.decorator.<locals>.wrapallauth/decorators.py:12410 ms37.7%
_multi_decorate.<locals>._wrapperdjango/utils/decorators.py:48410 ms37.7%
sensitive_post_parameters.<locals>.decorator.<locals>.sensitive_post_parameters_wrapperdjango/views/decorators/debug.py:143410 ms37.7%
PasswordChangeView.dispatchallauth/account/views.py:503410 ms37.7%
View.dispatchdjango/views/generic/base.py:145410 ms37.7%
AjaxCapableProcessFormViewMixin.postallauth/account/mixins.py:82207 ms19.0%
PasswordChangeView.form_validallauth/account/views.py:514204 ms18.7%
ChangePasswordForm.saveallauth/account/forms.py:606204 ms18.7%
change_passwordallauth/account/internal/flows/password_change.py:12204 ms18.7%
DefaultAccountAdapter.set_passwordallauth/account/adapter.py:579204 ms18.7%
AbstractBaseUser.set_passworddjango/contrib/auth/base_user.py:94204 ms18.7%
make_passworddjango/contrib/auth/hashers.py:119204 ms18.7%
PBKDF2PasswordHasher.encodedjango/contrib/auth/hashers.py:335204 ms18.7%
pbkdf2django/utils/crypto.py:77204 ms18.7%
1 smaller frames hidden
AjaxCapableProcessFormViewMixin.postallauth/account/mixins.py:81204 ms18.7%
BaseForm.is_validdjango/forms/forms.py:206204 ms18.7%
BaseForm.errorsdjango/forms/forms.py:201204 ms18.7%
BaseForm.full_cleandjango/forms/forms.py:337204 ms18.7%
BaseForm._clean_fieldsdjango/forms/forms.py:347204 ms18.7%
ChangePasswordForm.clean_oldpasswordallauth/account/forms.py:601204 ms18.7%
AbstractBaseUser.check_passworddjango/contrib/auth/base_user.py:109204 ms18.7%
check_passworddjango/contrib/auth/hashers.py:83204 ms18.7%
verify_passworddjango/contrib/auth/hashers.py:63204 ms18.7%
PBKDF2PasswordHasher.verifydjango/contrib/auth/hashers.py:351204 ms18.7%
PBKDF2PasswordHasher.encodedjango/contrib/auth/hashers.py:335204 ms18.7%
pbkdf2django/utils/crypto.py:77204 ms18.7%
1 smaller frames hidden
1 smaller frames hidden
TestAccountSettings.test_change_passwordft/tests.py:198 response = self.client.post(205 ms18.8%
Client.postdjango/test/client.py:1153205 ms18.8%
RequestFactory.postdjango/test/client.py:499205 ms18.8%
RequestFactory.genericdjango/test/client.py:671205 ms18.8%
Client.requestdjango/test/client.py:1082205 ms18.8%
ClientHandler.__call__django/test/client.py:186205 ms18.8%
BaseHandler.get_responsedjango/core/handlers/base.py:141205 ms18.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55205 ms18.8%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:130205 ms18.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55205 ms18.8%
MiddlewareMixin.__call__django/utils/deprecation.py:309205 ms18.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55205 ms18.8%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:123205 ms18.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55205 ms18.8%
MiddlewareMixin.__call__django/utils/deprecation.py:309205 ms18.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55205 ms18.8%
MiddlewareMixin.__call__django/utils/deprecation.py:309205 ms18.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55205 ms18.8%
MiddlewareMixin.__call__django/utils/deprecation.py:309205 ms18.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55205 ms18.8%
MiddlewareMixin.__call__django/utils/deprecation.py:309205 ms18.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55205 ms18.8%
MiddlewareMixin.__call__django/utils/deprecation.py:309205 ms18.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55205 ms18.8%
MiddlewareMixin.__call__django/utils/deprecation.py:309205 ms18.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55205 ms18.8%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:34205 ms18.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55205 ms18.8%
BaseHandler._get_responsedjango/core/handlers/base.py:198203 ms18.6%
View.as_view.<locals>.viewdjango/views/generic/base.py:106203 ms18.6%
_multi_decorate.<locals>._wrapperdjango/utils/decorators.py:48203 ms18.6%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:59203 ms18.6%
_multi_decorate.<locals>._wrapperdjango/utils/decorators.py:48203 ms18.6%
rate_limit.<locals>.decorator.<locals>.wrapallauth/decorators.py:12203 ms18.6%
_multi_decorate.<locals>._wrapperdjango/utils/decorators.py:48203 ms18.6%
sensitive_post_parameters.<locals>.decorator.<locals>.sensitive_post_parameters_wrapperdjango/views/decorators/debug.py:143203 ms18.6%
PasswordChangeView.dispatchallauth/account/views.py:503203 ms18.6%
View.dispatchdjango/views/generic/base.py:145203 ms18.6%
AjaxCapableProcessFormViewMixin.postallauth/account/mixins.py:81203 ms18.6%
BaseForm.is_validdjango/forms/forms.py:206203 ms18.6%
BaseForm.errorsdjango/forms/forms.py:201203 ms18.6%
BaseForm.full_cleandjango/forms/forms.py:337203 ms18.6%
BaseForm._clean_fieldsdjango/forms/forms.py:347201 ms18.5%
ChangePasswordForm.clean_oldpasswordallauth/account/forms.py:601201 ms18.5%
AbstractBaseUser.check_passworddjango/contrib/auth/base_user.py:109201 ms18.5%
check_passworddjango/contrib/auth/hashers.py:83201 ms18.5%
verify_passworddjango/contrib/auth/hashers.py:63201 ms18.5%
PBKDF2PasswordHasher.verifydjango/contrib/auth/hashers.py:351201 ms18.5%
PBKDF2PasswordHasher.encodedjango/contrib/auth/hashers.py:335201 ms18.5%
pbkdf2django/utils/crypto.py:77201 ms18.5%
1 smaller frames hidden
1 smaller frames hidden
TestAccountSettings.test_change_passwordft/tests.py:213 self.assertTrue(self.user.check_password("staple battery horse"))204 ms18.7%
AbstractBaseUser.check_passworddjango/contrib/auth/base_user.py:109204 ms18.7%
check_passworddjango/contrib/auth/hashers.py:83204 ms18.7%
verify_passworddjango/contrib/auth/hashers.py:63204 ms18.7%
PBKDF2PasswordHasher.verifydjango/contrib/auth/hashers.py:351204 ms18.7%
PBKDF2PasswordHasher.encodedjango/contrib/auth/hashers.py:335204 ms18.7%
pbkdf2django/utils/crypto.py:77204 ms18.7%
TestAccountSettings.setUpft/tests.py:179 self.client.force_login(self.user)15 ms1.3%
ClientMixin.force_logindjango/test/client.py:85515 ms1.3%
ClientMixin._logindjango/test/client.py:8817 ms0.7%
2 smaller frames hidden
TestAccountSettings.test_change_passwordft/tests.py:196 response = self.client.get(reverse("account_change_password"))14 ms1.3%
Client.getdjango/test/client.py:112414 ms1.3%
RequestFactory.getdjango/test/client.py:47514 ms1.3%
RequestFactory.genericdjango/test/client.py:67114 ms1.3%
Client.requestdjango/test/client.py:108214 ms1.3%
ClientHandler.__call__django/test/client.py:17312 ms1.1%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6212 ms1.1%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10412 ms1.1%
WhiteNoise.add_fileswhitenoise/base.py:1088 ms0.8%
1 smaller frames hidden
1 smaller frames hidden
2 smaller frames hidden
Estimated from 1,048 samples; phase durations are exact. Frames from pytest and pluggy are hidden .

Hot lines in your code

ft/tests.py:203
response = self.client.post(
TestAccountSettings.test_change_password · Password hashing
415 ms
ft/tests.py:175
cls.user = User.objects.create_user("anze", email="[email protected]", password="correct horse battery")
TestAccountSettings.setUpTestData · Password hashing
225 ms
ft/tests.py:198
response = self.client.post(
TestAccountSettings.test_change_password · Password hashing
205 ms
ft/tests.py:213
self.assertTrue(self.user.check_password("staple battery horse"))
TestAccountSettings.test_change_password · Password hashing
204 ms
ft/tests.py:179
self.client.force_login(self.user)
TestAccountSettings.setUp · Database
15 ms
ft/tests.py:196
response = self.client.get(reverse("account_change_password"))
TestAccountSettings.test_change_password · Libraries
14 ms
ft/tests.py:176
EmailAddress.objects.create(user=cls.user, email="[email protected]", primary=True, verified=True)
TestAccountSettings.setUpTestData · Database
2 ms

Fixtures

Exact setup time
_unittest_setUpClass_fixture_TestAccountSettings class 234 ms
_django_setup_unittest class 0.33 ms
_template_string_if_invalid_marker function 0.09 ms
_django_db_marker function 0.08 ms
_live_server_helper function 0.07 ms
_dj_autoclear_mailbox function 0.07 ms
_django_set_urlconf function 0.06 ms
_django_clear_site_cache function 0.04 ms
monkeypatch function 0.03 ms

Database

39 queries · 20 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:203
836 ms
setup setUpClass
django/test/testcases.py:1439
234 ms
call setUp
ft/tests.py:179
15 ms
setup pytest internals 2 ms
call _pre_setup
django/test/testcases.py:1164
1 ms

Reliability

5 results · 0 CI failures · 0 local failures

This test hasn't failed recently.

History

Latest 5 results, oldest first in the strip
When Environment Outcome Duration Commit
23 minutes ago CI github-actions:test passed 1.09 s 9caa567 main Profile
48 minutes ago CI github-actions:test passed 1.06 s ec75501 main Profile
7 hours ago CI github-actions:test passed 1.32 s d2c12e5 main Profile
7 hours ago CI github-actions:test passed 721 ms 0b902f6 main Profile
7 hours ago CI github-actions:test passed 1.46 s 78a4357 main Profile