zulip/zerver/lib
Zixuan James Li eebe46ad1c test_classes: Do not necessary wrap test cases in a transaction.
By relocating helper methods into a mixin class, we can be more flexible
with managing transactions in test cases, without always forcing the
django.test.TestCase behavior of always putting the test case into an
atomic transaction.

We include a check for side effects in ZulipTransactionTestCase. It only
checks for the set of row ids in all tables before and after each test.
It is not a comprehensive check for side effects, but should be
sufficient for the basics without much performance overhead.
2023-07-06 11:44:50 -07:00
..
markdown mention: Replace 'wildcards' with 'stream_wildcards'. 2023-07-03 22:03:17 -07:00
upload upload: Provide a default upload file name, rather than 500. 2023-07-03 21:51:58 -07:00
url_preview Remove statsd support. 2023-04-25 19:58:16 -07:00
webhooks integrations: Remove label URL from GitHub issue labeled notifications. 2023-06-29 13:17:30 -07:00
__init__.py
addressee.py zerver: Update comments with "private message" or "PM". 2023-06-23 11:24:13 -07:00
alert_words.py alert_words: Refactor the code to flush alert_words cache. 2023-06-28 18:03:32 -07:00
async_utils.py requirements: Upgrade Python requirements. 2022-05-03 10:10:06 -07:00
attachments.py upload: Rename delete_message_image to use word "attachment". 2023-03-02 16:36:19 -08:00
avatar_hash.py ruff: Fix RUF010 Use conversion in f-string. 2023-05-26 22:09:18 -07:00
avatar.py settings: Make DEFAULT_LOGO_URI/DEFAULT_AVATAR_URI use staticfiles. 2023-02-14 17:17:06 -05:00
bot_config.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
bot_lib.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
bot_storage.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
bulk_create.py settings: Add backend code for using user email_address_visibility setting. 2023-02-10 17:35:49 -08:00
cache_helpers.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
cache.py alert_words: Refactor the code to flush alert_words cache. 2023-06-28 18:03:32 -07:00
camo.py typing: Apply trivial none-checks with assertions as necessary. 2022-06-23 19:25:48 -07:00
ccache.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
compatibility.py ruff: Fix DTZ004 datetime.datetime.utcfromtimestamp(). 2023-01-04 16:25:07 -08:00
context_managers.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
create_user.py models: Add a unique index on UserProfile.api_key. 2023-05-19 11:11:04 -07:00
data_types.py ruff: Fix more of RUF010 Use conversion in f-string. 2023-06-06 14:58:11 -07:00
db.py Revert "db: Force use of TimeTrackingCursor to work around Django 4.2 bug." 2023-05-10 19:44:47 -07:00
debug.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
dev_ldap_directory.py tests: Update tests to use example profile picture. 2022-10-31 14:36:54 -07:00
digest.py ruff: Fix C414 Unnecessary list call within sorted(). 2022-11-03 12:10:15 -07:00
display_recipient.py typing: Import ValuesQuerySet alias from django_stubs_ext. 2022-10-05 16:15:56 -07:00
domains.py python: Convert deprecated Django ugettext alias to gettext. 2021-04-15 18:01:34 -07:00
drafts.py typing: Remove ViewFuncT. 2022-08-22 15:46:16 -07:00
email_mirror_helpers.py email_mirror: Move ZulipEmailForwardUserError into email_mirror_helpers. 2021-08-31 16:37:54 -07:00
email_mirror.py requirements: Upgrade Python requirements. 2023-05-10 19:44:47 -07:00
email_notifications.py mention: Replace 'wildcards' with 'stream_wildcards'. 2023-07-03 22:03:17 -07:00
email_validation.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
emoji.py emoji: Disallow . in custom emoji names. 2023-01-31 17:28:33 -08:00
error_notify.py error-bot: Remove ERROR_BOT support. 2023-04-13 14:59:58 -07:00
event_schema.py user_groups: Add support to update can_mention_group setting. 2023-06-30 17:28:33 -07:00
events.py narrow: Split out narrow_helpers. 2023-06-30 11:26:23 -07:00
exceptions.py message: Don't allow moving messages that have passed the time limit. 2023-04-11 11:07:23 -07:00
export.py zerver: Update comments with "private message" or "PM". 2023-06-23 11:24:13 -07:00
external_accounts.py typing: Import StrPromise alias from django_stubs_ext. 2022-10-05 16:15:56 -07:00
fix_unreads.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
generate_test_data.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
github.py ruff: Fix RSE102 Unnecessary parentheses on raised exception. 2023-02-04 16:34:55 -08:00
home.py narrow: Split out narrow_helpers. 2023-06-30 11:26:23 -07:00
hotspots.py ruff: Fix SIM118 Use key in dict instead of key in dict.keys(). 2023-01-04 16:25:07 -08:00
html_diff.py html_diff: Fix lxml import. 2023-03-05 14:46:28 -08:00
html_to_text.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
i18n.py django: Use HttpRequest.headers. 2022-05-13 20:42:20 -07:00
import_realm.py user_groups: Add can_mention_group setting. 2023-06-30 17:28:33 -07:00
initial_password.py initial_password: Add explicit development environment assertion. 2022-03-21 12:05:59 -07:00
integrations.py integrations: Remove ancient legacy trello plugin docs. 2023-06-09 15:08:24 -07:00
logging_util.py ruff: Fix SIM105 Use contextlib.suppress instead of try-except-pass. 2023-01-23 11:18:36 -08:00
management.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
mdiff.py node_tests: Move to web/tests. 2023-02-23 16:04:17 -08:00
mention.py mention: Replace 'wildcards' with 'stream_wildcards'. 2023-07-03 22:03:17 -07:00
message.py mention: Replace 'wildcards' with 'stream_wildcards'. 2023-07-03 22:03:17 -07:00
migrate.py typing: Replace CursorObj by CursorWrapper. 2021-08-20 05:54:19 -07:00
mobile_auth_otp.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
muted_users.py muted users: Make file naming consistent. 2023-02-10 15:39:57 -08:00
name_restrictions.py name_restrictions: Reject anything with zulip or kandra in it. 2023-06-23 10:45:40 -07:00
narrow_helpers.py narrow: Split out narrow_helpers. 2023-06-30 11:26:23 -07:00
narrow.py narrow: Split out narrow_helpers. 2023-06-30 11:26:23 -07:00
notes.py notes: Separate __notes_map per-subclass. 2022-10-10 08:42:13 -07:00
notification_data.py mention: Replace 'wildcards' with 'stream_wildcards'. 2023-07-03 22:03:17 -07:00
onboarding.py zerver: Update comments with "private message" or "PM". 2023-06-23 11:24:13 -07:00
outgoing_http.py python: Replace requests.packages.urllib3 alias with urllib3. 2022-01-23 22:14:17 -08:00
outgoing_webhook.py outgoing_webhook: Respect settings.OUTGOING_WEBHOOK_TIMEOUT_SECONDS. 2023-05-16 07:00:37 -07:00
presence.py presence: Support null values in UserPresence. 2023-04-26 14:26:47 -07:00
profile.py profile: Strengthen decorator types using ParamSpec. 2022-04-14 12:44:35 -07:00
push_notifications.py mention: Replace 'wildcards' with 'stream_wildcards'. 2023-07-03 22:03:17 -07:00
pysa.py python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
queue.py queue_processors: Avoid queue worker timeouts in tests. 2023-06-28 11:06:24 -07:00
rate_limiter.py test_helpers: Switch add/remove_ratelimit to a contextmanager. 2023-06-12 12:55:27 -07:00
realm_description.py markdown: Refactor out additional properties added to Message. 2021-06-24 18:14:53 -07:00
realm_icon.py settings: Make DEFAULT_LOGO_URI/DEFAULT_AVATAR_URI use staticfiles. 2023-02-14 17:17:06 -05:00
realm_logo.py settings: Make DEFAULT_LOGO_URI/DEFAULT_AVATAR_URI use staticfiles. 2023-02-14 17:17:06 -05:00
recipient_users.py zerver: Update comments with "private message" or "PM". 2023-06-23 11:24:13 -07:00
redis_utils.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
remote_server.py migration: Add extra_data_json for audit log models. 2023-06-07 12:14:43 -07:00
request.py codespell: Correct “requestor” to “requester”. 2023-06-20 16:17:55 -07:00
response.py response: Implement ignored parameters with MutableJsonResponse class. 2023-03-06 10:33:13 -08:00
rest.py ruff: Fix RSE102 Unnecessary parentheses on raised exception. 2023-02-04 16:34:55 -08:00
retention.py scheduled_message: Handle attachments properly. 2023-05-08 09:56:02 -07:00
safe_session_cached_db.py session: Enforce that changes cannot happen in a transaction. 2022-03-15 13:52:15 -07:00
scheduled_messages.py scheduled_messages: Add reasonable failure handling. 2023-05-09 13:48:28 -07:00
scim_filter.py scim: Order Users by id when queried using filter syntax. 2021-11-26 16:06:16 -08:00
scim.py users: Set tos_version to -1 for users who have not logged-in yet. 2023-05-16 13:52:56 -07:00
send_email.py send_email: Delete ScheduledEmail objects with no recipients. 2023-06-19 13:40:50 -07:00
server_initialization.py auth: Rewrite data model for tracking enabled auth backends. 2023-04-18 09:22:56 -07:00
sessions.py typing: Add none-checks for miscellaneous cases. 2022-05-31 09:43:55 -07:00
singleton_bmemcached.py requirements: Upgrade Python requirements. 2023-04-03 22:39:21 -07:00
soft_deactivation.py mention: Replace 'wildcards' with 'stream_wildcards'. 2023-07-03 22:03:17 -07:00
sounds.py actions: Split out zerver.lib.sounds. 2022-04-14 14:26:40 -07:00
sqlalchemy_utils.py sqlalchemy_utils: Remove NonClosingPool.recreate override. 2022-02-10 11:59:41 -08:00
storage.py ruff: Fix PLE0101 Explicit return in __init__. 2023-02-23 11:47:08 -08:00
stream_color.py streams: Extract stream_color library. 2022-03-14 18:01:36 -07:00
stream_subscription.py mention: Replace 'wildcards' with 'stream_wildcards'. 2023-07-03 22:03:17 -07:00
stream_topic.py message_send: Handle notifications for UNMUTED topic in a muted stream. 2023-03-06 19:15:45 -08:00
stream_traffic.py streams: Extract stream_traffic library. 2022-03-14 18:01:36 -07:00
streams.py user_topics: Rename the 'zerver/lib/user_topics' functions. 2023-04-03 22:31:49 -07:00
string_validation.py email_mirror: Replace disallowed characters in incoming email subject. 2022-08-22 17:16:20 -07:00
subdomains.py settings: Allow customization of STATIC_URL. 2023-02-14 17:17:06 -05:00
subscription_info.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
templates.py requirements: Upgrade Python requirements. 2023-04-03 22:39:21 -07:00
test_classes.py test_classes: Do not necessary wrap test cases in a transaction. 2023-07-06 11:44:50 -07:00
test_console_output.py requirements: Upgrade Python requirements. 2023-04-25 21:20:33 -07:00
test_data.source.txt Rename default branch to ‘main’. 2021-09-06 12:56:35 -07:00
test_fixtures.py ruff: Fix ANN204 missing return type annotation for __init__. 2022-11-16 09:29:11 -08:00
test_helpers.py test_helpers: Switch add/remove_ratelimit to a contextmanager. 2023-06-12 12:55:27 -07:00
test_runner.py avatars: Serve /user_avatars/ through Django, which offloads to nginx. 2023-01-09 18:23:58 -05:00
tex.py python: Replace universal_newlines with text. 2022-01-23 22:16:01 -08:00
thumbnail.py docs: Remove some outdated references to thumbnailing.md doc. 2022-07-12 17:44:24 -07:00
timeout.py test_timeout: Skip test_timeout_warn on Python 3.11 for coverage issue. 2023-05-18 11:52:22 -07:00
timestamp.py timestamp: Switch to a slightly faster datetime_to_timestamp. 2023-02-23 12:15:13 -08:00
timezone.py timezone: Improve tzdata parser’s compatibility with zic(8). 2022-09-20 16:58:31 -07:00
topic.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
transfer.py uploads: Add LOCAL_AVATARS_DIR / LOCAL_FILES_DIR computed settings. 2023-01-09 18:23:58 -05:00
types.py user_groups: Add can_mention_group setting. 2023-06-30 17:28:33 -07:00
url_encoding.py url-encoding: Update URLs for direct messages. 2023-04-25 09:07:08 -07:00
url_redirects.py help: Rename "Starting a new private thread" to "... new direct message". 2023-05-15 16:13:55 -07:00
user_agent.py python: Reformat with Black, except quotes. 2021-02-12 13:11:19 -08:00
user_counts.py actions: Split out zerver.lib.user_counts. 2022-04-14 17:14:30 -07:00
user_groups.py user_groups: Add support to set can_mention_group during creation. 2023-06-30 17:28:33 -07:00
user_message.py actions: Split out zerver.lib.user_message. 2022-04-14 17:14:30 -07:00
user_status.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
user_topics.py user_topics: Update 'topic_has_visibility_policy' to support INHERIT. 2023-04-18 16:40:57 -07:00
users.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
utils.py Remove statsd support. 2023-04-25 19:58:16 -07:00
validator.py validator: Generalize type of check_string_in argument. 2023-05-11 12:08:25 -07:00
widget.py poll widget: Add server validation. 2021-06-14 17:46:16 -07:00
zcommand.py actions: Split out zerver.actions.user_settings. 2022-04-14 17:14:34 -07:00
zephyr.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00