zulip/zerver/tests
Mateusz Mandera e51cc28c66
Some checks are pending
API Documentation Update Check / check-feature-level-updated (push) Waiting to run
API Documentation Update Check / notify-if-api-docs-changed (push) Blocked by required conditions
Code scanning / CodeQL (push) Waiting to run
Zulip production suite / Ubuntu 22.04 production build (push) Waiting to run
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm, --test-custom-db, Debian 12 production install with custom db name and user, bookworm) (push) Blocked by required conditions
Zulip production suite / ${{ matrix.name }} (zulip/ci:jammy, , Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga, jammy) (push) Blocked by required conditions
Zulip production suite / ${{ matrix.name }} (zulip/ci:noble, , Ubuntu 24.04 production install, noble) (push) Blocked by required conditions
Zulip production suite / ${{ matrix.name }} (zulip/ci:resolute, , Ubuntu 26.04 production install, resolute) (push) Blocked by required conditions
Zulip production suite / ${{ matrix.name }} (zulip/ci:trixie, , Debian 13 production install, trixie) (push) Blocked by required conditions
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm-7.0, 7.0 Version Upgrade, bookworm) (push) Blocked by required conditions
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm-8.0, 8.0 Version Upgrade, bookworm) (push) Blocked by required conditions
Zulip production suite / ${{ matrix.name }} (zulip/ci:jammy-6.0, 6.0 Version Upgrade, jammy) (push) Blocked by required conditions
Zulip production suite / ${{ matrix.name }} (zulip/ci:noble-10.0, 10.0 Version Upgrade, noble) (push) Blocked by required conditions
Zulip production suite / ${{ matrix.name }} (zulip/ci:noble-9.0, 9.0 Version Upgrade, noble) (push) Blocked by required conditions
Zulip production suite / ${{ matrix.name }} (zulip/ci:resolute-12.0, 12.0 Version Upgrade, resolute) (push) Blocked by required conditions
Zulip production suite / ${{ matrix.name }} (zulip/ci:trixie-11.0, 11.0 Version Upgrade, trixie) (push) Blocked by required conditions
Zulip production suite / Required jobs (push) Blocked by required conditions
Zulip CI / ${{ matrix.name }} (zulip/ci:bookworm, true, false, Debian 12 (Python 3.11, backend + documentation), bookworm) (push) Waiting to run
Zulip CI / ${{ matrix.name }} (zulip/ci:jammy, false, true, Ubuntu 22.04 (Python 3.10, backend + frontend), jammy) (push) Waiting to run
Zulip CI / ${{ matrix.name }} (zulip/ci:noble, false, false, Ubuntu 24.04 (Python 3.12, backend), noble) (push) Waiting to run
Zulip CI / ${{ matrix.name }} (zulip/ci:resolute, false, false, Ubuntu 26.04 (Python 3.14, backend), resolute) (push) Waiting to run
Zulip CI / ${{ matrix.name }} (zulip/ci:trixie, false, false, Debian 13 (Python 3.13, backend), trixie) (push) Waiting to run
Zulip CI / Required jobs (push) Blocked by required conditions
registration: Don't ask externally-verified users for LDAP password.
The registration form prompted users found in the LDAP directory for
their "LDAP/Active Directory password" even when their identity was
already verified by an external authentication method -- the case where
the previous commit made account creation possible. Any value entered
was discarded: with password_required=False on the PreregistrationUser,
the server marks the form field not required and passes password=None to
authentication regardless.

