CI
github-actions:test
11 runs
Average
1.12 s
median 946 ms
max 2.19 s
max 2.19 s
Phases
Setup 1 ms
Call 1.11 s
Teardown 2 ms
Categories
Password hashing 1.05 s
Database 20 ms
Factories 0.63 ms
Test code 0.09 ms
Other (Libraries, Deep copies, pytest, Unsampled, ...) 41 ms
31 database queries per run
Needs 309 KB of memory (max 1012 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 7 hours ago ·
open run
call921 ms99.8%
TestEditConference.setUpconfs/tests.py:1177 self.staff = User.objects.create_user("staff", password="pw", is_staff=True)299 ms32.4%
UserManager.create_userdjango/contrib/auth/models.py:180299 ms32.4%
UserManager._create_userdjango/contrib/auth/models.py:167299 ms32.4%
UserManager._create_user_objectdjango/contrib/auth/models.py:155299 ms32.4%
make_passworddjango/contrib/auth/hashers.py:118298 ms32.3%
PBKDF2PasswordHasher.encodedjango/contrib/auth/hashers.py:333298 ms32.3%
pbkdf2django/utils/crypto.py:93298 ms32.3%
1 smaller frames hidden
TestEditConference.setUpconfs/tests.py:1176 self.other = User.objects.create_user("other", password="pw")296 ms32.1%
UserManager.create_userdjango/contrib/auth/models.py:180296 ms32.1%
UserManager._create_userdjango/contrib/auth/models.py:167296 ms32.1%
UserManager._create_user_objectdjango/contrib/auth/models.py:160296 ms32.1%
make_passworddjango/contrib/auth/hashers.py:118296 ms32.1%
PBKDF2PasswordHasher.encodedjango/contrib/auth/hashers.py:333296 ms32.1%
pbkdf2django/utils/crypto.py:93295 ms32.0%
TestEditConference.setUpconfs/tests.py:1175 self.owner = User.objects.create_user("owner", password="pw")291 ms31.6%
UserManager.create_userdjango/contrib/auth/models.py:180291 ms31.6%
UserManager._create_userdjango/contrib/auth/models.py:167291 ms31.6%
UserManager._create_user_objectdjango/contrib/auth/models.py:160291 ms31.6%
make_passworddjango/contrib/auth/hashers.py:118291 ms31.6%
PBKDF2PasswordHasher.encodedjango/contrib/auth/hashers.py:333291 ms31.6%
pbkdf2django/utils/crypto.py:93291 ms31.6%
TestEditConference.test_staff_can_editconfs/tests.py:1230 self.client.post(self.url, self._post_data(name="Staff Edit"))27 ms2.9%
Client.postdjango/test/client.py:116227 ms2.9%
RequestFactory.postdjango/test/client.py:49927 ms2.9%
RequestFactory.genericdjango/test/client.py:67127 ms2.9%
Client.requestdjango/test/client.py:109127 ms2.9%
ClientHandler.__call__django/test/client.py:17314 ms1.6%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6314 ms1.6%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10414 ms1.6%
WhiteNoise.add_fileswhitenoise/base.py:10814 ms1.6%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12011 ms1.2%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13111 ms1.2%
WhiteNoise.get_static_filewhitenoise/base.py:2177 ms0.8%
1 smaller frames hidden
1 smaller frames hidden
ClientHandler.__call__django/test/client.py:18612 ms1.3%
BaseHandler.get_responsedjango/core/handlers/base.py:14212 ms1.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5612 ms1.3%
MiddlewareMixin.__call__django/utils/deprecation.py:38012 ms1.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5612 ms1.3%
MiddlewareMixin.__call__django/utils/deprecation.py:38012 ms1.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5612 ms1.3%
MiddlewareMixin.__call__django/utils/deprecation.py:38012 ms1.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5612 ms1.3%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12312 ms1.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5612 ms1.3%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:14512 ms1.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5612 ms1.3%
MiddlewareMixin.__call__django/utils/deprecation.py:38012 ms1.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5612 ms1.3%
MiddlewareMixin.__call__django/utils/deprecation.py:38012 ms1.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5612 ms1.3%
MiddlewareMixin.__call__django/utils/deprecation.py:38012 ms1.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5612 ms1.3%
MiddlewareMixin.__call__django/utils/deprecation.py:38012 ms1.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5612 ms1.3%
MiddlewareMixin.__call__django/utils/deprecation.py:38012 ms1.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5612 ms1.3%
MiddlewareMixin.__call__django/utils/deprecation.py:38012 ms1.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5612 ms1.3%
MiddlewareMixin.__call__django/utils/deprecation.py:38012 ms1.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5612 ms1.3%
BaseHandler._get_responsedjango/core/handlers/base.py:19912 ms1.3%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:6212 ms1.3%
edit_conferenceconfs/views.py:5419 ms1.0%
ConferenceForm.__init__confs/views.py:420 super().__init__(*args, **kwargs)9 ms1.0%
BaseModelForm.__init__django/forms/models.py:3818 ms0.9%
BaseForm.__init__django/forms/forms.py:1067 ms0.8%
deepcopy<stdlib>/copy.py:1307 ms0.8%
_deepcopy_dict<stdlib>/copy.py:2017 ms0.8%
deepcopy<stdlib>/copy.py:1377 ms0.8%
ChoiceField.__deepcopy__django/forms/fields.py:8737 ms0.8%
Field.__deepcopy__django/forms/fields.py:2667 ms0.8%
deepcopy<stdlib>/copy.py:1377 ms0.8%
ChoiceWidget.__deepcopy__django/forms/widgets.py:7477 ms0.8%
ChoiceWidget.choicesdjango/forms/widgets.py:8667 ms0.8%
normalize_choicesdjango/utils/choices.py:1106 ms0.7%
1 smaller frames hidden
1 smaller frames hidden
3 smaller frames hidden
4 smaller frames hidden
Estimated from 889 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
confs/tests.py:1177
self.staff = User.objects.create_user("staff", password="pw", is_staff=True)
TestEditConference.setUp
· Password hashing
|
299 ms |
|
confs/tests.py:1176
self.other = User.objects.create_user("other", password="pw")
TestEditConference.setUp
· Password hashing
|
296 ms |
|
confs/tests.py:1175
self.owner = User.objects.create_user("owner", password="pw")
TestEditConference.setUp
· Password hashing
|
291 ms |
|
confs/tests.py:1230
self.client.post(self.url, self._post_data(name="Staff Edit"))
TestEditConference.test_staff_can_edit
· Libraries
|
14 ms |
|
confs/views.py:420
super().__init__(*args, **kwargs)
ConferenceForm.__init__
· Deep copies
|
9 ms |
|
confs/tests.py:1229
self.client.force_login(self.staff)
TestEditConference.test_staff_can_edit
· Database
|
4 ms |
|
confs/tests.py:1178
self.conference = baker.make(
TestEditConference.setUp
· Database
|
1 ms |
|
confs/views.py:428
if tags and len(tags) > MAX_CONFERENCE_TAGS:
ConferenceForm.clean_conference_tags
· Database
|
1 ms |
|
confs/views.py:543
form.save()
edit_conference
· Database
|
1 ms |
|
confs/views.py:544
return redirect("conference", conference_slug=conference.slug)
edit_conference
· Libraries
|
1 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.04 ms |
| _template_string_if_invalid_marker function | 0.04 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.03 ms |
| _django_clear_site_cache function | 0.02 ms |
| monkeypatch function | 0.02 ms |
Database
31 queries · 11 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
3×
INSERT INTO "auth_user" ("password", "last_login", "is_superuser", "username", "first_name", "last_name", "email", "is_staff", "is_active", "date_joined") VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s) RETURNING "auth_user"."id"
Biggest pieces of work
|
call setUp
confs/tests.py:1177
|
887 ms |
|
call test body
confs/tests.py:1230
|
32 ms |
|
call _post_teardown
django/test/testcases.py:1243
|
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 | 922 ms | Profile |
| 16 hours ago | CI github-actions:test | passed | 629 ms | Profile |
| 22 hours ago | CI github-actions:test | passed | 946 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 934 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 1.35 s | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 918 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 1.03 s | Profile |
| 3 weeks ago | CI github-actions:test | passed | 744 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 1.64 s | Profile |
| 3 weeks ago | CI github-actions:test | passed | 961 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 2.19 s | Profile |
| 3 weeks ago | CI github-actions:test | passed | 917 ms | Run |