message: Make zero invalid value for message_content_delete_limit_seconds.

We make zero invalid value for message_content_delete_limit_seconds and
for handling the case of "Allow to delete message any time", the API-level
value of message_content_delete_limit_seconds is "anytime" and "None"
as the DB-level value. We also use these values for message retention
setting, so it helps maintain consistency.
This commit is contained in:
sahil839
2021-06-14 22:19:28 +05:30
committed by Tim Abbott
parent 4368b9d186
commit b13bfa09c5
14 changed files with 166 additions and 25 deletions

View File

@@ -1,6 +1,6 @@
import datetime
from operator import itemgetter
from typing import Any, Dict, List, Optional, Tuple
from typing import Any, Dict, List, Optional, Tuple, Union
from unittest import mock
import orjson
@@ -2142,14 +2142,16 @@ class DeleteMessageTest(ZulipTestCase):
def test_delete_message_by_user(self) -> None:
def set_message_deleting_params(
allow_message_deleting: bool, message_content_delete_limit_seconds: int
allow_message_deleting: bool, message_content_delete_limit_seconds: Union[int, str]
) -> None:
self.login("iago")
result = self.client_patch(
"/json/realm",
{
"allow_message_deleting": orjson.dumps(allow_message_deleting).decode(),
"message_content_delete_limit_seconds": message_content_delete_limit_seconds,
"message_content_delete_limit_seconds": orjson.dumps(
message_content_delete_limit_seconds
).decode(),
},
)
self.assert_json_success(result)
@@ -2170,7 +2172,7 @@ class DeleteMessageTest(ZulipTestCase):
return result
# Test if message deleting is not allowed(default).
set_message_deleting_params(False, 0)
set_message_deleting_params(False, "unlimited")
hamlet = self.example_user("hamlet")
self.login_user(hamlet)
msg_id = self.send_stream_message(hamlet, "Scotland")
@@ -2185,8 +2187,8 @@ class DeleteMessageTest(ZulipTestCase):
self.assert_json_success(result)
# Test if message deleting is allowed.
# Test if time limit is zero(no limit).
set_message_deleting_params(True, 0)
# Test if time limit is None(no limit).
set_message_deleting_params(True, "unlimited")
msg_id = self.send_stream_message(hamlet, "Scotland")
message = Message.objects.get(id=msg_id)
message.date_sent = message.date_sent - datetime.timedelta(seconds=600)