zulip/zerver/tests
Alex Vandiver 3efc0c9af3 workers: Rewrite missedmessage_emails with a worker thread.
The previous implementation leaked database connections, as a new
thread (and thus a new thread-local database connection) was made for
each timer execution.  While these connections were relatively
lightweight in Python, they also incur memory overhead in the
PostgreSQL server itself.  The logic for managing the timer was also
unclear, and the unavoidable deadlock in the stopping logic was rather
unfortunate.

Rewrite with one explicit worker thread which handles the delayed
message sending.  The RabbitMQ consumer creates the database rows, and
notifies the worker to start its 5s timeout.  Because it is controlled
by a condition variable, it does not hold the lock while waiting, and
can be notified to exit.
2023-04-10 17:38:08 -07:00
..
fixtures emails: Inline CSS in emails in build_email. 2023-04-05 12:22:29 -07:00
images emoji: Support animated PNGs. 2022-03-15 12:47:21 -07:00
__init__.py
test_alert_words.py tests: Refactor away result.json() calls with helpers. 2022-06-06 23:06:00 -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 user_settings: Create RealmAuditLog entries for all user settings. 2023-03-23 10:06:47 -07:00
test_auth_backends.py test: Replace occurences of `uri` with `url`. 2023-04-08 16:27:55 -07:00
test_bots.py test_classes: Rename and refactor 'tornado_redirected_to_list'. 2023-04-07 09:45:26 -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 tests: Refactor away result.json() calls with helpers. 2022-06-06 23:06:00 -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 response: Implement ignored parameters with MutableJsonResponse class. 2023-03-06 10:33:13 -08:00
test_digest.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
test_docs.py web: Save two 301 redirects from /privacy to /privacy/ to /policies/privacy. 2023-03-24 14:51:01 -07:00
test_drafts.py test_draft: Avoid inference with type annotation. 2022-07-26 18:00:24 -07:00
test_email_change.py settings: Add backend code for using user email_address_visibility setting. 2023-02-10 17:35:49 -08: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 upload: Rename upload_message_file to use word "attachment". 2023-03-02 16:36:19 -08:00
test_email_notifications.py emails: Add new onboarding email with guide for organization type. 2023-04-10 08:38:09 -07:00
test_embedded_bot_system.py ruff: Fix N818 exception name should be named with an Error suffix. 2022-11-17 16:52:00 -08:00
test_event_queue.py user_groups: Use check_add_user_group instead in test cases. 2023-03-27 09:05:00 -07:00
test_event_system.py test_classes: Rename and refactor 'tornado_redirected_to_list'. 2023-04-07 09:45:26 -07:00
test_events.py test: Replace occurences of `uri` with `url`. 2023-04-08 16:27:55 -07:00
test_example.py emails: Add new onboarding email with guide for organization type. 2023-04-10 08:38:09 -07:00
test_external.py test_classes: Add submit_realm_creation_form helper. 2023-03-27 15:44:42 -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 ruff: Fix C405 Unnecessary `list` literal (rewrite as a `set` literal). 2022-11-03 12:10:15 -07:00
test_home.py sentry: Add frontend event monitoring. 2023-03-07 10:51:45 -08:00
test_hotspots.py actions: Split out zerver.actions.create_user. 2022-04-14 17:14:35 -07:00
test_i18n.py auth: Add @require_post to remote_user_jwt. 2023-02-03 15:23:35 -08:00
test_import_export.py user_topics: Update 'set visibility policy' codepath for bulk db operations. 2023-03-29 09:50:06 -07:00
test_integrations.py
test_integrations_dev_panel.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
test_internet.py ruff: Fix B017 `assertRaises(Exception):` should be considered evil. 2022-11-03 12:10:15 -07:00
test_invite.py emails: Replace Premailer with CSS-inline. 2023-04-03 15:15:05 -07:00
test_legacy_subject.py tests: Consistently JSON-encode ‘to’ parameter 2022-09-13 11:05:37 -07:00
test_link_embed.py ruff: Fix ISC003 Explicitly concatenated string. 2023-01-04 16:25:07 -08:00
test_logging_handlers.py Fix typos caught by typos. 2023-01-03 11:09:50 -08:00
test_management_commands.py export: Make --deactivate-realm exports be imported as active. 2023-04-03 16:08:43 -07:00
test_markdown.py test: Replace occurences of `uri` with `url`. 2023-04-08 16:27:55 -07:00
test_mattermost_importer.py
test_message_dict.py models: Remove type prefixes from __str__ values. 2023-03-08 22:56:55 -08:00
test_message_edit.py test_classes: Rename and refactor 'tornado_redirected_to_list'. 2023-04-07 09:45:26 -07:00
test_message_edit_notifications.py push_notifications: Ensure notifications are on for the remove codepath. 2022-03-09 16:33:51 -08:00
test_message_fetch.py user_topics: Update lib functions to work with any visibility_policy. 2023-03-29 09:50:06 -07:00
test_message_flags.py test_classes: Rename and refactor 'tornado_redirected_to_list'. 2023-04-07 09:45:26 -07:00
test_message_send.py test_classes: Rename and refactor 'tornado_redirected_to_list'. 2023-04-07 09:45:26 -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 message send: Ignore alert words for presence idle users. 2023-01-06 17:08:20 -08:00
test_middleware.py help: Improve "Deactivate your account" help page. 2023-03-15 15:32:47 -07:00
test_migrations.py models: Add denormalized .realm column to Message. 2022-10-07 10:09:38 -07:00
test_mirror_users.py test_helpers: Rename reset_emails_in_zulip_realm. 2023-03-01 12:17:11 -08:00
test_muted_users.py mute user: Remove unnecessary check for double muting. 2023-02-20 21:04:13 -08: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 user_groups: Use check_add_user_group instead in test cases. 2023-03-27 09:05:00 -07:00
test_onboarding.py
test_openapi.py docs: Remove spaces before commas. 2023-02-22 17:17:25 -08: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
test_outgoing_webhook_system.py settings: Add backend code for using user email_address_visibility setting. 2023-02-10 17:35:49 -08:00
test_populate_db.py populate_db: Import timedelta from its canonical module. 2023-03-05 14:46:28 -08:00
test_presence.py models: Remove type prefixes from __str__ values. 2023-03-08 22:56:55 -08:00
test_push_notifications.py user_groups: Use check_add_user_group instead in test cases. 2023-03-27 09:05:00 -07:00
test_queue.py test_queue_error_json: Acknowledge the received message. 2022-01-21 13:38:13 -08:00
test_queue_worker.py workers: Rewrite missedmessage_emails with a worker thread. 2023-04-10 17:38:08 -07:00
test_rate_limiter.py ruff: Fix RSE102 Unnecessary parentheses on raised exception. 2023-02-04 16:34:55 -08:00
test_reactions.py test_classes: Rename and refactor 'tornado_redirected_to_list'. 2023-04-07 09:45:26 -07:00
test_read_receipts.py muted users: Make file naming consistent. 2023-02-10 15:39:57 -08:00
test_realm.py test_classes: Rename and refactor 'tornado_redirected_to_list'. 2023-04-07 09:45:26 -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 models: Remove type prefixes from __str__ values. 2023-03-08 22:56:55 -08:00
test_realm_export.py realm_export: Add transaction.atomic to export_realm. 2023-01-26 10:49:19 -08:00
test_realm_linkifiers.py test: Replace occurences of `uri` with `url`. 2023-04-08 16:27:55 -07:00
test_realm_playgrounds.py rest: Restrict access to json views via basic auth. 2022-11-04 14:44:07 -07:00
test_redis_utils.py typing: Fix missing attribtute of RedisUtilsTest. 2022-06-23 22:05:12 -07:00
test_report.py report: Use ZULIP_VERSION rather than shelling out to git every time. 2023-03-07 10:51:45 -08:00
test_retention.py uploads: Split out S3 and local file backends into separate files. 2023-01-09 18:23:58 -05:00
test_rocketchat_importer.py data_import: Stop tar'ing up converted data. 2023-02-26 17:42:01 -08:00
test_scim.py test_scim: Add test for missing or wrong authentication. 2022-11-05 15:13:46 -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 ruff: Fix N818 exception name should be named with an Error suffix. 2022-11-17 16:52:00 -08:00
test_sessions.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
test_settings.py user_settings: Automate 'Include realm name in message email subject'. 2023-03-14 17:48:57 -07:00
test_signup.py emails: Add new onboarding email with guide for organization type. 2023-04-10 08:38:09 -07:00
test_slack_importer.py data_import: Stop tar'ing up converted data. 2023-02-26 17:42:01 -08:00
test_slack_message_conversion.py
test_soft_deactivation.py test_classes: Create a dedicate helper for query count check. 2022-10-17 11:32:52 -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 test_classes: Rename and refactor 'tornado_redirected_to_list'. 2023-04-07 09:45:26 -07:00
test_subs.py test: Replace occurences of `uri` with `url`. 2023-04-08 16:27:55 -07:00
test_templates.py ruff: Fix N818 exception name should be named with an Error suffix. 2022-11-17 16:52:00 -08:00
test_thumbnail.py test: Replace occurences of `uri` with `url`. 2023-04-08 16:27:55 -07:00
test_timeout.py ruff: Fix N818 exception name should be named with an Error suffix. 2022-11-17 16:52:00 -08: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_tornado: Avoid deprecated AsyncHTTPTestCase. 2022-07-05 17:54:17 -07:00
test_transfer.py upload: Rename upload_message_file to use word "attachment". 2023-03-02 16:36:19 -08:00
test_tutorial.py web: Save a needless 301 redirect from /apps to /apps/. 2023-03-24 14:51:01 -07:00
test_typing.py test_classes: Rename and refactor 'tornado_redirected_to_list'. 2023-04-07 09:45:26 -07:00
test_upload.py test: Replace occurences of `uri` with `url`. 2023-04-08 16:27:55 -07:00
test_upload_local.py test: Replace occurences of `uri` with `url`. 2023-04-08 16:27:55 -07:00
test_upload_s3.py test: Replace occurences of `uri` with `url`. 2023-04-08 16:27:55 -07:00
test_urls.py web: Save a 301 redirect from /help to /help/. 2023-03-24 14:51:01 -07:00
test_user_groups.py user_groups: Send a message on changing user-groups subscribers. 2023-04-06 19:03:26 -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 test_classes: Rename and refactor 'tornado_redirected_to_list'. 2023-04-07 09:45:26 -07:00
test_users.py emails: Add new onboarding email with guide for organization type. 2023-04-10 08:38:09 -07:00
test_webhooks_common.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
test_widgets.py tests: Consistently JSON-encode ‘to’ parameter 2022-09-13 11:05:37 -07:00
test_zcommand.py tests: Refactor away result.json() calls with helpers. 2022-06-06 23:06:00 -07:00
test_zephyr.py zephyr: Check PERSONAL_ZMIRROR_SERVER before updating cache. 2022-08-12 17:08:04 -07:00