getappmap / getappmap/appmap-python
Test Failures on Misago Project with AppMap Enabled
Đang mở
Chưa có ai nhận issue này.
bug
- Ngôn ngữ chính
- Python
- Star
- 104
- Fork
- 17
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
Repo: Misago
AppMap Version: appmap>=1.1.0.dev0
Python Version: Python 3.11.4
With AppMap enabled
FAILED misago/apiv2/threads/tests/test_thread_watch.py::test_thread_watch_api_enables_watched_thread_email_notifications - Failed: Expected to pe...
FAILED misago/apiv2/threads/tests/test_thread_watch.py::test_thread_watch_api_disables_watched_thread_email_notifications - Failed: Expected to p...
FAILED misago/apiv2/threads/tests/test_thread_watch.py::test_thread_watch_api_skips_update_if_notifications_are_not_changed - Failed: Expected to...
FAILED misago/acl/tests/test_providers.py::test_container_loads_providers - TypeError: Object of type ModelBase is not JSON serializable
FAILED misago/acl/tests/test_providers.py::test_loading_providers_second_time_raises_runtime_error - TypeError: Object of type ModelBase is not J...
FAILED misago/acl/tests/test_providers.py::test_container_returns_list_of_providers - TypeError: Object of type ModelBase is not JSON serializable
FAILED misago/acl/tests/test_providers.py::test_container_returns_dict_of_providers - TypeError: Object of type ModelBase is not JSON serializable
FAILED misago/acl/tests/test_providers.py::test_getter_returns_registered_type_annotator - TypeError: Object of type type is not JSON serializable
FAILED misago/acl/tests/test_providers.py::test_container_returns_list_of_user_acl_serializers - TypeError: Object of type ModelBase is not JSON ...
FAILED misago/acl/tests/test_providers.py::test_getter_returns_registered_user_acl_serializer - TypeError: Object of type ModelBase is not JSON s...
============================================= 10 failed, 3411 passed, 4 warnings in 995.33s (0:16:35) ==============================================
With AppMap disabled/uninstalled
=================================================== 3421 passed, 4 warnings in 280.42s (0:04:40) ===================================================
Verbose Logging for one of the tests
pytest --no-cov misago/apiv2/threads/tests/test_thread_watch.py::test_thread_watch_api_enables_watched_thread_email_notifications -v
=============================================================== test session starts ================================================================
platform darwin -- Python 3.11.4, pytest-7.1.2, pluggy-1.0.0 -- /Users/petecheslock/repos/Misago/test/bin/python
cachedir: .pytest_cache
django: settings: devproject.test_settings (from env)
rootdir: /Users/petecheslock/repos/Misago, configfile: pytest.ini
plugins: anyio-3.6.1, split-0.8.1, snapshottest-0.6.0, mock-3.8.2, Faker-13.15.1, cov-4.0.0, django-4.5.2
collected 1 item
misago/apiv2/threads/tests/test_thread_watch.py::test_thread_watch_api_enables_watched_thread_email_notifications FAILED [100%]
===================================================================== FAILURES =====================================================================
_________________________________________ test_thread_watch_api_enables_watched_thread_email_notifications _________________________________________
user = <User: User>, thread = <Thread: Test thread>, user_client = <misago.test.MisagoClient object at 0x11e0a12d0>
django_assert_num_queries = functools.partial(<function _assert_num_queries at 0x1061cd3a0>, <_pytest.config.Config object at 0x105461fd0>)
def test_thread_watch_api_enables_watched_thread_email_notifications(
user, thread, user_client, django_assert_num_queries
):
existing_watched_thread = WatchedThread.objects.create(
user=user,
category_id=thread.category_id,
thread=thread,
send_emails=False,
)
> with django_assert_num_queries(25):
misago/apiv2/threads/tests/test_thread_watch.py:66:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.asdf/installs/python/3.11.4/lib/python3.11/contextlib.py:144: in __exit__
next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
config = <_pytest.config.Config object at 0x105461fd0>, num = 25, exact = True, connection = None, info = None
@contextmanager
def _assert_num_queries(
config,
num: int,
exact: bool = True,
connection=None,
info=None,
) -> Generator["django.test.utils.CaptureQueriesContext", None, None]:
from django.test.utils import CaptureQueriesContext
if connection is None:
from django.db import connection as conn
else:
conn = connection
verbose = config.getoption("verbose") > 0
with CaptureQueriesContext(conn) as context:
yield context
num_performed = len(context)
if exact:
failed = num != num_performed
else:
failed = num_performed > num
if failed:
msg = "Expected to perform {} queries {}{}".format(
num,
"" if exact else "or less ",
"but {} done".format(
num_performed == 1 and "1 was" or "{} were".format(num_performed)
),
)
if info:
msg += "\n{}".format(info)
if verbose:
sqls = (q["sql"] for q in context.captured_queries)
msg += "\n\nQueries:\n========\n\n" + "\n\n".join(sqls)
else:
msg += " (add -v option to show queries)"
> pytest.fail(msg)
E Failed: Expected to perform 25 queries but 26 were done
E
E Queries:
E ========
E
E SELECT "misago_cache_cacheversion"."cache", "misago_cache_cacheversion"."version" FROM "misago_cache_cacheversion"
E
E SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."expire_date" > '2023-09-01T18:15:01.189194+00:00'::timestamptz AND "django_session"."session_key" = '83jrxc4syy6dfkfp6ch1emluyenotdfv') LIMIT 21
E
E SELECT "misago_users_user"."id", "misago_users_user"."password", "misago_users_user"."last_login", "misago_users_user"."is_superuser", "misago_users_user"."username", "misago_users_user"."slug", "misago_users_user"."email", "misago_users_user"."email_hash", "misago_users_user"."joined_on", "misago_users_user"."joined_from_ip", "misago_users_user"."is_hiding_presence", "misago_users_user"."rank_id", "misago_users_user"."title", "misago_users_user"."requires_activation", "misago_users_user"."is_staff", "misago_users_user"."acl_key", "misago_users_user"."is_active", "misago_users_user"."is_active_staff_message", "misago_users_user"."is_deleting_account", "misago_users_user"."avatar_tmp", "misago_users_user"."avatar_src", "misago_users_user"."avatar_crop", "misago_users_user"."avatars", "misago_users_user"."is_avatar_locked", "misago_users_user"."avatar_lock_user_message", "misago_users_user"."avatar_lock_staff_message", "misago_users_user"."signature", "misago_users_user"."signature_parsed", "misago_users_user"."signature_checksum", "misago_users_user"."is_signature_locked", "misago_users_user"."signature_lock_user_message", "misago_users_user"."signature_lock_staff_message", "misago_users_user"."followers", "misago_users_user"."following", "misago_users_user"."limits_private_thread_invites_to", "misago_users_user"."unread_private_threads", "misago_users_user"."sync_unread_private_threads", "misago_users_user"."subscribe_to_started_threads", "misago_users_user"."subscribe_to_replied_threads", "misago_users_user"."unread_notifications", "misago_users_user"."watch_started_threads", "misago_users_user"."watch_replied_threads", "misago_users_user"."watch_new_private_threads_by_followed", "misago_users_user"."watch_new_private_threads_by_other_users", "misago_users_user"."notify_new_private_threads_by_followed", "misago_users_user"."notify_new_private_threads_by_other_users", "misago_users_user"."threads", "misago_users_user"."posts", "misago_users_user"."last_posted_on", "misago_users_user"."profile_fields", "misago_users_user"."agreements", "misago_users_rank"."id", "misago_users_rank"."name", "misago_users_rank"."slug", "misago_users_rank"."description", "misago_users_rank"."title", "misago_users_rank"."css_class", "misago_users_rank"."is_default", "misago_users_rank"."is_tab", "misago_users_rank"."order", "misago_users_online"."user_id", "misago_users_online"."last_click", "misago_users_bancache"."user_id", "misago_users_bancache"."ban_id", "misago_users_bancache"."cache_version", "misago_users_bancache"."user_message", "misago_users_bancache"."staff_message", "misago_users_bancache"."expires_on" FROM "misago_users_user" LEFT OUTER JOIN "misago_users_rank" ON ("misago_users_user"."rank_id" = "misago_users_rank"."id") LEFT OUTER JOIN "misago_users_online" ON ("misago_users_user"."id" = "misago_users_online"."user_id") LEFT OUTER JOIN "misago_users_bancache" ON ("misago_users_user"."id" = "misago_users_bancache"."user_id") WHERE "misago_users_user"."id" = 1 LIMIT 21
E
E DECLARE "_django_curs_8436375680_sync_81" NO SCROLL CURSOR WITHOUT HOLD FOR SELECT "misago_users_ban"."id", "misago_users_ban"."check_type", "misago_users_ban"."registration_only", "misago_users_ban"."banned_value", "misago_users_ban"."user_message", "misago_users_ban"."staff_message", "misago_users_ban"."expires_on", "misago_users_ban"."is_checked" FROM "misago_users_ban" WHERE (NOT "misago_users_ban"."registration_only" AND "misago_users_ban"."check_type" = 2) ORDER BY "misago_users_ban"."id" DESC
E
E DECLARE "_django_curs_8436375680_sync_82" NO SCROLL CURSOR WITHOUT HOLD FOR SELECT "misago_users_ban"."id", "misago_users_ban"."check_type", "misago_users_ban"."registration_only", "misago_users_ban"."banned_value", "misago_users_ban"."user_message", "misago_users_ban"."staff_message", "misago_users_ban"."expires_on", "misago_users_ban"."is_checked" FROM "misago_users_ban" WHERE (NOT "misago_users_ban"."registration_only" AND "misago_users_ban"."check_type" IN (0, 1)) ORDER BY "misago_users_ban"."id" DESC
E
E UPDATE "misago_users_bancache" SET "ban_id" = NULL, "cache_version" = 'QqNqVRF8', "user_message" = NULL, "staff_message" = NULL, "expires_on" = NULL WHERE "misago_users_bancache"."user_id" = 1
E
E INSERT INTO "misago_users_bancache" ("user_id", "ban_id", "cache_version", "user_message", "staff_message", "expires_on") VALUES (1, NULL, 'QqNqVRF8', NULL, NULL, NULL)
E
E SELECT "misago_acl_role"."id", "misago_acl_role"."name", "misago_acl_role"."special_role", "misago_acl_role"."permissions" FROM "misago_acl_role" INNER JOIN "misago_users_user_roles" ON ("misago_acl_role"."id" = "misago_users_user_roles"."role_id") WHERE "misago_users_user_roles"."user_id" = 1
E
E SELECT "misago_acl_role"."id", "misago_acl_role"."name", "misago_acl_role"."special_role", "misago_acl_role"."permissions" FROM "misago_acl_role" INNER JOIN "misago_users_rank_roles" ON ("misago_acl_role"."id" = "misago_users_rank_roles"."role_id") WHERE "misago_users_rank_roles"."rank_id" = 2
E
E DECLARE "_django_curs_8436375680_sync_83" NO SCROLL CURSOR WITHOUT HOLD FOR SELECT "misago_categories_rolecategoryacl"."id", "misago_categories_rolecategoryacl"."role_id", "misago_categories_rolecategoryacl"."category_id", "misago_categories_rolecategoryacl"."category_role_id", "misago_categories_categoryrole"."id", "misago_categories_categoryrole"."name", "misago_categories_categoryrole"."special_role", "misago_categories_categoryrole"."permissions" FROM "misago_categories_rolecategoryacl" INNER JOIN "misago_categories_categoryrole" ON ("misago_categories_rolecategoryacl"."category_role_id" = "misago_categories_categoryrole"."id") WHERE "misago_categories_rolecategoryacl"."role_id" IN (1, 8)
E
E SELECT "misago_categories_category"."id", "misago_categories_category"."parent_id", "misago_categories_category"."special_role", "misago_categories_category"."name", "misago_categories_category"."slug", "misago_categories_category"."short_name", "misago_categories_category"."color", "misago_categories_category"."description", "misago_categories_category"."is_closed", "misago_categories_category"."threads", "misago_categories_category"."posts", "misago_categories_category"."last_post_on", "misago_categories_category"."last_thread_id", "misago_categories_category"."last_thread_title", "misago_categories_category"."last_thread_slug", "misago_categories_category"."last_poster_id", "misago_categories_category"."last_poster_name", "misago_categories_category"."last_poster_slug", "misago_categories_category"."require_threads_approval", "misago_categories_category"."require_replies_approval", "misago_categories_category"."require_edits_approval", "misago_categories_category"."prune_started_after", "misago_categories_category"."prune_replied_after", "misago_categories_category"."archive_pruned_in_id", "misago_categories_category"."css_class", "misago_categories_category"."lft", "misago_categories_category"."rght", "misago_categories_category"."tree_id", "misago_categories_category"."level" FROM "misago_categories_category" WHERE ("misago_categories_category"."level" = 0 AND "misago_categories_category"."special_role" IN ('root_category', 'private_threads')) ORDER BY "misago_categories_category"."tree_id" ASC, "misago_categories_category"."lft" ASC
E
E SELECT "misago_categories_category"."id", "misago_categories_category"."parent_id", "misago_categories_category"."special_role", "misago_categories_category"."name", "misago_categories_category"."slug", "misago_categories_category"."short_name", "misago_categories_category"."color", "misago_categories_category"."description", "misago_categories_category"."is_closed", "misago_categories_category"."threads", "misago_categories_category"."posts", "misago_categories_category"."last_post_on", "misago_categories_category"."last_thread_id", "misago_categories_category"."last_thread_title", "misago_categories_category"."last_thread_slug", "misago_categories_category"."last_poster_id", "misago_categories_category"."last_poster_name", "misago_categories_category"."last_poster_slug", "misago_categories_category"."require_threads_approval", "misago_categories_category"."require_replies_approval", "misago_categories_category"."require_edits_approval", "misago_categories_category"."prune_started_after", "misago_categories_category"."prune_replied_after", "misago_categories_category"."archive_pruned_in_id", "misago_categories_category"."css_class", "misago_categories_category"."lft", "misago_categories_category"."rght", "misago_categories_category"."tree_id", "misago_categories_category"."level" FROM "misago_categories_category" WHERE ("misago_categories_category"."tree_id" = 1 AND "misago_categories_category"."level" > 0) ORDER BY "misago_categories_category"."lft" ASC
E
E DECLARE "_django_curs_8436375680_sync_84" NO SCROLL CURSOR WITHOUT HOLD FOR SELECT "misago_categories_rolecategoryacl"."id", "misago_categories_rolecategoryacl"."role_id", "misago_categories_rolecategoryacl"."category_id", "misago_categories_rolecategoryacl"."category_role_id", "misago_categories_categoryrole"."id", "misago_categories_categoryrole"."name", "misago_categories_categoryrole"."special_role", "misago_categories_categoryrole"."permissions" FROM "misago_categories_rolecategoryacl" INNER JOIN "misago_categories_categoryrole" ON ("misago_categories_rolecategoryacl"."category_role_id" = "misago_categories_categoryrole"."id") WHERE "misago_categories_rolecategoryacl"."role_id" IN (1, 8)
E
E SELECT "misago_categories_category"."id", "misago_categories_category"."parent_id", "misago_categories_category"."special_role", "misago_categories_category"."name", "misago_categories_category"."slug", "misago_categories_category"."short_name", "misago_categories_category"."color", "misago_categories_category"."description", "misago_categories_category"."is_closed", "misago_categories_category"."threads", "misago_categories_category"."posts", "misago_categories_category"."last_post_on", "misago_categories_category"."last_thread_id", "misago_categories_category"."last_thread_title", "misago_categories_category"."last_thread_slug", "misago_categories_category"."last_poster_id", "misago_categories_category"."last_poster_name", "misago_categories_category"."last_poster_slug", "misago_categories_category"."require_threads_approval", "misago_categories_category"."require_replies_approval", "misago_categories_category"."require_edits_approval", "misago_categories_category"."prune_started_after", "misago_categories_category"."prune_replied_after", "misago_categories_category"."archive_pruned_in_id", "misago_categories_category"."css_class", "misago_categories_category"."lft", "misago_categories_category"."rght", "misago_categories_category"."tree_id", "misago_categories_category"."level" FROM "misago_categories_category" WHERE "misago_categories_category"."tree_id" = 1 ORDER BY "misago_categories_category"."lft" ASC
E
E SELECT "misago_categories_category"."id", "misago_categories_category"."parent_id", "misago_categories_category"."special_role", "misago_categories_category"."name", "misago_categories_category"."slug", "misago_categories_category"."short_name", "misago_categories_category"."color", "misago_categories_category"."description", "misago_categories_category"."is_closed", "misago_categories_category"."threads", "misago_categories_category"."posts", "misago_categories_category"."last_post_on", "misago_categories_category"."last_thread_id", "misago_categories_category"."last_thread_title", "misago_categories_category"."last_thread_slug", "misago_categories_category"."last_poster_id", "misago_categories_category"."last_poster_name", "misago_categories_category"."last_poster_slug", "misago_categories_category"."require_threads_approval", "misago_categories_category"."require_replies_approval", "misago_categories_category"."require_edits_approval", "misago_categories_category"."prune_started_after", "misago_categories_category"."prune_replied_after", "misago_categories_category"."archive_pruned_in_id", "misago_categories_category"."css_class", "misago_categories_category"."lft", "misago_categories_category"."rght", "misago_categories_category"."tree_id", "misago_categories_category"."level" FROM "misago_categories_category" WHERE "misago_categories_category"."special_role" = 'private_threads' LIMIT 21
E
E DECLARE "_django_curs_8436375680_sync_85" NO SCROLL CURSOR WITHOUT HOLD FOR SELECT "misago_categories_rolecategoryacl"."id", "misago_categories_rolecategoryacl"."role_id", "misago_categories_rolecategoryacl"."category_id", "misago_categories_rolecategoryacl"."category_role_id", "misago_categories_categoryrole"."id", "misago_categories_categoryrole"."name", "misago_categories_categoryrole"."special_role", "misago_categories_categoryrole"."permissions" FROM "misago_categories_rolecategoryacl" INNER JOIN "misago_categories_categoryrole" ON ("misago_categories_rolecategoryacl"."category_role_id" = "misago_categories_categoryrole"."id") WHERE "misago_categories_rolecategoryacl"."role_id" IN (1, 8)
E
E SELECT "misago_categories_category"."id", "misago_categories_category"."parent_id", "misago_categories_category"."special_role", "misago_categories_category"."name", "misago_categories_category"."slug", "misago_categories_category"."short_name", "misago_categories_category"."color", "misago_categories_category"."description", "misago_categories_category"."is_closed", "misago_categories_category"."threads", "misago_categories_category"."posts", "misago_categories_category"."last_post_on", "misago_categories_category"."last_thread_id", "misago_categories_category"."last_thread_title", "misago_categories_category"."last_thread_slug", "misago_categories_category"."last_poster_id", "misago_categories_category"."last_poster_name", "misago_categories_category"."last_poster_slug", "misago_categories_category"."require_threads_approval", "misago_categories_category"."require_replies_approval", "misago_categories_category"."require_edits_approval", "misago_categories_category"."prune_started_after", "misago_categories_category"."prune_replied_after", "misago_categories_category"."archive_pruned_in_id", "misago_categories_category"."css_class", "misago_categories_category"."lft", "misago_categories_category"."rght", "misago_categories_category"."tree_id", "misago_categories_category"."level" FROM "misago_categories_category" WHERE "misago_categories_category"."tree_id" = 1 ORDER BY "misago_categories_category"."lft" ASC
E
E SELECT "misago_categories_category"."id", "misago_categories_category"."parent_id", "misago_categories_category"."special_role", "misago_categories_category"."name", "misago_categories_category"."slug", "misago_categories_category"."short_name", "misago_categories_category"."color", "misago_categories_category"."description", "misago_categories_category"."is_closed", "misago_categories_category"."threads", "misago_categories_category"."posts", "misago_categories_category"."last_post_on", "misago_categories_category"."last_thread_id", "misago_categories_category"."last_thread_title", "misago_categories_category"."last_thread_slug", "misago_categories_category"."last_poster_id", "misago_categories_category"."last_poster_name", "misago_categories_category"."last_poster_slug", "misago_categories_category"."require_threads_approval", "misago_categories_category"."require_replies_approval", "misago_categories_category"."require_edits_approval", "misago_categories_category"."prune_started_after", "misago_categories_category"."prune_replied_after", "misago_categories_category"."archive_pruned_in_id", "misago_categories_category"."css_class", "misago_categories_category"."lft", "misago_categories_category"."rght", "misago_categories_category"."tree_id", "misago_categories_category"."level" FROM "misago_categories_category" WHERE "misago_categories_category"."special_role" = 'private_threads' LIMIT 21
E
E SELECT "misago_threads_thread"."id", "misago_threads_thread"."category_id", "misago_threads_thread"."title", "misago_threads_thread"."slug", "misago_threads_thread"."replies", "misago_threads_thread"."has_events", "misago_threads_thread"."has_poll", "misago_threads_thread"."has_reported_posts", "misago_threads_thread"."has_open_reports", "misago_threads_thread"."has_unapproved_posts", "misago_threads_thread"."has_hidden_posts", "misago_threads_thread"."started_on", "misago_threads_thread"."last_post_on", "misago_threads_thread"."first_post_id", "misago_threads_thread"."starter_id", "misago_threads_thread"."starter_name", "misago_threads_thread"."starter_slug", "misago_threads_thread"."last_post_id", "misago_threads_thread"."last_post_is_event", "misago_threads_thread"."last_poster_id", "misago_threads_thread"."last_poster_name", "misago_threads_thread"."last_poster_slug", "misago_threads_thread"."weight", "misago_threads_thread"."is_unapproved", "misago_threads_thread"."is_hidden", "misago_threads_thread"."is_closed", "misago_threads_thread"."best_answer_id", "misago_threads_thread"."best_answer_is_protected", "misago_threads_thread"."best_answer_marked_on", "misago_threads_thread"."best_answer_marked_by_id", "misago_threads_thread"."best_answer_marked_by_name", "misago_threads_thread"."best_answer_marked_by_slug", "misago_categories_category"."id", "misago_categories_category"."parent_id", "misago_categories_category"."special_role", "misago_categories_category"."name", "misago_categories_category"."slug", "misago_categories_category"."short_name", "misago_categories_category"."color", "misago_categories_category"."description", "misago_categories_category"."is_closed", "misago_categories_category"."threads", "misago_categories_category"."posts", "misago_categories_category"."last_post_on", "misago_categories_category"."last_thread_id", "misago_categories_category"."last_thread_title", "misago_categories_category"."last_thread_slug", "misago_categories_category"."last_poster_id", "misago_categories_category"."last_poster_name", "misago_categories_category"."last_poster_slug", "misago_categories_category"."require_threads_approval", "misago_categories_category"."require_replies_approval", "misago_categories_category"."require_edits_approval", "misago_categories_category"."prune_started_after", "misago_categories_category"."prune_replied_after", "misago_categories_category"."archive_pruned_in_id", "misago_categories_category"."css_class", "misago_categories_category"."lft", "misago_categories_category"."rght", "misago_categories_category"."tree_id", "misago_categories_category"."level" FROM "misago_threads_thread" INNER JOIN "misago_categories_category" ON ("misago_threads_thread"."category_id" = "misago_categories_category"."id") WHERE "misago_threads_thread"."id" = 1 LIMIT 21
E
E SELECT "misago_categories_category"."id", "misago_categories_category"."parent_id", "misago_categories_category"."special_role", "misago_categories_category"."name", "misago_categories_category"."slug", "misago_categories_category"."short_name", "misago_categories_category"."color", "misago_categories_category"."description", "misago_categories_category"."is_closed", "misago_categories_category"."threads", "misago_categories_category"."posts", "misago_categories_category"."last_post_on", "misago_categories_category"."last_thread_id", "misago_categories_category"."last_thread_title", "misago_categories_category"."last_thread_slug", "misago_categories_category"."last_poster_id", "misago_categories_category"."last_poster_name", "misago_categories_category"."last_poster_slug", "misago_categories_category"."require_threads_approval", "misago_categories_category"."require_replies_approval", "misago_categories_category"."require_edits_approval", "misago_categories_category"."prune_started_after", "misago_categories_category"."prune_replied_after", "misago_categories_category"."archive_pruned_in_id", "misago_categories_category"."css_class", "misago_categories_category"."lft", "misago_categories_category"."rght", "misago_categories_category"."tree_id", "misago_categories_category"."level" FROM "misago_categories_category" WHERE "misago_categories_category"."special_role" = 'root_category' LIMIT 21
E
E SELECT "misago_notifications_watchedthread"."id", "misago_notifications_watchedthread"."user_id", "misago_notifications_watchedthread"."category_id", "misago_notifications_watchedthread"."thread_id", "misago_notifications_watchedthread"."send_emails", "misago_notifications_watchedthread"."secret", "misago_notifications_watchedthread"."created_at", "misago_notifications_watchedthread"."read_at" FROM "misago_notifications_watchedthread" WHERE ("misago_notifications_watchedthread"."thread_id" = 1 AND "misago_notifications_watchedthread"."user_id" = 1) ORDER BY "misago_notifications_watchedthread"."id" ASC LIMIT 2
E
E UPDATE "misago_notifications_watchedthread" SET "send_emails" = true WHERE "misago_notifications_watchedthread"."id" = 1
E
E UPDATE "misago_users_online" SET "last_click" = '2023-09-01T18:15:01.222436+00:00'::timestamptz WHERE "misago_users_online"."user_id" = 1
E
E SAVEPOINT "s8436375680_x5"
E
E UPDATE "django_session" SET "session_data" = '.eJxVjzEPgjAQhf9LZ0PaCm1hdHDTRAfX5ihXadACVlwI_91WGTS3vfe9u3sz0TA9Wz0FfGjXkIowsvnVajAd-mTcXYBrnyU1ZAlYrZAdPs5uJf_iLYQ2Zo0tqERTlyIXANTmnBbAldrSLWcKTSGFiECdGyZkU1pkDVOlBWRoKKCKS7_ntRu0adF0pJrJK37ieh_3n8bjeDnvE-eGVILLjMZJZVyIJbzH2MHCLeCyvAGkvU-K:1qc8fd:P3MLaBXTGYFJf3_yYeTkG4J6knvsNI17d-bqJRkhI3Y', "expire_date" = '2023-09-15T18:15:01.223394+00:00'::timestamptz WHERE "django_session"."session_key" = '83jrxc4syy6dfkfp6ch1emluyenotdfv'
E
E RELEASE SAVEPOINT "s8436375680_x5"
test/lib/python3.11/site-packages/pytest_django/fixtures.py:608: Failed
-------------------------------------------------------------- Captured stderr setup ---------------------------------------------------------------
Creating test database for alias 'default'...
------------------------------------------------------------- Captured stderr teardown -------------------------------------------------------------
Destroying test database for alias 'default'...
================================================================= warnings summary =================================================================
test/lib/python3.11/site-packages/kombu/utils/compat.py:82
/Users/petecheslock/repos/Misago/test/lib/python3.11/site-packages/kombu/utils/compat.py:82: DeprecationWarning: SelectableGroups dict interface is deprecated. Use select.
for ep in importlib_metadata.entry_points().get(namespace, [])
test/lib/python3.11/site-packages/django/http/request.py:1
/Users/petecheslock/repos/Misago/test/lib/python3.11/site-packages/django/http/request.py:1: DeprecationWarning: 'cgi' is deprecated and slated for removal in Python 3.13
import cgi
test/lib/python3.11/site-packages/django/utils/encoding.py:266
/Users/petecheslock/repos/Misago/test/lib/python3.11/site-packages/django/utils/encoding.py:266: DeprecationWarning: Use setlocale(), getencoding() and getlocale() instead
encoding = locale.getdefaultlocale()[1] or 'ascii'
test/lib/python3.11/site-packages/certifi/core.py:36
/Users/petecheslock/repos/Misago/test/lib/python3.11/site-packages/certifi/core.py:36: DeprecationWarning: path is deprecated. Use files() instead. Refer to https://importlib-resources.readthedocs.io/en/latest/using.html#migrating-from-legacy for migration advice.
_CACERT_CTX = get_path("certifi", "cacert.pem")
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
============================================================= short test summary info ==============================================================
FAILED misago/apiv2/threads/tests/test_thread_watch.py::test_thread_watch_api_enables_watched_thread_email_notifications - Failed: Expected to pe...
========================================================== 1 failed, 4 warnings in 4.40s ===========================================================
Steps used to recreate:
- Clone the
appmap-analysisbranch on Misago fork - Create virtualenv
python -m venv test - Activate venv
source test/bin/activate - pip install
pip install -r requirements.txt <Start Docker Desktop for Postgresql requirement>- Run
./doit.shto start the Postgresql container and export environment variables - Run pytest
pytest --no-covor run a single failed test
pytest --no-cov misago/apiv2/threads/tests/test_thread_watch.py::test_thread_watch_api_enables_watched_thread_email_notifications -v
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Chạy các test được liệt kê trong misago/apiv2/threads/tests/test_thread_watch.py và misago/acl/tests/test_providers.py với AppMap được bật, sau đó so sánh chúng với baseline khi bị tắt. Điều tra các lỗi về số lượng query và lỗi tuần tự hóa JSON; được xem là hoàn tất khi cả 10 lỗi đều pass và toàn bộ test suite vẫn green.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- django, python
- Lĩnh vực
- backend, testing
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100