From 5a95ae36507b30e8ae9fc3fbfc471ed3019f6906 Mon Sep 17 00:00:00 2001 From: Prakhar Pratyush Date: Sun, 22 Oct 2023 14:33:03 +0530 Subject: [PATCH] populate_db: Set user_topic policies to NEVER only for test-database. Earlier, the 'automatically_follow_topics_policy' and 'automatically_unmute_topics_in_muted_streams_policy' were set to 'NEVER' for both the test and dev databases. This commit fixes the incorrect behavior. Now, we set it to 'NEVER' only for the test-database. We need the actual default value in our dev database. We explicitly set it to NEVER for test-database as it skews other tests by generating extra events and db queries. We have separate tests with different values to test the intended behavior related to these settings. The bug was introduced in 58568a6. --- zilencer/management/commands/populate_db.py | 45 +++++++++++---------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/zilencer/management/commands/populate_db.py b/zilencer/management/commands/populate_db.py index bda61c3cfc..227c6dba11 100644 --- a/zilencer/management/commands/populate_db.py +++ b/zilencer/management/commands/populate_db.py @@ -829,28 +829,29 @@ class Command(BaseCommand): UserProfile.objects.filter(is_bot=False, realm=zulip_realm) ) - # As we plan to change the default values for 'automatically_follow_topics_policy' and - # 'automatically_unmute_topics_in_muted_streams_policy' in the future, it will lead to - # skewing a lot of our tests, which now need to take into account extra events and database queries. - # - # We explicitly set the values for both settings to 'AUTOMATICALLY_CHANGE_VISIBILITY_POLICY_NEVER' - # to make the tests independent of the default values. - # - # We have separate tests to verify events generated, database query counts, - # and other important details related to the above-mentioned settings. - for user in user_profiles: - do_change_user_setting( - user, - "automatically_follow_topics_policy", - UserProfile.AUTOMATICALLY_CHANGE_VISIBILITY_POLICY_NEVER, - acting_user=None, - ) - do_change_user_setting( - user, - "automatically_unmute_topics_in_muted_streams_policy", - UserProfile.AUTOMATICALLY_CHANGE_VISIBILITY_POLICY_NEVER, - acting_user=None, - ) + if options["test_suite"]: + # As we plan to change the default values for 'automatically_follow_topics_policy' and + # 'automatically_unmute_topics_in_muted_streams_policy' in the future, it will lead to + # skewing a lot of our tests, which now need to take into account extra events and database queries. + # + # We explicitly set the values for both settings to 'AUTOMATICALLY_CHANGE_VISIBILITY_POLICY_NEVER' + # to make the tests independent of the default values. + # + # We have separate tests to verify events generated, database query counts, + # and other important details related to the above-mentioned settings. + for user in user_profiles: + do_change_user_setting( + user, + "automatically_follow_topics_policy", + UserProfile.AUTOMATICALLY_CHANGE_VISIBILITY_POLICY_NEVER, + acting_user=None, + ) + do_change_user_setting( + user, + "automatically_unmute_topics_in_muted_streams_policy", + UserProfile.AUTOMATICALLY_CHANGE_VISIBILITY_POLICY_NEVER, + acting_user=None, + ) # Create a test realm emoji. IMAGE_FILE_PATH = static_path("images/test-images/checkbox.png")