getappmap / getappmap/appmap-python

Test Failures on Misago Project with AppMap Enabled

Đang mở
#252 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

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:

  1. Clone the appmap-analysis branch on Misago fork
  2. Create virtualenv python -m venv test
  3. Activate venv source test/bin/activate
  4. pip install pip install -r requirements.txt
  5. <Start Docker Desktop for Postgresql requirement>
  6. Run ./doit.sh to start the Postgresql container and export environment variables
  7. Run pytest pytest --no-cov or 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

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. 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

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.