zulip/zerver/tests
Sahil Batra b44d30add7 events: Optimize computing can_create_streams and related fields.
Currently, for computing fields like can_create_public_streams
and can_create_private_steams fields, is_user_in_group is called
to check whether the user is part of the group which has the
permission. This means that there will be one DB query for each
field.

To optimize this, we now first fetch all the groups that the
user is member of, including the anonymous groups which are
used for settings, such that we can then just check whether
the user is part of the group which has the permission meaning
we would need only one query to compute all the fields.

This would be helpful when settings for other similar fields
will also be migrated to groups framework.
2024-06-24 10:00:08 -07:00
..
fixtures test_fixtures: Add 'message_link_test_cases' test fixture. 2024-06-17 10:42:32 -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 tests: Add a helper function to create anonymous groups. 2024-05-28 07:24:07 -07:00
test_auth_backends.py thumbnailing: Move resizing functions into zerver.lib.thumbnail. 2024-06-20 23:06:08 -04:00
test_bots.py users: Migrate to typed_endpoint. 2024-06-06 16:50:56 -07:00
test_cache.py models: Extract zerver.models.realms. 2023-12-16 22:08:44 -08:00
test_compatibility.py python: Reformat with Ruff formatter. 2024-02-29 17:07:16 -08:00
test_create_video_call.py video_calls: Add default password to zoom meetings. 2024-04-12 08:49:08 -07:00
test_custom_profile_data.py custom_profile: Convert to typed_endpoint. 2024-06-19 18:29:28 -07:00
test_data_types.py
test_decorators.py do_deactivate_realm: Add deactivation_reason kwarg. 2024-05-19 23:07:28 -07:00
test_delete_unclaimed_attachments.py python: Mark regexes as raw strings. 2024-04-26 12:30:31 -07:00
test_digest.py onboarding: Replace channel messages in new organizations. 2024-05-09 14:05:35 -07:00
test_docs.py hello: Redesign landing page. 2024-06-02 21:45:37 -07:00
test_drafts.py i18n: Update translated errors for stream to channel rename. 2024-04-24 14:35:05 -07:00
test_email_change.py do_deactivate_realm: Add deactivation_reason kwarg. 2024-05-19 23:07:28 -07:00
test_email_log.py invites: Lock the realm when determining invitation counts. 2024-05-02 14:23:04 -07:00
test_email_mirror.py do_deactivate_realm: Add deactivation_reason kwarg. 2024-05-19 23:07:28 -07:00
test_email_notifications.py models: Extract zerver.models.realms. 2023-12-16 22:08:44 -08:00
test_embedded_bot_system.py models: Extract zerver.models.bots. 2023-12-16 22:08:44 -08:00
test_event_queue.py message_send: Update do_send_messages codepath to send event on commit. 2024-05-19 23:18:43 -07:00
test_event_system.py events: Optimize computing can_create_streams and related fields. 2024-06-24 10:00:08 -07:00
test_events.py realm: Remove create_private_stream_policy setting. 2024-06-20 15:48:14 -07:00
test_example.py docs: Update Django links to our current version. 2024-05-24 10:18:37 -07:00
test_external.py push_notifs: Rename PushDeviceToken.GCM to FCM. 2024-06-17 18:22:59 -07:00
test_github.py
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 events: Optimize computing can_create_streams and related fields. 2024-06-24 10:00:08 -07:00
test_i18n.py invites: Lock the realm when determining invitation counts. 2024-05-02 14:23:04 -07:00
test_import_export.py presence: Handle PresenceSequence in the export/import system. 2024-06-02 22:08:28 -07:00
test_integrations.py refactor: Relocate screenshots scripts to new tools/screenshots dir. 2024-05-14 16:17:44 -07:00
test_integrations_dev_panel.py models: Extract zerver.models.realms. 2023-12-16 22:08:44 -08:00
test_internet.py
test_invite.py realm: Use enums for accessing setting values. 2024-05-22 17:20:37 -07:00
test_legacy_subject.py
test_link_embed.py message_send: Update do_send_messages codepath to send event on commit. 2024-05-19 23:18:43 -07:00
test_management_commands.py models: Extract zerver.models.streams. 2023-12-16 22:08:44 -08:00
test_markdown.py streams-settings-overlay: Update hash for stream to channel rename. 2024-04-30 14:44:12 -07:00
test_mattermost_importer.py presence: Handle PresenceSequence in the export/import system. 2024-06-02 22:08:28 -07:00
test_message_delete.py realm: Use enums for accessing setting values. 2024-05-22 17:20:37 -07:00
test_message_dict.py message: Merge unnecessary cache_transformer step. 2024-02-14 12:27:03 -08:00
test_message_edit.py tests: Add a helper function to create anonymous groups. 2024-05-28 07:24:07 -07:00
test_message_edit_notifications.py message_edit: Update do_update_message codepath to send event on commit. 2024-05-24 10:17:35 -07:00
test_message_fetch.py narrow: Use NarrowParameter instead of dictionary. 2024-06-20 12:22:37 -07:00
test_message_flags.py streams: Update translated errors for stream to channel rename. 2024-04-24 14:35:05 -07:00
test_message_move_stream.py realm: Use enums for accessing setting values. 2024-05-22 17:20:37 -07:00
test_message_move_topic.py topic: Add resolve topic undo grace period. 2024-06-10 13:34:23 -07:00
test_message_notification_emails.py soft_reactivate: Soft reactivate if group mention has < 12 members. 2024-04-24 17:40:37 -07:00
test_message_send.py tests: Add a helper function to create anonymous groups. 2024-05-28 07:24:07 -07:00
test_message_topics.py streams: Update translated errors for stream to channel rename. 2024-04-24 14:35:05 -07:00
test_messages.py models: Extract zerver.models.recipients. 2023-12-16 22:08:44 -08:00
test_middleware.py models: Replace realm.uri with realm.url. 2024-05-08 11:12:43 -07:00
test_migrations.py CVE-2024-27286: Delete dangling UserMessage rows. 2024-03-19 18:22:24 -04:00
test_mirror_users.py models: Extract zerver.models.clients. 2023-12-16 22:08:44 -08:00
test_muted_users.py message_edit: Update do_update_message codepath to send event on commit. 2024-05-24 10:17:35 -07:00
test_new_users.py onboarding: Remove 'core team' private channel. 2024-05-09 14:05:35 -07:00
test_notification_data.py models: Extract zerver.models.scheduled_jobs. 2023-12-16 22:08:44 -08:00
test_onboarding.py
test_onboarding_steps.py compose: Show a one-time banner for jump to sent message conversation. 2024-06-05 09:31:17 -07:00
test_openapi.py api_docs: Document "/invites/{invite_id}/resend" endpoint. 2024-06-10 11:48:39 -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 message: Split MessageDict and friends into its own file. 2024-02-14 12:27:03 -08:00
test_outgoing_webhook_system.py message-send: Update translated errors for stream to channel rename. 2024-04-24 14:35:05 -07:00
test_populate_db.py
test_presence.py presence: Improve INSERT conflict handling in do_update_user_presence. 2024-06-16 11:57:47 -07:00
test_push_notifications.py test_push_notifs: Adjust .filter() in test_analytics_api. 2024-06-23 07:44:11 -07:00
test_queue.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_queue_worker.py invites: Remove invites worker, make confirmation object in-process. 2024-05-02 14:23:04 -07:00
test_rate_limiter.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_reactions.py message: Split MessageDict and friends into its own file. 2024-02-14 12:27:03 -08:00
test_read_receipts.py codespell: Fix typos caught by codespell. 2023-10-09 11:55:15 -07:00
test_realm.py realm: Remove create_private_stream_policy setting. 2024-06-20 15:48:14 -07:00
test_realm_domains.py models: Extract zerver.models.realms. 2023-12-16 22:08:44 -08:00
test_realm_emoji.py thumbnailing: Move resizing functions into zerver.lib.thumbnail. 2024-06-20 23:06:08 -04:00
test_realm_export.py models: Replace realm.uri with realm.url. 2024-05-08 11:12:43 -07:00
test_realm_linkifiers.py requirements: Upgrade Python requirements. 2024-01-29 10:41:54 -08:00
test_realm_playgrounds.py models: Extract zerver.models.realms. 2023-12-16 22:08:44 -08:00
test_recipient_parsing.py i18n: Update translated errors for stream to channel rename. 2024-04-24 14:35:05 -07:00
test_redis_utils.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
test_report.py
test_retention.py retention: Add .restored_timestamp to ArchiveTransaction. 2024-05-09 10:54:44 -07:00
test_rocketchat_importer.py zulip_update: Send group DM for realm imported from other product. 2024-05-08 17:05:59 -07:00
test_scheduled_messages.py python: Mark regexes as raw strings. 2024-04-26 12:30:31 -07:00
test_scim.py scim: Add config option to disable initial streams for guests. 2024-04-11 12:28:26 -07:00
test_send_email.py
test_server_settings.py
test_service_bot_system.py storage: Migrate to typed_endpoint. 2024-06-14 11:24:36 -07:00
test_sessions.py ruff: Fix PLW0108 Lambda may be unnecessary. 2024-03-01 09:30:04 -08:00
test_settings.py settings: Add new web information density settings. 2024-03-27 12:58:32 -07:00
test_signup.py analytics: Remove `active_users` and `active_users_log` metrics. 2024-06-03 12:35:35 -07:00
test_slack_importer.py zulip_update: Send group DM for realm imported from other product. 2024-05-08 17:05:59 -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 mentions: Update backend tests to not use only "stream" wildcard. 2024-04-04 11:16:07 -07:00
test_subdomains.py models: Replace realm.uri with realm.url. 2024-05-08 11:12:43 -07:00
test_submessage.py message: Merge unnecessary cache_transformer step. 2024-02-14 12:27:03 -08:00
test_subs.py streams: Check permission to create channels based on group setting. 2024-06-20 15:48:14 -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 timeout: Rename to unsafe_timeout. 2024-04-18 11:50:38 -07:00
test_timestamp.py
test_timezone.py ruff: Fix UP036 Version block is outdated for minimum Python version. 2024-04-01 18:32:52 -07:00
test_tornado.py python: Consistently use from…import for urllib.parse. 2023-12-05 13:03:07 -08:00
test_transfer.py thumbnailing: Move resizing functions into zerver.lib.thumbnail. 2024-06-20 23:06:08 -04:00
test_tutorial.py help: Move 'channels-and-topics' to 'introduction-to-topics'. 2024-05-07 16:51:48 -07:00
test_typed_endpoint.py python: Add missing TypeAlias annotations. 2024-04-01 16:19:56 -07:00
test_typed_endpoint_validators.py users: Migrate to typed_endpoint. 2024-06-06 16:50:56 -07:00
test_typing.py typing: Migrate to typed_endpoint. 2024-06-14 10:58:35 -07:00
test_upload.py thumbnailing: Move resizing functions into zerver.lib.thumbnail. 2024-06-20 23:06:08 -04:00
test_upload_local.py thumbnailing: Move resizing functions into zerver.lib.thumbnail. 2024-06-20 23:06:08 -04:00
test_upload_s3.py thumbnailing: Move resizing functions into zerver.lib.thumbnail. 2024-06-20 23:06:08 -04:00
test_url_decoding.py url_decoding: Add 'is_same_server_message_link' function. 2024-06-17 10:42:32 -07:00
test_urls.py compose_validate: Remove autosubscribe feature. 2024-03-28 09:06:48 -07:00
test_user_groups.py user_groups: Add server level setting disallow anonymous groups for settings. 2024-06-03 09:45:26 -07:00
test_user_status.py api: Add "users/<int:user_id>/status" endpoint. 2024-05-22 18:07:22 -07:00
test_user_topics.py exceptions: Add IncompatibleParametersError as a JsonableError. 2024-04-29 16:58:47 -07:00
test_users.py analytics: Remove `active_users` and `active_users_log` metrics. 2024-06-03 12:35:35 -07:00
test_validators.py ruff: Fix E226 Missing whitespace around arithmetic operator. 2024-03-01 09:30:04 -08:00
test_webhooks_common.py webhooks: Rename stream_name to channel_name arg. 2024-05-04 19:01:51 -07:00
test_widgets.py todo_widget: Allow tasks to be added through `/todo` command. 2024-04-13 21:56:33 -07:00
test_zcommand.py
test_zephyr.py models: Extract zerver.models.realms. 2023-12-16 22:08:44 -08:00
test_zulip_update_announcements.py remove_single_newlines: Fix regex to parse list syntax correctly. 2024-05-30 11:32:52 -07:00