zulip/zerver/tests
Tim Abbott 24f527cb59 home: Don't send /register response for spectators.
In very large communities, computing page_params can be quite
expensive. Because we've moved the homepage for communities with web
public streams enabled to be the Zulip app, and it's common for
automation to frequently poll the homepage of a Zulip organization,
we'd like to keep those homepages cheap (as the login pages are).

We address this by prototyping something we may end up wanting to do
anyway -- having the web application do a `POST /register` API call in
order to fetch most page_params, and merging those with the mostly
webapp configuration page_params that we leave in the / response for
convenience.

This exact implementation is messy in a few ways:

* We rely on the assumption that ui_init.initialize_everything happens
  before all code that needs to inspect the page_params properties we
  are fetching via /register. This is likely mostly true, but nothing
  in the implementation enforces it.
* The bundle of ~25 keys that are in page_params ideally would be
  considered individually, with some moved to the /register API
  response and perhaps others eliminated or namespaced inside a
  webapp_settings object.
* It's weird to have the spectators network sequence different that
  from logged-in users, and potentially a maintainability risk.
* We might be able to arrange that the initial `/` response be
  cacheable, now that we're no longer embedding our metadata inside
  it. We've made no effort to do that as of yet.

Despite those issues, this commit solves an immediate problem and will
give us helpful experience with a model closer to the one we'll want
in order to happily support a web client that can be run locally
against a production Zulip server's data.

