zulip/zerver/tests
Anders Kaseorg 6988622fe8 ruff: Enable B023 Function definition does not bind loop variable.
Python’s loop scoping is misdesigned, resulting in a very common
gotcha for functions that close over loop variables [1].  The general
problem is so bad that even the Go developers plan to break
compatibility in order to fix the same design mistake in their
language [2].

Enable the Ruff rule function-uses-loop-variable (B023) [3], which
conservatively prohibits functions from binding loop variables at all.

[1] https://docs.python-guide.org/writing/gotchas/#late-binding-closures
[2] https://go.dev/s/loopvar-design
[3] https://beta.ruff.rs/docs/rules/function-uses-loop-variable/

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2023-09-11 18:03:45 -07:00
..
fixtures fenced_code: Enable code-highlighting without language markers. 2023-08-29 18:16:11 -07:00
images
__init__.py
test_alert_words.py alert_words: Migrate alert_words to use @typed_endpoint. 2023-09-08 08:20:17 -07:00
test_attachments.py upload: Rename delete_message_image to use word "attachment". 2023-03-02 16:36:19 -08:00
test_audit_log.py tests: Use function to create realm rather than django ORM. 2023-09-07 14:21:01 -07:00
test_auth_backends.py ruff: Fix PERF401 Use a list comprehension to create a transformed list. 2023-08-07 17:23:55 -07:00
test_bots.py bots: Remove subscription from inaccessible streams on reactivating bot. 2023-08-16 15:37:37 -07:00
test_cache.py ruff: Fix N818 exception name should be named with an Error suffix. 2022-11-17 16:52:00 -08:00
test_compatibility.py ruff: Fix RSE102 Unnecessary parentheses on raised exception. 2023-02-04 16:34:55 -08:00
test_create_video_call.py compose: Verify request payload in Zoom meeting creation test 2023-08-29 17:09:43 -07:00
test_custom_profile_data.py settings: Add backend code for using user email_address_visibility setting. 2023-02-10 17:35:49 -08:00
test_data_types.py
test_decorators.py ruff: Fix PIE808 Unnecessary `start` argument in `range`. 2023-09-01 14:57:01 -07:00
test_delete_unclaimed_attachments.py lint: Fix lint issues caught after rebasing. 2023-08-06 13:47:38 -07:00
test_digest.py tests: Flush per-request caches automatically for query counts. 2023-08-11 11:09:34 -07:00
test_docs.py help: Add gear menu icons to relative links. 2023-08-07 11:40:44 -07:00
test_drafts.py ruff: Fix PIE808 Unnecessary `start` argument in `range`. 2023-09-01 14:57:01 -07:00
test_email_change.py demo-orgs: Add email and password process for demo organization owners. 2023-08-31 15:02:16 -07:00
test_email_log.py emails: Add new onboarding email with guide for organization type. 2023-04-10 08:38:09 -07:00
test_email_mirror.py ruff: Fix PIE808 Unnecessary `start` argument in `range`. 2023-09-01 14:57:01 -07:00
test_email_notifications.py send_email: Broaden type of context dict. 2023-08-30 11:54:28 -07:00
test_embedded_bot_system.py tests: Add assert_message_stream_name 2023-08-10 18:13:43 -07:00
test_event_queue.py notifications: Rename 'pm' to 'dm' in 'RecipientInfoResult' dataclass. 2023-08-10 17:41:49 -07:00
test_event_system.py api-docs: Fix documentation of `realm_emoji` in register response. 2023-08-16 14:32:20 -07:00
test_events.py ruff: Enable B023 Function definition does not bind loop variable. 2023-09-11 18:03:45 -07:00
test_example.py tests: Add assert_message_stream_name 2023-08-10 18:13:43 -07:00
test_external.py name_restrictions: Reject anything with zulip or kandra in it. 2023-06-23 10:45:40 -07:00
test_github.py ruff: Fix N818 exception name should be named with an Error suffix. 2022-11-17 16:52:00 -08:00
test_gitter_importer.py models: Always search Messages with a realm_id or id limit. 2023-09-11 15:00:37 -07:00
test_has_request_variables.py requests: Split out test_has_request_variables. 2023-08-11 16:43:12 -07:00
test_home.py invite: Add new setting for "Who can create multiuse invite links". 2023-09-07 14:21:01 -07:00
test_hotspots.py
test_i18n.py email-templates: Add account_registered email templates. 2023-08-18 16:25:48 -07:00
test_import_export.py models: Always search Messages with a realm_id or id limit. 2023-09-11 15:00:37 -07:00
test_integrations.py integrations: Fix broken screenshots configuration. 2023-07-17 09:23:01 -07:00
test_integrations_dev_panel.py middleware: Fix exception logging format on JSON views. 2023-09-06 09:14:49 -07:00
test_internet.py ruff: Fix B017 `assertRaises(Exception):` should be considered evil. 2022-11-03 12:10:15 -07:00
test_invite.py ruff: Enable B023 Function definition does not bind loop variable. 2023-09-11 18:03:45 -07:00
test_legacy_subject.py tests: Consistently JSON-encode ‘to’ parameter 2022-09-13 11:05:37 -07:00
test_link_embed.py message: Access realm object directly from message. 2023-08-23 11:38:32 -07:00
test_management_commands.py send_custom_email: Stop turning every user query into an id-based set. 2023-08-09 15:49:49 -07:00
test_markdown.py markdown: Fix URL link topic skipping query. 2023-09-08 16:17:11 -07:00
test_mattermost_importer.py messages: Switch limits from sender__realm to realm. 2023-09-11 15:00:37 -07:00
test_message_dict.py per-request caches: Add per_request_cache library. 2023-08-11 11:09:34 -07:00
test_message_edit.py django: Use .exists() instead of .count() when possible. 2023-09-11 15:00:37 -07:00
test_message_edit_notifications.py notifications: Remove the stray notification trigger strings. 2023-07-24 11:02:14 -07:00
test_message_fetch.py models: Always search Messages with a realm_id or id limit. 2023-09-11 15:00:37 -07:00
test_message_flags.py ruff: Fix PIE808 Unnecessary `start` argument in `range`. 2023-09-01 14:57:01 -07:00
test_message_notification_emails.py ruff: Fix PIE808 Unnecessary `start` argument in `range`. 2023-09-01 14:57:01 -07:00
test_message_send.py message_send: Fix wildcard_mentioned flag unset for few participants. 2023-08-16 11:31:56 -07:00
test_message_topics.py ruff: Fix N818 exception name should be named with an Error suffix. 2022-11-17 16:52:00 -08:00
test_messages.py notifications: Rename 'pm' to 'dm' in 'RecipientInfoResult' dataclass. 2023-08-10 17:41:49 -07:00
test_middleware.py codespell: Correct “requestor” to “requester”. 2023-06-20 16:17:55 -07:00
test_migrations.py migrations: Add indexes with realm_id. 2023-09-11 15:00:37 -07:00
test_mirror_users.py backend-tests: Update "private message" or "PM" to "direct message". 2023-06-23 11:24:13 -07:00
test_muted_users.py docs: Fix typos caught by ‘typos’. 2023-09-06 18:59:05 -07:00
test_new_users.py create-user: Remove notifications sent to admin realm. 2023-03-13 12:28:26 -07:00
test_notification_data.py notifications: Rename 'pm' to 'dm' in 'RecipientInfoResult' dataclass. 2023-08-10 17:41:49 -07:00
test_onboarding.py
test_openapi.py drafts: Migrate drafts to use @typed_endpoint. 2023-09-08 08:20:17 -07:00
test_outgoing_http.py test: Replace occurences of `uri` with `url`. 2023-04-08 16:27:55 -07:00
test_outgoing_webhook_interfaces.py notification_trigger: Rename `private_message` to `direct_message`. 2023-08-10 17:41:49 -07:00
test_outgoing_webhook_system.py tests: Add assert_message_stream_name 2023-08-10 18:13:43 -07:00
test_populate_db.py populate_db: Import timedelta from its canonical module. 2023-03-05 14:46:28 -08:00
test_presence.py presence: Support null values in UserPresence. 2023-04-26 14:26:47 -07:00
test_push_notifications.py push_notifications: Test message content truncated in a simple manner. 2023-09-01 10:46:16 -07:00
test_queue.py
test_queue_worker.py notification_trigger: Rename `private_message` to `direct_message`. 2023-08-10 17:41:49 -07:00
test_rate_limiter.py test_helpers: Switch add/remove_ratelimit to a contextmanager. 2023-06-12 12:55:27 -07:00
test_reactions.py emojis: Use get_emoji_data. 2023-07-17 09:35:53 -07:00
test_read_receipts.py muted users: Make file naming consistent. 2023-02-10 15:39:57 -08:00
test_realm.py models: Always search Messages with a realm_id or id limit. 2023-09-11 15:00:37 -07:00
test_realm_domains.py realm_domains: Allow only owners to add, edit or delete domains. 2022-09-16 15:27:52 -07:00
test_realm_emoji.py docs: Add documentation for delete emoji endpoint. 2023-06-28 10:23:47 -07:00
test_realm_export.py migration: Rename extra_data_json to extra_data in audit log models. 2023-08-16 17:18:14 -07:00
test_realm_linkifiers.py migration: Rename extra_data_json to extra_data in audit log models. 2023-08-16 17:18:14 -07:00
test_realm_playgrounds.py realm_playgrounds: Refactor error handling for validation on creation. 2023-07-24 17:40:59 -07:00
test_redis_utils.py
test_report.py zerver: Remove now-unused report/ endpoints. 2023-05-09 13:16:28 -07:00
test_retention.py models: Always search Messages with a realm_id or id limit. 2023-09-11 15:00:37 -07:00
test_rocketchat_importer.py messages: Switch limits from sender__realm to realm. 2023-09-11 15:00:37 -07:00
test_scheduled_messages.py tests: Access realm directly from ScheduledMessage object. 2023-08-23 11:38:32 -07:00
test_scim.py codespell: Correct “requestor” to “requester”. 2023-06-20 16:17:55 -07:00
test_send_email.py docs: Document how to use SMTP without authentication. 2023-02-27 11:59:48 -08:00
test_server_settings.py settings: Make SHARED_SECRET mandatory. 2022-08-25 12:13:03 -07:00
test_service_bot_system.py notification_trigger: Rename `private_message` to `direct_message`. 2023-08-10 17:41:49 -07:00
test_sessions.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
test_settings.py test_helpers: Switch add/remove_ratelimit to a contextmanager. 2023-06-12 12:55:27 -07:00
test_signup.py models: Always search Messages with a realm_id or id limit. 2023-09-11 15:00:37 -07:00
test_slack_importer.py ruff: Fix PERF102 Using only the keys/values of a dict. 2023-08-07 17:23:55 -07:00
test_slack_message_conversion.py
test_soft_deactivation.py ruff: Fix PERF401 Use a list comprehension to create a transformed list. 2023-08-07 17:23:55 -07:00
test_subdomains.py subdomains: Extend tests for for same-host when STATIC_URL has domain. 2023-02-14 17:17:06 -05:00
test_submessage.py tests: Improve automated tests for submessages. 2023-07-06 16:35:46 -07:00
test_subs.py subscribe-unsubscribe: Improve error response for unexpected users. 2023-08-31 13:48:39 -07:00
test_templates.py widgets: Rename confusing attribute name in `tabbed_sections.py`. 2023-08-31 11:55:28 -07:00
test_thumbnail.py test_helpers: Switch add/remove_ratelimit to a contextmanager. 2023-06-12 12:55:27 -07:00
test_timeout.py test_timeout: Skip test_timeout_warn on Python 3.11 for coverage issue. 2023-05-18 11:52:22 -07:00
test_timestamp.py ruff: Fix N818 exception name should be named with an Error suffix. 2022-11-17 16:52:00 -08:00
test_timezone.py ruff: Fix DTZ001 `datetime.datetime()` without `tzinfo` argument. 2023-01-04 16:25:07 -08:00
test_tornado.py
test_transfer.py upload: Rename upload_message_file to use word "attachment". 2023-03-02 16:36:19 -08:00
test_tutorial.py settings: Change "Display settings" to "Preferences". 2023-07-12 07:09:03 -07:00
test_typed_endpoint.py webhooks: Migrate transifex to use endpoint to use @typed_endpoint. 2023-09-08 08:20:17 -07:00
test_typing.py message-type: Add support for "direct" as value for type parameter. 2023-04-18 12:29:33 -07:00
test_upload.py ruff: Enable B023 Function definition does not bind loop variable. 2023-09-11 18:03:45 -07:00
test_upload_local.py ruff: Collapse short multi-line import statements. 2023-08-02 17:41:41 -07:00
test_upload_s3.py ruff: Collapse short multi-line import statements. 2023-08-02 17:41:41 -07:00
test_urls.py url tests: Mock out html_to_text. 2023-07-02 16:18:24 -07:00
test_user_groups.py user_groups: Make locks required for updating user group memberships. 2023-08-24 17:21:08 -07:00
test_user_status.py test_classes: Rename and refactor 'tornado_redirected_to_list'. 2023-04-07 09:45:26 -07:00
test_user_topics.py ruff: Collapse short multi-line import statements. 2023-08-02 17:41:41 -07:00
test_users.py models: Always search Messages with a realm_id or id limit. 2023-09-11 15:00:37 -07:00
test_validators.py validators: Split out test_validators. 2023-08-11 16:43:12 -07:00
test_webhooks_common.py backend-tests: Update "private message" or "PM" to "direct message". 2023-06-23 11:24:13 -07:00
test_widgets.py tests: Consistently JSON-encode ‘to’ parameter 2022-09-13 11:05:37 -07:00
test_zcommand.py
test_zephyr.py zephyr: Check PERSONAL_ZMIRROR_SERVER before updating cache. 2022-08-12 17:08:04 -07:00