Tests / confs/tests.py
TestSyncAnnouncements::test_leaves_already_posted_announcements_untouched
First seen 3 weeks ago in 0c23747
CI
github-actions:test
11 runs
Average
41 ms
median 37 ms
max 57 ms
max 57 ms
Phases
Setup 2 ms
Call 38 ms
Teardown 0.48 ms
Categories
Database 32 ms
Factories 1 ms
App code 0.21 ms
Other (Libraries, pytest, Unsampled, Mocking, ...) 7 ms
17 database queries per run
Needs 20 KB of memory (max 44 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 7 hours ago ·
open run
call35 ms96.0%
TestSyncAnnouncements.test_leaves_already_posted_announcements_untouchedconfs/tests.py:1027 self._sync()9 ms25.6%
TestSyncAnnouncements._syncconfs/tests.py:937 call_command("syncannouncements")9 ms25.6%
call_commanddjango/core/management/__init__.py:1957 ms19.2%
RichCommand.executedjango_rich/management/__init__.py:347 ms19.2%
BaseCommand.executedjango/core/management/base.py:4667 ms19.2%
Command.handleconfs/management/commands/syncannouncements.py:137 ms19.2%
sync_upcomingconfs/conference_announcements.py:1085 ms12.8%
sync_conferenceconfs/conference_announcements.py:85 announcement = announcement_model.objects.create(4 ms9.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms9.6%
QuerySet.createdjango/db/models/query.py:7364 ms9.6%
Model.savedjango/db/models/base.py:9044 ms9.6%
Model.save_basedjango/db/models/base.py:9964 ms9.6%
Model._save_tabledjango/db/models/base.py:11994 ms9.6%
Model._do_insertdjango/db/models/base.py:12514 ms9.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms9.6%
QuerySet._insertdjango/db/models/query.py:21414 ms9.6%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19364 ms9.6%
CursorWrapper.executedjango/db/backends/utils.py:794 ms9.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:924 ms9.6%
CursorWrapper._executedjango/db/backends/utils.py:1054 ms9.6%
Cursor.executepsycopg/cursor.py:1134 ms9.6%
Connection.waitpsycopg/connection.py:4954 ms9.6%
sync_conferenceconfs/conference_announcements.py:97 conference.save(update_fields=changed)1 ms3.2%
Model.savedjango/db/models/base.py:9041 ms3.2%
Model.save_basedjango/db/models/base.py:9961 ms3.2%
Model._save_tabledjango/db/models/base.py:11401 ms3.2%
Model._do_updatedjango/db/models/base.py:12441 ms3.2%
QuerySet._updatedjango/db/models/query.py:14481 ms3.2%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21501 ms3.2%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21211 ms3.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16251 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
sync_upcomingconfs/conference_announcements.py:107 for conference in upcoming:2 ms6.4%
QuerySet.__iter__django/db/models/query.py:4392 ms6.4%
QuerySet._fetch_alldjango/db/models/query.py:22622 ms6.4%
ModelIterable.__iter__django/db/models/query.py:1032 ms6.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16121 ms3.2%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7681 ms3.2%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:891 ms3.2%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:781 ms3.2%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3101 ms3.2%
SQLCompiler.get_related_selectionsdjango/db/models/sql/compiler.py:14061 ms3.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16251 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
call_commanddjango/core/management/__init__.py:1222 ms6.4%
BaseCommand.create_parserdjango/core/management/base.py:3102 ms6.4%
CommandParser.__init__django/core/management/base.py:661 ms3.2%
ArgumentParser.__init__<stdlib>/argparse.py:20471 ms3.2%
gettext<stdlib>/gettext.py:6321 ms3.2%
dgettext<stdlib>/gettext.py:5931 ms3.2%
translation<stdlib>/gettext.py:5371 ms3.2%
TestSyncAnnouncements.test_leaves_already_posted_announcements_untouchedconfs/tests.py:10367 ms19.2%
TestSyncAnnouncements._syncconfs/tests.py:937 call_command("syncannouncements")7 ms19.2%
call_commanddjango/core/management/__init__.py:1957 ms19.2%
RichCommand.executedjango_rich/management/__init__.py:347 ms19.2%
BaseCommand.executedjango/core/management/base.py:4667 ms19.2%
Command.handleconfs/management/commands/syncannouncements.py:137 ms19.2%
sync_upcomingconfs/conference_announcements.py:1085 ms12.8%
sync_conferenceconfs/conference_announcements.py:94 announcement.save(update_fields=["content", "post_at"])5 ms12.8%
Model.savedjango/db/models/base.py:9045 ms12.8%
Model.save_basedjango/db/models/base.py:9965 ms12.8%
Model._save_tabledjango/db/models/base.py:11405 ms12.8%
Model._do_updatedjango/db/models/base.py:12445 ms12.8%
QuerySet._updatedjango/db/models/query.py:14485 ms12.8%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21505 ms12.8%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21215 ms12.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16255 ms12.8%
CursorWrapper.executedjango/db/backends/utils.py:795 ms12.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:925 ms12.8%
CursorWrapper._executedjango/db/backends/utils.py:1055 ms12.8%
Cursor.executepsycopg/cursor.py:1135 ms12.8%
Connection.waitpsycopg/connection.py:4955 ms12.8%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms6.4%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2832 ms6.4%
sync_upcomingconfs/conference_announcements.py:107 for conference in upcoming:2 ms6.4%
QuerySet.__iter__django/db/models/query.py:4392 ms6.4%
QuerySet._fetch_alldjango/db/models/query.py:22622 ms6.4%
ModelIterable.__iter__django/db/models/query.py:1032 ms6.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16252 ms6.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms6.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms6.4%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
TestSyncAnnouncements.test_leaves_already_posted_announcements_untouchedconfs/tests.py:1028 conference.refresh_from_db()4 ms9.6%
Model.refresh_from_dbdjango/db/models/base.py:7884 ms9.6%
QuerySet.getdjango/db/models/query.py:7024 ms9.6%
QuerySet.__len__django/db/models/query.py:4214 ms9.6%
QuerySet._fetch_alldjango/db/models/query.py:22624 ms9.6%
ModelIterable.__iter__django/db/models/query.py:1034 ms9.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16254 ms9.6%
CursorWrapper.executedjango/db/backends/utils.py:794 ms9.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:924 ms9.6%
CursorWrapper._executedjango/db/backends/utils.py:1054 ms9.6%
Cursor.executepsycopg/cursor.py:1134 ms9.6%
Connection.waitpsycopg/connection.py:4954 ms9.6%
TestSyncAnnouncements.test_leaves_already_posted_announcements_untouchedconfs/tests.py:1035 conference.save()4 ms9.6%
Model.savedjango/db/models/base.py:9044 ms9.6%
Model.save_basedjango/db/models/base.py:9964 ms9.6%
Model._save_tabledjango/db/models/base.py:11404 ms9.6%
Model._do_updatedjango/db/models/base.py:12444 ms9.6%
QuerySet._updatedjango/db/models/query.py:14484 ms9.6%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21504 ms9.6%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21214 ms9.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16254 ms9.6%
CursorWrapper.executedjango/db/backends/utils.py:794 ms9.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:924 ms9.6%
CursorWrapper._executedjango/db/backends/utils.py:1054 ms9.6%
Cursor.executepsycopg/cursor.py:1134 ms9.6%
Connection.waitpsycopg/connection.py:4954 ms9.6%
BaseCursor._execute_genpsycopg/_cursor_base.py:2051 ms3.2%
BaseCursor._convert_querypsycopg/_cursor_base.py:4651 ms3.2%
PostgresClientQuery.convertpsycopg/_queries.py:2891 ms3.2%
PostgresClientQuery.dumppsycopg/_queries.py:2991 ms3.2%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3001 ms3.2%
TestSyncAnnouncements.test_leaves_already_posted_announcements_untouchedconfs/tests.py:10264 ms9.6%
TestSyncAnnouncements._conferenceconfs/tests.py:933 return baker.make(Conference, **defaults)4 ms9.6%
makemodel_bakery/baker.py:1754 ms9.6%
Baker.makemodel_bakery/baker.py:4544 ms9.6%
Baker._makemodel_bakery/baker.py:5291 ms3.2%
Baker.generate_valuemodel_bakery/baker.py:10191 ms3.2%
gen_stringmodel_bakery/random_gen.py:2701 ms3.2%
Baker._makemodel_bakery/baker.py:5421 ms3.2%
Baker.instancemodel_bakery/baker.py:6591 ms3.2%
Model.savedjango/db/models/base.py:9041 ms3.2%
Model.save_basedjango/db/models/base.py:9961 ms3.2%
Model._save_tabledjango/db/models/base.py:11991 ms3.2%
Model._do_insertdjango/db/models/base.py:12511 ms3.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms3.2%
QuerySet._insertdjango/db/models/query.py:21411 ms3.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19361 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms3.2%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2861 ms3.2%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:781 ms3.2%
Baker._makemodel_bakery/baker.py:5501 ms3.2%
TestSyncAnnouncements.test_leaves_already_posted_announcements_untouchedconfs/tests.py:1038 start.refresh_from_db()2 ms6.4%
Model.refresh_from_dbdjango/db/models/base.py:7882 ms6.4%
QuerySet.getdjango/db/models/query.py:7022 ms6.4%
QuerySet.__len__django/db/models/query.py:4212 ms6.4%
QuerySet._fetch_alldjango/db/models/query.py:22622 ms6.4%
ModelIterable.__iter__django/db/models/query.py:1032 ms6.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16252 ms6.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms6.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms6.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms6.4%
Cursor.executepsycopg/cursor.py:1132 ms6.4%
Connection.waitpsycopg/connection.py:4952 ms6.4%
TransactionTestCase._pre_setupdjango/test/testcases.py:1167 cls._fixture_setup()2 ms6.4%
TestCase._fixture_setupdjango/test/testcases.py:14811 ms3.2%
TestCase._enter_atomicsdjango/test/testcases.py:13991 ms3.2%
Atomic.__enter__django/db/transaction.py:2231 ms3.2%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms3.2%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4001 ms3.2%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3671 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:2061 ms3.2%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2861 ms3.2%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:781 ms3.2%
TestSyncAnnouncements.test_leaves_already_posted_announcements_untouchedconfs/tests.py:1029 start = conference.start_announcement1 ms3.2%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2661 ms3.2%
FetchOne.fetchdjango/db/models/fetch_modes.py:171 ms3.2%
ForwardManyToOneDescriptor.fetch_onedjango/db/models/fields/related_descriptors.py:2791 ms3.2%
ForwardOneToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:4091 ms3.2%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2311 ms3.2%
QuerySet.getdjango/db/models/query.py:7021 ms3.2%
QuerySet.__len__django/db/models/query.py:4211 ms3.2%
QuerySet._fetch_alldjango/db/models/query.py:22621 ms3.2%
ModelIterable.__iter__django/db/models/query.py:1031 ms3.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16251 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
TestSyncAnnouncements.test_leaves_already_posted_announcements_untouchedconfs/tests.py:1032 start.save()1 ms3.2%
Model.savedjango/db/models/base.py:9041 ms3.2%
Model.save_basedjango/db/models/base.py:9961 ms3.2%
Model._save_tabledjango/db/models/base.py:11401 ms3.2%
Model._do_updatedjango/db/models/base.py:12441 ms3.2%
QuerySet._updatedjango/db/models/query.py:14481 ms3.2%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21501 ms3.2%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21211 ms3.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16251 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
TransactionTestCase._post_teardowndjango/test/testcases.py:1243 self._fixture_teardown()1 ms3.2%
TestCase._fixture_teardowndjango/test/testcases.py:14981 ms3.2%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4951 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
Estimated from 30 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
confs/conference_announcements.py:94
announcement.save(update_fields=["content", "post_at"])
sync_conference
· Database
|
5 ms |
|
confs/conference_announcements.py:107
for conference in upcoming:
sync_upcoming
· Database
|
5 ms |
|
confs/conference_announcements.py:85
announcement = announcement_model.objects.create(
sync_conference
· Database
|
4 ms |
|
confs/tests.py:1028
conference.refresh_from_db()
TestSyncAnnouncements.test_leaves_already_posted_announcements_untouched
· Database
|
4 ms |
|
confs/tests.py:1035
conference.save()
TestSyncAnnouncements.test_leaves_already_posted_announcements_untouched
· Database
|
4 ms |
|
confs/tests.py:933
return baker.make(Conference, **defaults)
TestSyncAnnouncements._conference
· Factories
|
4 ms |
|
confs/tests.py:1038
start.refresh_from_db()
TestSyncAnnouncements.test_leaves_already_posted_announcements_untouched
· Database
|
2 ms |
|
confs/tests.py:937
call_command("syncannouncements")
TestSyncAnnouncements._sync
· Libraries
|
2 ms |
|
confs/conference_announcements.py:97
conference.save(update_fields=changed)
sync_conference
· Database
|
1 ms |
|
confs/tests.py:1029
start = conference.start_announcement
TestSyncAnnouncements.test_leaves_already_posted_announcements_untouched
· Database
|
1 ms |
Fixtures
Exact setup time| _template_string_if_invalid_marker function | 0.06 ms |
| _dj_autoclear_mailbox function | 0.06 ms |
| _django_db_marker function | 0.06 ms |
| _live_server_helper function | 0.05 ms |
| _django_isolate_apps function | 0.05 ms |
| _django_set_urlconf function | 0.05 ms |
| _django_clear_site_cache function | 0.04 ms |
| monkeypatch function | 0.03 ms |
Database
17 queries · 19 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
3×
SELECT "confs_conference"."id", "confs_conference"."name", "confs_conference"."slug", "confs_conference"."location", "confs_conference"."start_date", "confs_conference"."end_date", "confs_conference"."time_zone", "confs_conference"."archived_date", "confs_conference"."approved_at", "confs_conferenc…
Biggest pieces of work
|
call test body
confs/tests.py:1027
|
32 ms |
|
call _pre_setup
django/test/testcases.py:1167
|
2 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 | 37 ms | Profile |
| 16 hours ago | CI github-actions:test | passed | 19 ms | Profile |
| 22 hours ago | CI github-actions:test | passed | 31 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 52 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 55 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 37 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 48 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 22 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 35 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 54 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 57 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 21 ms | Run |