refactor: Use API instead of functions in test_muting_users.py.

Instead of using internal functions for data setup,
we use the API so that these tests are more
end-to-end.

This commit also removes a now unnecessary
`if date_muted is None` check.
This commit is contained in:
Abhijeet Prasad Bodas 2021-04-07 23:03:10 +05:30 committed by Tim Abbott
parent b500ff39c1
commit 32ab9872b1
2 changed files with 13 additions and 16 deletions

View File

@ -1,7 +1,5 @@
import datetime import datetime
from typing import Dict, List, Optional from typing import Dict, List
from django.utils.timezone import now as timezone_now
from zerver.lib.timestamp import datetime_to_timestamp from zerver.lib.timestamp import datetime_to_timestamp
from zerver.models import MutedUser, UserProfile from zerver.models import MutedUser, UserProfile
@ -22,12 +20,8 @@ def get_user_mutes(user_profile: UserProfile) -> List[Dict[str, int]]:
def add_user_mute( def add_user_mute(
user_profile: UserProfile, user_profile: UserProfile, muted_user: UserProfile, date_muted: datetime.datetime
muted_user: UserProfile,
date_muted: Optional[datetime.datetime] = None,
) -> None: ) -> None:
if date_muted is None:
date_muted = timezone_now()
MutedUser.objects.create( MutedUser.objects.create(
user_profile=user_profile, user_profile=user_profile,
muted_user=muted_user, muted_user=muted_user,

View File

@ -3,7 +3,7 @@ from unittest import mock
from zerver.lib.test_classes import ZulipTestCase from zerver.lib.test_classes import ZulipTestCase
from zerver.lib.timestamp import datetime_to_timestamp from zerver.lib.timestamp import datetime_to_timestamp
from zerver.lib.user_mutes import add_user_mute, get_user_mutes, user_is_muted from zerver.lib.user_mutes import get_user_mutes, user_is_muted
class MutedUsersTests(ZulipTestCase): class MutedUsersTests(ZulipTestCase):
@ -16,8 +16,10 @@ class MutedUsersTests(ZulipTestCase):
self.assertEqual(muted_users, []) self.assertEqual(muted_users, [])
mute_time = datetime(2021, 1, 1, tzinfo=timezone.utc) mute_time = datetime(2021, 1, 1, tzinfo=timezone.utc)
with mock.patch("zerver.lib.user_mutes.timezone_now", return_value=mute_time): with mock.patch("zerver.views.muting.timezone_now", return_value=mute_time):
add_user_mute(user_profile=hamlet, muted_user=cordelia) url = "/api/v1/users/me/muted_users/{}".format(cordelia.id)
result = self.api_post(hamlet, url)
self.assert_json_success(result)
muted_users = get_user_mutes(hamlet) muted_users = get_user_mutes(hamlet)
self.assertEqual(len(muted_users), 1) self.assertEqual(len(muted_users), 1)
@ -62,10 +64,9 @@ class MutedUsersTests(ZulipTestCase):
self.login_user(hamlet) self.login_user(hamlet)
cordelia = self.example_user("cordelia") cordelia = self.example_user("cordelia")
add_user_mute( url = "/api/v1/users/me/muted_users/{}".format(cordelia.id)
user_profile=hamlet, result = self.api_post(hamlet, url)
muted_user=cordelia, self.assert_json_success(result)
)
url = "/api/v1/users/me/muted_users/{}".format(cordelia.id) url = "/api/v1/users/me/muted_users/{}".format(cordelia.id)
result = self.api_post(hamlet, url) result = self.api_post(hamlet, url)
@ -106,7 +107,9 @@ class MutedUsersTests(ZulipTestCase):
cordelia = self.example_user("cordelia") cordelia = self.example_user("cordelia")
mute_time = datetime(2021, 1, 1, tzinfo=timezone.utc) mute_time = datetime(2021, 1, 1, tzinfo=timezone.utc)
add_user_mute(user_profile=hamlet, muted_user=cordelia, date_muted=mute_time) url = "/api/v1/users/me/muted_users/{}".format(cordelia.id)
result = self.api_post(hamlet, url)
self.assert_json_success(result)
url = "/api/v1/users/me/muted_users/{}".format(cordelia.id) url = "/api/v1/users/me/muted_users/{}".format(cordelia.id)
result = self.api_delete(hamlet, url) result = self.api_delete(hamlet, url)