Co-authored-by: Anders Kaseorg <anders@zulip.com>
2022-05-05 15:20:46 -07:00
..
fixtures populate_db: Remove unnecessary pre-population of URL cache. 2022-04-15 14:48:12 -07:00
images emoji: Support animated PNGs. 2022-03-15 12:47:21 -07:00
__init__.py
test_alert_words.py actions: Split out zerver.actions.alert_words. 2022-04-14 17:14:31 -07:00
test_attachments.py migrations: Change realm field to be not null in Attachment. 2022-03-18 12:01:15 -07:00
test_audit_log.py actions: Split out zerver.actions.realm_domains. 2022-04-14 17:14:37 -07:00
test_auth_backends.py invites: Use expiration time in minutes instead of days. 2022-04-20 13:31:37 -07:00
test_bots.py users: Always pass delivery_email in user's own object. 2022-05-04 12:52:43 -07:00
test_cache.py preview: Use cache only as a non-durable cache, not an IPC. 2022-04-15 14:48:12 -07:00
test_compatibility.py python: Reformat with Black 22 (stable). 2022-02-18 18:03:13 -08:00
test_create_video_call.py integrations: Fix BigBlueButton password length. 2022-03-20 16:09:36 -07:00
test_custom_profile_data.py custom_profile_fields: Clarify an external account error message. 2022-05-04 17:57:44 -07:00
test_data_types.py
test_decorators.py home: For web public realms, skip login for spectators. 2022-04-28 12:34:29 -07:00
test_digest.py test_digest: Modernize set literal syntax. 2022-04-27 12:57:49 -07:00
test_docs.py help_docs: Clarify relative link text for Subscribed streams tab. 2022-03-28 15:13:39 -07:00
test_drafts.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
test_email_change.py actions: Split out zerver.actions.realm_settings. 2022-04-14 17:14:37 -07:00
test_email_log.py email_backends: Fix concurrent backend testing for generate_emails. 2022-05-03 08:45:51 -07:00
test_email_mirror.py actions: Split out zerver.actions.realm_settings. 2022-04-14 17:14:37 -07:00
test_email_notifications.py email_notifications: Soft reactivate mentioned users. 2022-04-27 16:43:54 -07:00
test_embedded_bot_system.py tests: Ensure stream senders get a UserMessage row. 2021-12-10 09:40:04 -08:00
test_event_queue.py actions: Split out zerver.actions.streams. 2022-04-14 17:14:35 -07:00
test_event_system.py events: Add support for spectator access to /register. 2022-05-05 15:20:44 -07:00
test_events.py workers: Log the exception if the export fails. 2022-04-28 11:52:47 -07:00
test_example.py email_backends: Fix concurrent backend testing for generate_emails. 2022-05-03 08:45:51 -07:00
test_external.py tests: Remove `client` parameter if test can use default `User-Agent`. 2022-02-24 12:57:18 -08:00
test_github.py downloads: Serve desktop downloads from desktop-download.zulip.com. 2021-08-28 23:08:45 -07:00
test_gitter_importer.py tests: Consistently use assert_length helper. 2021-05-19 11:55:56 -07:00
test_home.py home: Don't send /register response for spectators. 2022-05-05 15:20:46 -07:00
test_hotspots.py actions: Split out zerver.actions.create_user. 2022-04-14 17:14:35 -07:00
test_i18n.py i18n: Add get_browser_language_code function. 2022-04-28 15:03:26 -07:00
test_import_export.py actions: Split out zerver.actions.realm_settings. 2022-04-14 17:14:37 -07:00
test_integrations.py tests: Add a test for fixtures for non-webhook integrations. 2021-04-28 08:16:51 -07:00
test_integrations_dev_panel.py airbrake: Strengthen types using WildValue. 2022-03-15 13:02:02 -07:00
test_internet.py
test_legacy_subject.py tests: Remove `client` parameter if test can use default `User-Agent`. 2022-02-24 12:57:18 -08:00
test_link_embed.py embed_links: Check that the message still exists before proceeding. 2022-05-04 14:45:18 -07:00
test_logging_handlers.py typing: Fix function signatures with django-stubs. 2021-08-20 06:02:55 -07:00
test_management_commands.py actions: Split out zerver.actions.reactions. 2022-04-14 17:14:35 -07:00
test_markdown.py preview: Use cache only as a non-durable cache, not an IPC. 2022-04-15 14:48:12 -07:00
test_mattermost_importer.py tests: Verify emoji codes. 2021-12-06 13:22:47 -08:00
test_message_dict.py tests: Ensure stream senders get a UserMessage row. 2021-12-10 09:40:04 -08:00
test_message_edit.py message_edit: Filter UserMessage better, now that mentions are unneeded. 2022-05-04 14:45:18 -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 Correctly hyphenate “non-”. 2022-04-27 22:10:31 -07:00
test_message_flags.py actions: Split out zerver.actions.message_flags. 2022-04-14 17:14:36 -07:00
test_message_send.py actions: Split out zerver.actions.create_realm. 2022-04-14 17:14:37 -07:00
test_message_topics.py actions: Split out zerver.actions.streams. 2022-04-14 17:14:35 -07:00
test_messages.py actions: Split out zerver.actions.message_send. 2022-04-14 17:14:34 -07:00
test_middleware.py help_docs: Update edit history documentation for messages. 2022-03-25 17:03:53 -07:00
test_migrations.py tests: Mark test_migrations tests to be automatically skipped. 2022-03-07 15:33:29 -08:00
test_mirror_users.py actions: Split out zerver.actions.message_send. 2022-04-14 17:14:34 -07:00
test_muting_topics.py user_topic: Rename topic_mutes.py to user_topics.py. 2022-03-11 14:26:55 -08:00
test_muting_users.py actions: Split out zerver.actions.muted_users. 2022-04-14 17:14:36 -07:00
test_new_users.py actions: Split out zerver.actions.create_user. 2022-04-14 17:14:35 -07:00
test_notification_data.py notifications: Don't enqueue notifications for bots. 2022-01-03 09:55:06 -08:00
test_onboarding.py
test_openapi.py test_openapi: Use Python 3.8 typing.{get_origin,get_args}. 2022-04-27 12:57:49 -07:00
test_outgoing_http.py python: Replace requests.packages.urllib3 alias with urllib3. 2022-01-23 22:14:17 -08:00
test_outgoing_webhook_interfaces.py outgoing webhooks: Fix inconsistencies with Slack's API. 2021-09-23 11:19:20 -07:00
test_outgoing_webhook_system.py actions: Split out zerver.actions.create_user. 2022-04-14 17:14:35 -07:00
test_populate_db.py populate_db: Add support for creating messages older than 5 days ago. 2022-04-25 16:16:15 -07:00
test_presence.py actions: Split out zerver.actions.message_send. 2022-04-14 17:14:34 -07:00
test_push_notifications.py push_notifications: Soft reactivate mentioned users. 2022-04-27 16:43:54 -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 invites: Use expiration time in minutes instead of days. 2022-04-20 13:31:37 -07:00
test_rate_limiter.py tests: Avoid use of Python internal __unittest_skip__ flag. 2022-03-07 16:26:37 -08:00
test_reactions.py actions: Split out zerver.actions.reactions. 2022-04-14 17:14:35 -07:00
test_realm.py backend: Add `org_type` to realm settings updates and events. 2022-04-26 16:29:12 -07:00
test_realm_domains.py actions: Split out zerver.actions.create_realm. 2022-04-14 17:14:37 -07:00
test_realm_emoji.py actions: Split out zerver.actions.create_realm. 2022-04-14 17:14:37 -07:00
test_realm_export.py test_classes: Extract assert_streaming_content helper. 2022-01-21 13:37:26 -08:00
test_realm_linkifiers.py linkifiers: Support URL percent-encoded bytes. 2021-10-22 13:00:20 -07:00
test_realm_playgrounds.py actions: Split out zerver.actions.realm_playgrounds. 2022-04-14 17:14:30 -07:00
test_redis_utils.py
test_report.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
test_retention.py actions: Split out zerver.actions.create_realm. 2022-04-14 17:14:37 -07:00
test_rocketchat_importer.py tests: Verify emoji codes. 2021-12-06 13:22:47 -08:00
test_scim.py actions: Split out zerver.actions.user_settings. 2022-04-14 17:14:34 -07:00
test_send_email.py send_email: Only warn if EMAIL_HOST_PASSWORD is unset, not "". 2022-04-12 16:41:27 -07:00
test_service_bot_system.py actions: Split out zerver.actions.create_user. 2022-04-14 17:14:35 -07:00
test_sessions.py home: For web public realms, skip login for spectators. 2022-04-28 12:34:29 -07:00
test_settings.py CVE-2021-3967: Only regenerate the API key by authing with the old key. 2022-02-25 14:00:52 -08:00
test_signup.py users: Always pass delivery_email in user's own object. 2022-05-04 12:52:43 -07:00
test_slack_importer.py import_utils: Fix history_public_to_subscribers being set incorrectly. 2022-04-27 12:08:01 -07:00
test_slack_message_conversion.py tests: Consistently use assert_length helper. 2021-05-19 11:55:56 -07:00
test_soft_deactivation.py actions: Split out zerver.actions.alert_words. 2022-04-14 17:14:31 -07:00
test_subdomains.py subdomains: Extend "static" to include resources hosted on S3. 2021-06-08 15:28:10 -07:00
test_submessage.py actions: Split out zerver.actions.submessage. 2022-04-14 17:14:30 -07:00
test_subs.py Correctly hyphenate “non-”. 2022-04-27 22:10:31 -07:00
test_templates.py markdown/tabbed_sections: Raise exception for missing tab name. 2021-10-01 16:25:17 -07:00
test_thumbnail.py Correctly hyphenate “non-”. 2022-04-27 22:10:31 -07:00
test_timeout.py timeout: Add test coverage. 2022-04-07 17:26:01 -07:00
test_timestamp.py docs: Add missing space in “time zone”. 2022-02-24 14:05:12 -08:00
test_timezone.py docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
test_tornado.py requirements: Upgrade to Tornado 6. 2022-05-02 17:41:49 -07:00
test_transfer.py actions: Split out zerver.actions.realm_emoji. 2022-04-14 17:14:31 -07:00
test_tutorial.py actions: Split out zerver.actions.message_send. 2022-04-14 17:14:34 -07:00
test_type_debug.py
test_typing.py typing_notifications: Make privacy settings functional. 2021-10-07 17:39:22 -07:00
test_upload.py Correctly hyphenate “non-”. 2022-04-27 22:10:31 -07:00
test_urls.py home: For web public realms, skip login for spectators. 2022-04-28 12:34:29 -07:00
test_user_groups.py tests: Add checks for user groups in different realms. 2022-04-27 14:17:52 -07:00
test_user_status.py user_status: Add backend changes to support status emoji. 2021-07-27 17:57:15 -07:00
test_users.py events: Pass an explicit realm to do_events_register. 2022-05-05 15:17:07 -07:00
test_webhooks_common.py actions: Split out zerver.actions.streams. 2022-04-14 17:14:35 -07:00
test_widgets.py Correctly hyphenate “non-”. 2022-04-27 22:10:31 -07:00
test_zcommand.py zcommand: Replace "mode" with "theme" in the returned message. 2021-11-22 14:59:16 -08:00
test_zephyr.py docs: Add missing space to compound verbs “log in”, “set up”, etc. 2021-04-26 09:31:08 -07:00