zulip/zerver/tests
Alex Vandiver dd954749be zilencer: Log, and drop, duplicated rows from remote servers.
This may happen if there are multiple servers with the same UUID
submitting data (e.g. if they were cloned after initial creation), or
if there is one server, but `./manage.py clear_analytics_tables` was
used to truncate the analytics tables.

In the case of `clear_analytics_tables`, the data submitted likely has
identical historical values with new remote `id` values; preserving
the originally-submitted contemporaneous data is the best option.  For
the case of submissions from multiple servers, there is no completely
sensible outcome, so the best we can do is detect the case and move
on.

Since we have a lock on the RemoteZulipServer, we know that no other
inserts are happening, so counting before and after will return the
true number of rows inserted (which `bulk_create` cannot do in the
face of `ignore_conflicts`[^1]).  We compare this to the expected
number of new inserted rows to detect dropped duplicates.

[^1]: See https://code.djangoproject.com/ticket/30138.
2023-11-21 11:44:55 -08:00
..
fixtures zerver: Implement ldap group synchronization. 2023-10-05 16:12:52 -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 mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_audit_log.py user_groups: Move constants for system group names to a new class. 2023-11-01 10:42:56 -07:00
test_auth_backends.py ldap: Tweak AUTH_LDAP_ADVANCED_REALM_ACCESS_CONTROL behavior. 2023-11-17 14:40:26 -08: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 test_create_video_call: Add missing not None assertions. 2023-11-15 15:27:54 -08:00
test_custom_profile_data.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_data_types.py
test_decorators.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_delete_unclaimed_attachments.py tests: Eliminate instances of time_machine.travel without tick=False. 2023-10-01 09:28:42 -07:00
test_digest.py digest: Clear the cache once we move to a new realm / cutoff value. 2023-09-13 13:25:59 -07:00
test_docs.py gear_menu: Rename "Manage streams" -> "Stream settings". 2023-11-17 08:53:41 -08:00
test_drafts.py ruff: Fix PIE808 Unnecessary `start` argument in `range`. 2023-09-01 14:57:01 -07:00
test_email_change.py emails: Update subject for confirm_new_email to have realm host. 2023-09-17 15:12:21 -07:00
test_email_log.py onboarding-emails: Add new onboarding email for organization creator. 2023-10-25 13:51:03 -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 onboarding-emails: Add new onboarding email for organization creator. 2023-10-25 13:51:03 -07:00
test_embedded_bot_system.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_event_queue.py topic_mentions: Rename wildcard_mentioned to stream_wildcard_mentioned. 2023-11-10 11:06:26 -08:00
test_event_system.py users: Rename get_raw_user_data to get_users_for_api. 2023-11-08 09:22:26 -08:00
test_events.py streams: Send stream deletion events on unsubscribing users. 2023-11-16 13:25:33 -05:00
test_example.py onboarding-emails: Add new onboarding email for organization creator. 2023-10-25 13:51:03 -07:00
test_external.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -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 test_helpers: Remove unnecessary HostRequestMock.body override. 2023-10-12 12:28:41 -07:00
test_health.py middleware: Send got_request_exception signal for JSON 500 errors. 2023-10-04 17:25:20 -07:00
test_home.py models: Add can_access_all_users_group setting. 2023-11-13 08:04:45 -08:00
test_hotspots.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_i18n.py tests: Switch test_i18n fetch helper to use client_foo methods. 2023-11-01 11:24:12 -07:00
test_import_export.py user_groups: Move constants for system group names to a new class. 2023-11-01 10:42:56 -07:00
test_integrations.py integrations: Fix broken screenshots configuration. 2023-07-17 09:23:01 -07:00
test_integrations_dev_panel.py middleware: Send got_request_exception signal for JSON 500 errors. 2023-10-04 17:25:20 -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 user_groups: Move constants for system group names to a new class. 2023-11-01 10:42:56 -07:00
test_legacy_subject.py
test_link_embed.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_management_commands.py registration: Set the organization language at creation time. 2023-10-26 16:27:35 -07:00
test_markdown.py markdown: Use \p{White_Space} equivalent for linkifier boundaries. 2023-11-14 20:43:39 -08:00
test_mattermost_importer.py Add support for importing guest users from Mattermost. 2023-10-01 17:13:23 -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 topic_mentions: Rename wildcard_mentioned to stream_wildcard_mentioned. 2023-11-10 11:06:26 -08: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 topic_mentions: Rename wildcard_mentioned to stream_wildcard_mentioned. 2023-11-10 11:06:26 -08:00
test_message_flags.py topic_mentions: Rename wildcard_mentioned to stream_wildcard_mentioned. 2023-11-10 11:06:26 -08:00
test_message_notification_emails.py email_notification: Fix bad rendering of math formulas. 2023-11-20 10:41:02 -08:00
test_message_send.py topic_mentions: Set 'topic_wildcard_mentioned' flag on @topic mention. 2023-11-02 09:25:51 -07:00
test_message_topics.py response: Remove "result: partially_completed" for success responses. 2023-09-18 13:18:24 -07:00
test_messages.py notifications: Rename 'pm' to 'dm' in 'RecipientInfoResult' dataclass. 2023-08-10 17:41:49 -07:00
test_middleware.py python: Delete superfluous parens. 2023-09-13 13:40:19 -07:00
test_migrations.py topic_mentions: Rename wildcard_mentioned to stream_wildcard_mentioned. 2023-11-10 11:06:26 -08:00
test_mirror_users.py i18n: Fix default language for users created via API/LDAP. 2023-10-01 21:10:13 +02:00
test_muted_users.py docs: Fix typos caught by ‘typos’. 2023-09-06 18:59:05 -07:00
test_new_users.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -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 push_notifs: Add endpoint for sending a test notification. 2023-10-12 18:15:00 -07:00
test_outgoing_http.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_outgoing_webhook_interfaces.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -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 mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_push_notifications.py zilencer: Log, and drop, duplicated rows from remote servers. 2023-11-21 11:44:55 -08:00
test_queue.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_queue_worker.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_rate_limiter.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_reactions.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_read_receipts.py codespell: Fix typos caught by codespell. 2023-10-09 11:55:15 -07:00
test_realm.py models: Add can_access_all_users_group setting. 2023-11-13 08:04:45 -08:00
test_realm_domains.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_realm_emoji.py docs: Fix grammar errors found by mwic. 2023-10-09 13:24:09 -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 mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_realm_playgrounds.py realm_playgrounds: Refactor error handling for validation on creation. 2023-07-24 17:40:59 -07:00
test_recipient_parsing.py request: Extract out methods from 'scheduled_messages' to reuse. 2023-10-10 17:15:28 -07:00
test_redis_utils.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_report.py zerver: Remove now-unused report/ endpoints. 2023-05-09 13:16:28 -07:00
test_retention.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -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 request: Extract out methods from 'scheduled_messages' to reuse. 2023-10-10 17:15:28 -07:00
test_scim.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -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
test_service_bot_system.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_sessions.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_settings.py settings: Rename default_view and escape_navigates_to_default_view. 2023-10-26 11:00:12 -07:00
test_signup.py onboarding: Internationalize the introductory messages in streams. 2023-10-26 16:27:35 -07:00
test_slack_importer.py import_util: Remove uuid and uuid_owner_secret from realm dict. 2023-10-18 11:00:49 -07:00
test_slack_message_conversion.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_soft_deactivation.py soft_deactivation: Stop computing "new messages" in Python. 2023-09-29 10:26:04 -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 streams: Send stream deletion events on unsubscribing users. 2023-11-16 13:25:33 -05: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 mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -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 mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_typed_endpoint.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_typing.py typing: Limit typing notifications in large streams. 2023-11-15 09:42:25 -08:00
test_upload.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -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 config_error: Return status code 500. 2023-10-11 17:13:01 -07:00
test_user_groups.py test_user_groups: Fix flaky tests. 2023-11-04 12:46:06 -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 settings: Add automatically follow and unmute topics policy settings. 2023-10-04 13:04:29 -07:00
test_users.py users: Pass bogus data for inaccessible users. 2023-11-13 08:04:45 -08:00
test_validators.py validators: Split out test_validators. 2023-08-11 16:43:12 -07:00
test_webhooks_common.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_widgets.py widgets: Add test for tokenizing widget type on newline. 2023-09-13 12:42:35 -07:00
test_zcommand.py
test_zephyr.py