Tests / confs/tests.py
TestSyncAnnouncements::test_post_at_uses_conference_timezone
First seen 14 hours ago in 0c23747
CI
github-actions:test
4 runs
Average
32 ms
median 31 ms
max 50 ms
max 50 ms
Phases
Setup 4 ms
Call 28 ms
Teardown 0.27 ms
Categories
Database 24 ms
App code 0.25 ms
Test code 0.25 ms
Other (pytest, Libraries, Mocking, Unsampled, ...) 8 ms
12 database queries per run
Needs 19 KB of memory (max 24 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 9 hours ago ·
open run
setup1 ms6.4%
_Environ.__setitem__<frozen os>:7351 ms6.4%
call15 ms92.2%
TestSyncAnnouncements.test_post_at_uses_conference_timezoneconfs/tests.py:987 self._sync()9 ms55.3%
TestSyncAnnouncements._syncconfs/tests.py:937 call_command("syncannouncements")7 ms43.0%
call_commanddjango/core/management/__init__.py:1957 ms43.0%
RichCommand.executedjango_rich/management/__init__.py:347 ms43.0%
BaseCommand.executedjango/core/management/base.py:4667 ms43.0%
Command.handleconfs/management/commands/syncannouncements.py:13 sync_upcoming(Conference, Announcement, timezone.now().date())6 ms36.9%
sync_upcomingconfs/conference_announcements.py:1084 ms24.6%
sync_conferenceconfs/conference_announcements.py:85 announcement = announcement_model.objects.create(2 ms12.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms12.3%
QuerySet.createdjango/db/models/query.py:7362 ms12.3%
Model.savedjango/db/models/base.py:9042 ms12.3%
Model.save_basedjango/db/models/base.py:9962 ms12.3%
Model._save_tabledjango/db/models/base.py:11992 ms12.3%
Model._do_insertdjango/db/models/base.py:12512 ms12.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms12.3%
QuerySet._insertdjango/db/models/query.py:21412 ms12.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19361 ms6.1%
CursorWrapper.executedjango/db/backends/utils.py:791 ms6.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms6.1%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms6.1%
Cursor.executepsycopg/cursor.py:1131 ms6.1%
Connection.waitpsycopg/connection.py:4951 ms6.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2051 ms6.1%
BaseCursor._convert_querypsycopg/_cursor_base.py:4651 ms6.1%
PostgresClientQuery.convertpsycopg/_queries.py:2891 ms6.1%
PostgresClientQuery.dumppsycopg/_queries.py:2991 ms6.1%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3001 ms6.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19351 ms6.1%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18801 ms6.1%
SQLInsertCompiler.assemble_as_sqldjango/db/backends/postgresql/compiler.py:551 ms6.1%
SQLInsertCompiler.assemble_as_sqldjango/db/models/sql/compiler.py:17941 ms6.1%
sync_conferenceconfs/conference_announcements.py:861 ms6.1%
content_forconfs/conference_announcements.py:641 ms6.1%
hashtags_forconfs/conference_announcements.py:351 ms6.1%
hashtags_for.<locals>.<genexpr>confs/conference_announcements.py:35 return " ".join(tag if tag.startswith("#") else f"#{tag}" for tag in tags if tag)1 ms6.1%
sync_conferenceconfs/conference_announcements.py:97 conference.save(update_fields=changed)1 ms6.1%
Model.savedjango/db/models/base.py:9041 ms6.1%
Model.save_basedjango/db/models/base.py:9961 ms6.1%
Model._save_tabledjango/db/models/base.py:11401 ms6.1%
Model._do_updatedjango/db/models/base.py:12211 ms6.1%
QuerySet.filterdjango/db/models/query.py:16761 ms6.1%
QuerySet._filter_or_excludedjango/db/models/query.py:16941 ms6.1%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:17041 ms6.1%
Query.add_qdjango/db/models/sql/query.py:16811 ms6.1%
Query._add_qdjango/db/models/sql/query.py:17131 ms6.1%
Query.build_filterdjango/db/models/sql/query.py:16131 ms6.1%
Query.build_lookupdjango/db/models/sql/query.py:14401 ms6.1%
sync_upcomingconfs/conference_announcements.py:107 for conference in upcoming:2 ms12.3%
QuerySet.__iter__django/db/models/query.py:4392 ms12.3%
QuerySet._fetch_alldjango/db/models/query.py:22622 ms12.3%
ModelIterable.__iter__django/db/models/query.py:1032 ms12.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16252 ms12.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms12.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms12.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms12.3%
Cursor.executepsycopg/cursor.py:1132 ms12.3%
Connection.waitpsycopg/connection.py:4952 ms12.3%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms12.3%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms12.3%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms12.3%
Command.handleconfs/management/commands/syncannouncements.py:14 self.console.print("Done syncing announcements 🎉")1 ms6.1%
Console.printrich/console.py:17311 ms6.1%
Console.renderrich/console.py:13391 ms6.1%
Text.__rich_console__rich/text.py:6961 ms6.1%
Text.wraprich/text.py:12391 ms6.1%
divide_linerich/_wrap.py:461 ms6.1%
TestSyncAnnouncements._syncconfs/tests.py:936 with mock.patch("confs.management.commands.syncannouncements.timezone.now", return_value=self.NOW):2 ms12.3%
_patch.__enter__<stdlib>/unittest/mock.py:14941 ms6.1%
resolve_name<stdlib>/pkgutil.py:4811 ms6.1%
import_module<stdlib>/importlib/__init__.py:881 ms6.1%
_gcd_import<frozen importlib._bootstrap>:13901 ms6.1%
_find_and_load<frozen importlib._bootstrap>:13471 ms6.1%
_HierarchicalLockManager.__enter__<frozen importlib._bootstrap>:4581 ms6.1%
_ModuleLock.acquire<frozen importlib._bootstrap>:3111 ms6.1%
_BlockingOnManager.__exit__<frozen importlib._bootstrap>:1751 ms6.1%
_patch.__enter__<stdlib>/unittest/mock.py:15681 ms6.1%
MagicMixin.__init__<stdlib>/unittest/mock.py:21831 ms6.1%
CallableMixin.__init__<stdlib>/unittest/mock.py:11631 ms6.1%
NonCallableMock.__setattr__<stdlib>/unittest/mock.py:8071 ms6.1%
TestSyncAnnouncements.test_post_at_uses_conference_timezoneconfs/tests.py:991 self.assertEqual(conference.start_announcement.post_at, dt.datetime(2026, 6, 1, 15, 0, tzinfo=dt.UTC))2 ms12.3%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2662 ms12.3%
FetchOne.fetchdjango/db/models/fetch_modes.py:172 ms12.3%
ForwardManyToOneDescriptor.fetch_onedjango/db/models/fields/related_descriptors.py:2792 ms12.3%
ForwardOneToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:4092 ms12.3%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2312 ms12.3%
QuerySet.getdjango/db/models/query.py:7022 ms12.3%
QuerySet.__len__django/db/models/query.py:4212 ms12.3%
QuerySet._fetch_alldjango/db/models/query.py:22622 ms12.3%
ModelIterable.__iter__django/db/models/query.py:1032 ms12.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16252 ms12.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms12.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms12.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms12.3%
Cursor.executepsycopg/cursor.py:1132 ms12.3%
Connection.waitpsycopg/connection.py:4952 ms12.3%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms12.3%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms12.3%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms12.3%
TestSyncAnnouncements.test_post_at_uses_conference_timezoneconfs/tests.py:9852 ms12.3%
TestSyncAnnouncements._conferenceconfs/tests.py:933 return baker.make(Conference, **defaults)2 ms12.3%
makemodel_bakery/baker.py:1751 ms6.1%
Baker.makemodel_bakery/baker.py:4541 ms6.1%
Baker._makemodel_bakery/baker.py:5421 ms6.1%
Baker.instancemodel_bakery/baker.py:6311 ms6.1%
Model.__init__django/db/models/base.py:5531 ms6.1%
TransactionTestCase._post_teardowndjango/test/testcases.py:1243 self._fixture_teardown()2 ms12.3%
TestCase._fixture_teardowndjango/test/testcases.py:14971 ms6.1%
TestCase._should_check_constraintsdjango/test/testcases.py:15061 ms6.1%
DatabaseWrapper.is_usabledjango/db/backends/postgresql/base.py:5041 ms6.1%
Cursor.executepsycopg/cursor.py:1131 ms6.1%
Connection.waitpsycopg/connection.py:4951 ms6.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms6.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2861 ms6.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:781 ms6.1%
TestCase._fixture_teardowndjango/test/testcases.py:15001 ms6.1%
TestCase._rollback_atomicsdjango/test/testcases.py:14081 ms6.1%
Atomic.__exit__django/db/transaction.py:2951 ms6.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms6.1%
BaseDatabaseWrapper.savepoint_rollbackdjango/db/backends/base/base.py:4131 ms6.1%
BaseDatabaseWrapper._savepoint_rollbackdjango/db/backends/base/base.py:3711 ms6.1%
CursorWrapper.executedjango/db/backends/utils.py:791 ms6.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms6.1%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms6.1%
Cursor.executepsycopg/cursor.py:1131 ms6.1%
Connection.waitpsycopg/connection.py:4951 ms6.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms6.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2861 ms6.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:781 ms6.1%
Estimated from 16 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
confs/conference_announcements.py:107
for conference in upcoming:
sync_upcoming
· Database
|
2 ms |
|
confs/tests.py:991
self.assertEqual(conference.start_announcement.post_at, dt.datetime(2026, 6, 1, 15, 0, tzinfo=dt.UTC))
TestSyncAnnouncements.test_post_at_uses_conference_timezone
· Database
|
2 ms |
|
confs/tests.py:933
return baker.make(Conference, **defaults)
TestSyncAnnouncements._conference
· Test code
|
2 ms |
|
confs/tests.py:936
with mock.patch("confs.management.commands.syncannouncements.timezone.now", return_value=self.NOW):
TestSyncAnnouncements._sync
· Imports
|
2 ms |
|
confs/conference_announcements.py:85
announcement = announcement_model.objects.create(
sync_conference
· Database
|
2 ms |
|
confs/conference_announcements.py:35
return " ".join(tag if tag.startswith("#") else f"#{tag}" for tag in tags if tag)
hashtags_for.<locals>.<genexpr>
· App code
|
1 ms |
|
confs/conference_announcements.py:97
conference.save(update_fields=changed)
sync_conference
· Database
|
1 ms |
|
confs/management/commands/syncannouncements.py:14
self.console.print("Done syncing announcements 🎉")
Command.handle
· Libraries
|
1 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.05 ms |
| _template_string_if_invalid_marker function | 0.05 ms |
| _django_db_marker function | 0.04 ms |
| _django_isolate_apps function | 0.03 ms |
| _django_set_urlconf function | 0.03 ms |
| _live_server_helper function | 0.03 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
12 queries · 6 msNo repeated queries.
Biggest pieces of work
|
call test body
confs/tests.py:987
|
13 ms |
|
call _post_teardown
django/test/testcases.py:1243
|
2 ms |
|
setup __setitem__
<frozen os>:735
|
1 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 | |
|---|---|---|---|---|
| 9 hours ago | CI github-actions:test | passed | 16 ms | Profile |
| 9 hours ago | CI github-actions:test | passed | 24 ms | Profile |
| 9 hours ago | CI github-actions:test | passed | 38 ms | Profile |
| 14 hours ago | CI github-actions:test | passed | 50 ms | Profile |
| 14 hours ago | CI github-actions:test | passed | 11 ms | Run |