The existing tests couldn't catch this, since they run without
TERMS_OF_SERVICE_VERSION and with an LDAP-validated name, causing the
registration form to be skipped entirely; nor did the registration
helper's id_password assertion match the LDAP field's ldap-password id.
2026-06-06 17:23:30 +08:00
..
fixtures test_slack_importer: Re-focus Slack thread conversion tests. 2026-06-02 09:49:17 +05:30
images thumbnail: Show the first few frames of large animated images. 2025-01-15 09:56:19 -08:00
__init__.py
test_alert_words.py alert_words: Use bulk query for case-insensitive word deletion. 2026-04-05 14:28:51 -07:00
test_attachments.py attachments: Removing an Attachment should remove its ImageAttachment. 2026-01-12 16:21:43 -08:00
test_audit_log.py upload: Add wrappers for externally-used backend methods. 2026-04-18 08:17:13 -07:00
test_auth_backends.py registration: Don't ask externally-verified users for LDAP password. 2026-06-06 17:23:30 +08:00
test_bots.py demo-orgs: Restrict bot creation until owner has set an email. 2026-04-05 11:04:56 -07:00
test_cache.py cache: Do not fail the request on cache-set failures. 2025-03-05 09:48:58 -08:00
test_channel_access.py streams: Fix checking metadata access for web-public streams. 2026-02-17 11:15:54 -08:00
test_channel_creation.py tests: Add set_user_role helper method to ZulipTestCase. 2025-12-12 09:31:13 -08:00
test_channel_fetch.py tests: Check for warnings from OpenAPI deprecated parameters. 2026-04-17 15:04:02 -07:00
test_channel_folders.py channel-folders: Send event when reordering channel folders. 2025-08-12 11:17:17 -07:00
test_channel_permissions.py tests: Add set_user_role helper method to ZulipTestCase. 2025-12-12 09:31:13 -08:00
test_checks.py checks: Add basic checks that upload backends are correctly configured. 2026-05-09 23:18:47 -07:00
test_compatibility.py
test_create_video_call.py video_calls: Fix an error name and a typo in the docs. 2026-04-23 17:14:36 -07:00
test_custom_profile_data.py custom_profile_fields: Refactor internal constants. 2026-04-13 09:14:53 -07:00
test_decorators.py webhook/jira: Rename fixture files. 2026-04-11 20:29:31 -07:00
test_default_channels.py tests: Add set_user_role helper method to ZulipTestCase. 2025-12-12 09:31:13 -08:00
test_delete_unclaimed_attachments.py upload: Make upload backend instantiation lazy. 2026-04-18 08:17:13 -07:00
test_devices.py push_notifications: Delete E2EE device records on API key regeneration. 2026-04-17 15:52:29 -07:00
test_digest.py digest: Replace dict[str, Any] with DigestTeaserData dataclass. 2026-05-03 09:42:33 -07:00
test_docs.py portico: Describe the Zulip Foundation and current team. 2026-05-25 12:01:20 +05:30
test_drafts.py tests: Fix typo in drafts test comment. 2025-12-29 10:06:06 -08:00
test_e2ee_push_notifications.py push_notifications: Skip legacy notifications when E2EE is required. 2026-05-25 13:25:05 +05:30
test_email_change.py test-helpers: Add helper to create a demo organization for a test. 2026-04-05 11:04:56 -07:00
test_email_log.py send_email: Skip the ScheduledEmail table for 0-delay emails. 2025-03-04 16:09:25 -08:00
test_email_mirror.py email_mirror: Add subject to body when truncated 2026-05-03 09:54:14 -07:00
test_email_notifications.py markdown: Move convert_html_to_markdown to a new library file. 2026-04-18 19:07:09 -07:00
test_embedded_bot_system.py settings: Remove PREFER_DIRECT_MESSAGE_GROUP. 2026-04-15 15:23:47 -07:00
test_event_queue.py register: Improve idle_queue_timeout and document. 2026-03-26 15:55:44 -07:00
test_event_system.py realm_emoji: Add a capability for emoji /add and /update_one. 2026-04-16 20:44:57 -07:00
test_events.py events: Handle device events for devices missing from initial state. 2026-05-29 15:43:22 +05:30
test_example.py settings: Remove PREFER_DIRECT_MESSAGE_GROUP. 2026-04-15 15:23:47 -07:00
test_exception_filter.py exception-reporter: Add ZulipExceptionReporterFilter with POST masking and settings removal. 2025-12-16 12:31:04 -08:00
test_external.py requirements: Switch from circuitbreaker to pybreaker. 2026-04-05 10:43:07 -07:00
test_github.py apps: Provide arm64 app build by default for macOS. 2025-03-28 16:45:07 -07:00
test_handle_push_notification.py migrations: Drop UserProfile.recipient and personal recipient rows. 2026-04-15 15:24:10 -07:00
test_health.py
test_home.py home: Apply narrow_stream desktop-notification override on the client. 2026-05-20 11:40:32 +05:30
test_i18n.py tests: Use mocked language list to test languages without translation. 2026-01-07 15:28:42 -08:00
test_import_export.py export: Update status of RealmExport rows while exporting. 2026-06-01 19:06:35 +05:30
test_integrations_dev_panel.py
test_integrations.py integrations: Ignore disabled integrations in screenshot config test. 2026-03-24 16:36:32 -07:00
test_internet.py
test_invite.py settings: Remove PREFER_DIRECT_MESSAGE_GROUP. 2026-04-15 15:23:47 -07:00
test_legacy_subject.py
test_link_embed.py message_edit: Compute topic_participant_user_ids for embeds. 2026-03-12 10:49:58 -07:00
test_llms_txt.py llms_txt: Recommend channel IDs in narrow operands for API requests. 2026-05-19 17:58:57 +05:30
test_management_commands.py custom_emails: Add campaign_name to send_custom_email. 2026-04-05 21:31:41 -07:00
test_markdown_thumbnail.py thumbnail: Improve logging for thumbnail failure case. 2026-01-12 16:21:43 -08:00
test_markdown.py markdown: Skip Dropbox preview fetch when previews are disabled. 2026-05-25 20:57:46 +05:30
test_mattermost_importer.py mattermost: Check whether attachment files actually exist. 2026-05-19 10:47:27 -04:00
test_message_delete.py settings: Remove PREFER_DIRECT_MESSAGE_GROUP. 2026-04-15 15:23:47 -07:00
test_message_dict.py message_cache: Remove is_incoming_1_to_1 recipient_id substitution. 2026-04-15 15:23:49 -07:00
test_message_edit_notifications.py test_push_notification: Rework using Device model. 2026-02-17 17:33:19 -08:00
test_message_edit.py CVE-2026-40300: Use allowlist for edit history moves-only visibility. 2026-04-26 21:48:16 -04:00
test_message_fetch.py tests: Remove vestigal overrides for PREFER_DIRECT_MESSAGE_GROUP. 2026-05-08 19:01:28 -07:00
test_message_flags.py tests: Check for warnings from OpenAPI deprecated parameters. 2026-04-17 15:04:02 -07:00
test_message_move_stream.py message-move: Improve time limit error for "change_all" moves. 2026-05-25 19:42:54 +05:30
test_message_move_topic.py message-move: Improve time limit error for "change_all" moves. 2026-05-25 19:42:54 +05:30
test_message_notification_emails.py email_notifications: Convert inline ![]() images to links. 2026-05-29 13:35:26 +05:30
test_message_report.py settings: Remove PREFER_DIRECT_MESSAGE_GROUP. 2026-04-15 15:23:47 -07:00
test_message_send.py migrations: Drop UserProfile.recipient and personal recipient rows. 2026-04-15 15:24:10 -07:00
test_message_summary.py message_summary: Replace litellm with the OpenAI Python SDK. 2026-05-07 16:18:53 -07:00
test_message_topics.py CVE-2026-25742: Restrict topic access when spectator access is disabled. 2026-03-31 14:25:04 -04:00
test_messages.py direct_messages: Always use DM groups if they exist. 2026-04-05 10:54:59 -07:00
test_microsoft_teams_importer.py import_realm: Fix third-party messages' has_image and has_link. 2026-05-27 13:27:33 +05:30
test_middleware.py upload: Add wrappers for externally-used backend methods. 2026-04-18 08:17:13 -07:00
test_migration_status.py migration_status: Refactor parse_migration_status. 2025-03-20 10:57:54 -07:00
test_migrations.py
test_mirror_users.py zephyr: Remove Zephyr mirroring support. 2025-09-16 11:18:18 -07:00
test_muted_users.py variables: Correct instances of misspelled 'message'. 2025-04-16 13:17:19 -07:00
test_navigation_views.py navigation_views: Add backend for navigation views in left sidebar. 2025-05-23 16:25:08 -07:00
test_new_users.py user_agent: Parse User-Agent string using ua_parser library. 2026-04-14 10:51:30 -07:00
test_notification_data.py push_notifications: Skip enqueuing notif for users without push devices. 2025-09-17 12:32:49 -07:00
test_onboarding_steps.py onboarding: Replace dict[str, Any] with dataclass. 2026-03-09 09:36:59 -07:00
test_onboarding.py
test_openapi.py api-docs: Fix having multiple curl auth line notes in examples. 2026-04-24 15:32:49 -07:00
test_outgoing_http.py outgoing_http: Don't try to use non-existent Smokescreen in dev. 2026-03-10 21:56:43 -07:00
test_outgoing_webhook_interfaces.py outgoing_webhook: Serialize widget_content to JSON string. 2026-04-23 09:57:46 -07:00
test_outgoing_webhook_system.py outgoing_webhook: Serialize widget_content to JSON string. 2026-04-23 09:57:46 -07:00
test_parallel.py test_parallel: Swap to barriers instead of a crude sleep(). 2025-12-08 09:39:37 -08:00
test_populate_db.py populate_db: Fix -o flag not spreading messages across days. 2026-03-26 16:17:50 -07:00
test_presence.py presence: Restore legacy fields on single-user presence endpoint. 2026-04-24 16:49:56 -07:00
test_push_notifications.py tests: Remove vestigal overrides for PREFER_DIRECT_MESSAGE_GROUP. 2026-05-08 19:01:28 -07:00
test_push_registration.py push_registration: Match APNs tokens case-insensitively on cleanup. 2026-04-23 17:39:18 -07:00
test_queue_worker.py push_registration: Rework using Device model. 2026-02-17 17:33:19 -08:00
test_queue.py ruff: Fix RUF059 Unpacked variable is never used. 2025-09-30 16:47:54 -07:00
test_rate_limiter.py rate_limiter: Remove Tornado in-memory backend, use Redis. 2026-03-25 11:55:48 -07:00
test_reactions.py reaction: Remove user object from reaction events. 2026-04-11 22:26:41 -05:00
test_read_receipts.py
test_realm_creation.py settings: Remove PREFER_DIRECT_MESSAGE_GROUP. 2026-04-15 15:23:47 -07:00
test_realm_domains.py tests: Add set_user_role helper method to ZulipTestCase. 2025-12-12 09:31:13 -08:00
test_realm_emoji.py emoji: Make RealmEmoji.author non-nullable. 2026-01-09 12:17:57 -08:00
test_realm_export.py export: Update status of RealmExport rows while exporting. 2026-06-01 19:06:35 +05:30
test_realm_linkifiers.py linkifiers: Handle optional groups in expand_reverse_template. 2026-03-23 12:29:53 -07:00
test_realm_playgrounds.py playgrounds: Validate language input for spaces and reserved keywords. 2026-03-05 20:23:08 -08:00
test_realm.py integrations: Add backend for Webex video call integration. 2026-04-18 16:11:00 -07:00
test_recipient_parsing.py scheduled_messages: Migrate to typed_endpoint. 2024-08-20 10:03:22 -07:00
test_redis_utils.py
test_reminders.py test_reminders: Extract helper for silently-dropped-reminder asserts. 2026-04-24 16:50:15 -07:00
test_report.py
test_retention.py retention: Send events about message deletion via retention policy. 2026-01-21 09:45:49 -08:00
test_rocketchat_importer.py data_import: Stop creating personal recipients during import. 2026-04-15 15:23:49 -07:00
test_saved_snippets.py api: Update saved snippets edit endpoint. 2025-03-17 11:03:25 -07:00
test_scheduled_messages.py scheduled_messages: Skip failure DM for cross-realm system bot senders. 2026-04-24 15:04:20 -07:00
test_scim.py sync: Truncate simple text custom profile field values when too long. 2026-04-11 21:02:39 -07:00
test_send_email.py send_email: Strip CR in addition to LF from rendered subject. 2026-06-01 00:57:54 +08:00
test_server_settings.py
test_service_bot_system.py bots: Restrict bot_storage endpoints to bot accounts. 2026-04-22 22:59:16 -07:00
test_sessions.py
test_settings.py rate_limiter: Update Redis rate limiter to use in-server GCRA. 2026-03-25 11:55:48 -07:00
test_signup.py create_user: Stop creating personal recipients. 2026-04-15 15:23:49 -07:00
test_slack_importer.py slack_importer: Add cross-linking message for Slack thread. 2026-06-02 09:49:17 +05:30
test_slack_message_conversion.py ruff: Fix RUF059 Unpacked variable is never used. 2025-09-30 16:47:54 -07:00
test_soft_deactivation.py populate_db: Add an imported user in development database. 2026-03-04 09:24:10 -08:00
test_subdomains.py upload: Add wrappers for externally-used backend methods. 2026-04-18 08:17:13 -07:00
test_submessage.py queue: Rename queue_json_publish to queue_json_publish_rollback_unsafe. 2024-12-06 09:23:02 -08:00
test_subs.py migrations: Drop UserProfile.recipient and personal recipient rows. 2026-04-15 15:24:10 -07:00
test_subscription_settings.py tests: Move subscription properties test to new file. 2025-06-11 15:41:50 -07:00
test_templates.py tabbed-instructions: Delete activate_correct_tab. 2025-09-04 09:37:34 -07:00
test_thumbnail.py upload: Add wrappers for externally-used backend methods. 2026-04-18 08:17:13 -07:00
test_timeout.py
test_timestamp.py requirements: Remove dateutil. 2026-05-10 00:21:37 -07:00
test_timezone.py requirements: Remove dateutil. 2026-05-10 00:21:37 -07:00
test_topic_link_util.py url_encoding: Encode * character so that it skips strong em markdown. 2026-02-24 16:50:19 -08:00
test_tornado.py test_tornado: Add nocoverage for task cleanup. 2025-02-14 17:04:51 -08:00
test_transfer.py avatar: Add support to generate avatar using Jdenticon. 2026-02-16 23:16:35 -08:00
test_tusd.py upload: Add wrappers for externally-used backend methods. 2026-04-18 08:17:13 -07:00
test_tutorial.py settings: Remove PREFER_DIRECT_MESSAGE_GROUP. 2026-04-15 15:23:47 -07:00
test_typed_endpoint_validators.py zerver: Migrate some files to typed_endpoint. 2024-07-20 15:46:48 -07:00
test_typed_endpoint.py ruff: Enable B008 function-call-in-default-argument. 2024-11-10 22:43:55 -08:00
test_typing.py settings: Remove PREFER_DIRECT_MESSAGE_GROUP. 2026-04-15 15:23:47 -07:00
test_upload_local.py upload: Add wrappers for externally-used backend methods. 2026-04-18 08:17:13 -07:00
test_upload_s3.py upload: Make upload backend instantiation lazy. 2026-04-18 08:17:13 -07:00
test_upload.py requirements: Upgrade Python requirements. 2026-04-17 15:04:02 -07:00
test_url_decoding.py url_decoding: Add parse_narrow_url. 2025-02-24 15:37:40 -08:00
test_url_encoding.py internal_url: Encode characters which get encoded by urllib. 2026-02-24 16:50:19 -08:00
test_urls.py portico: Remove redundant sidebar elements from API pages. 2026-04-07 14:12:02 -07:00
test_user_groups.py user_groups: Allow bots to access all user_groups API endpoints. 2026-04-24 14:23:37 -07:00
test_user_status.py user_status: Allow bots with role=admin to change user status. 2026-03-03 17:21:44 -08:00
test_user_topics.py tests: Pass update_fields to all stream.save(). 2025-04-15 10:28:18 -07:00
test_users.py migrations: Drop UserProfile.recipient and personal recipient rows. 2026-04-15 15:24:10 -07:00
test_validators.py validator: Add check_iso_datetime. 2026-01-02 15:41:17 -08:00
test_webhooks_common.py webhooks: Add helper function to get data from external services. 2026-04-14 15:58:34 -07:00
test_welcome_bot_custom_message.py welcome-bot: Only send message with custom text when testing. 2025-08-12 00:12:52 -07:00
test_widgets.py
test_zcommand.py user_settings: Add support to bulk change user setting. 2026-01-02 08:21:54 -08:00
test_zilencer_analytics.py stripe: Move get_next_billing_cycle out of BillingSession class. 2026-04-23 17:17:57 -07:00
test_zulip_update_announcements.py settings: Remove PREFER_DIRECT_MESSAGE_GROUP. 2026-04-15 15:23:47 -07:00