mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 05:53:43 +00:00
exceptions: Add new error class to be used for invalid parameter values.
This would help us in avoiding adding translation everytime we use this error for a new pair of parameters.
This commit is contained in:
@@ -702,3 +702,16 @@ class SystemGroupRequiredError(JsonableError):
|
||||
@override
|
||||
def msg_format() -> str:
|
||||
return _("'{setting_name}' must be a system user group.")
|
||||
|
||||
|
||||
class IncompatibleParameterValuesError(JsonableError):
|
||||
data_fields = ["first_parameter", "second_parameter"]
|
||||
|
||||
def __init__(self, first_parameter: str, second_parameter: str) -> None:
|
||||
self.first_parameter = first_parameter
|
||||
self.second_parameter = second_parameter
|
||||
|
||||
@staticmethod
|
||||
@override
|
||||
def msg_format() -> str:
|
||||
return _("Incompatible values for '{first_parameter}' and '{second_parameter}'.")
|
||||
|
||||
@@ -2010,7 +2010,7 @@ class RealmAPITest(ZulipTestCase):
|
||||
result = self.client_patch("/json/realm/user_settings_defaults", data)
|
||||
self.assert_json_error(
|
||||
result,
|
||||
"Incompatible values for 'dense_mode' and 'web_font_size_px' settings.",
|
||||
"Incompatible values for 'dense_mode' and 'web_font_size_px'.",
|
||||
)
|
||||
|
||||
data = {"web_font_size_px": 16, "dense_mode": orjson.dumps(False).decode()}
|
||||
@@ -2048,7 +2048,7 @@ class RealmAPITest(ZulipTestCase):
|
||||
result = self.client_patch("/json/realm/user_settings_defaults", data)
|
||||
self.assert_json_error(
|
||||
result,
|
||||
"Incompatible values for 'dense_mode' and 'web_line_height_percent' settings.",
|
||||
"Incompatible values for 'dense_mode' and 'web_line_height_percent'.",
|
||||
)
|
||||
|
||||
data = {"web_line_height_percent": 140, "dense_mode": orjson.dumps(False).decode()}
|
||||
@@ -2079,14 +2079,14 @@ class RealmAPITest(ZulipTestCase):
|
||||
result = self.client_patch("/json/realm/user_settings_defaults", data)
|
||||
self.assert_json_error(
|
||||
result,
|
||||
"Incompatible values for 'dense_mode' and 'web_font_size_px' settings.",
|
||||
"Incompatible values for 'dense_mode' and 'web_font_size_px'.",
|
||||
)
|
||||
|
||||
data = {"dense_mode": orjson.dumps(True).decode(), "web_line_height_percent": 140}
|
||||
result = self.client_patch("/json/realm/user_settings_defaults", data)
|
||||
self.assert_json_error(
|
||||
result,
|
||||
"Incompatible values for 'dense_mode' and 'web_line_height_percent' settings.",
|
||||
"Incompatible values for 'dense_mode' and 'web_line_height_percent'.",
|
||||
)
|
||||
|
||||
data = {
|
||||
|
||||
@@ -518,7 +518,7 @@ class ChangeSettingsTest(ZulipTestCase):
|
||||
result = self.client_patch("/json/settings", data)
|
||||
self.assert_json_error(
|
||||
result,
|
||||
"Incompatible values for 'dense_mode' and 'web_font_size_px' settings.",
|
||||
"Incompatible values for 'dense_mode' and 'web_font_size_px'.",
|
||||
)
|
||||
|
||||
data = {"web_font_size_px": 16, "dense_mode": orjson.dumps(False).decode()}
|
||||
@@ -556,7 +556,7 @@ class ChangeSettingsTest(ZulipTestCase):
|
||||
result = self.client_patch("/json/settings", data)
|
||||
self.assert_json_error(
|
||||
result,
|
||||
"Incompatible values for 'dense_mode' and 'web_line_height_percent' settings.",
|
||||
"Incompatible values for 'dense_mode' and 'web_line_height_percent'.",
|
||||
)
|
||||
|
||||
data = {"web_line_height_percent": 140, "dense_mode": orjson.dumps(False).decode()}
|
||||
@@ -587,14 +587,14 @@ class ChangeSettingsTest(ZulipTestCase):
|
||||
result = self.client_patch("/json/settings", data)
|
||||
self.assert_json_error(
|
||||
result,
|
||||
"Incompatible values for 'dense_mode' and 'web_font_size_px' settings.",
|
||||
"Incompatible values for 'dense_mode' and 'web_font_size_px'.",
|
||||
)
|
||||
|
||||
data = {"dense_mode": orjson.dumps(True).decode(), "web_line_height_percent": 140}
|
||||
result = self.client_patch("/json/settings", data)
|
||||
self.assert_json_error(
|
||||
result,
|
||||
"Incompatible values for 'dense_mode' and 'web_line_height_percent' settings.",
|
||||
"Incompatible values for 'dense_mode' and 'web_line_height_percent'.",
|
||||
)
|
||||
|
||||
data = {
|
||||
|
||||
@@ -37,7 +37,12 @@ from zerver.lib.email_validation import (
|
||||
validate_email_is_valid,
|
||||
validate_email_not_already_in_realm,
|
||||
)
|
||||
from zerver.lib.exceptions import JsonableError, RateLimitedError, UserDeactivatedError
|
||||
from zerver.lib.exceptions import (
|
||||
IncompatibleParameterValuesError,
|
||||
JsonableError,
|
||||
RateLimitedError,
|
||||
UserDeactivatedError,
|
||||
)
|
||||
from zerver.lib.i18n import get_available_language_codes
|
||||
from zerver.lib.rate_limiter import RateLimitedUser
|
||||
from zerver.lib.request import REQ, has_request_variables
|
||||
@@ -210,14 +215,10 @@ def check_information_density_setting_values(
|
||||
|
||||
if dense_mode:
|
||||
if web_font_size_px != UserBaseSettings.WEB_FONT_SIZE_PX_COMPACT:
|
||||
raise JsonableError(
|
||||
_("Incompatible values for 'dense_mode' and 'web_font_size_px' settings.")
|
||||
)
|
||||
raise IncompatibleParameterValuesError("dense_mode", "web_font_size_px")
|
||||
|
||||
if web_line_height_percent != UserBaseSettings.WEB_LINE_HEIGHT_PERCENT_COMPACT:
|
||||
raise JsonableError(
|
||||
_("Incompatible values for 'dense_mode' and 'web_line_height_percent' settings.")
|
||||
)
|
||||
raise IncompatibleParameterValuesError("dense_mode", "web_line_height_percent")
|
||||
|
||||
|
||||
@human_users_only
|
||||
|
||||
Reference in New Issue
Block a user