event_schema: Extract check_subscription_remove.

This commit is contained in:
Steve Howell
2020-07-08 12:20:25 +00:00
committed by Tim Abbott
parent 055f1a590d
commit 502f1b9fe2
2 changed files with 24 additions and 11 deletions

View File

@@ -230,3 +230,20 @@ def check_subscription_add(
assert "subscribers" in sub.keys()
else:
assert "subscribers" not in sub.keys()
_check_remove_sub = check_dict_only(
required_keys=[
# We should eventually just return stream_id here.
("name", check_string),
("stream_id", check_int),
]
)
check_subscription_remove = check_events_dict(
required_keys=[
("type", equals("subscription")),
("op", equals("remove")),
("subscriptions", check_list(_check_remove_sub)),
]
)

View File

@@ -96,6 +96,7 @@ from zerver.lib.event_schema import (
check_stream_create,
check_stream_update,
check_subscription_add,
check_subscription_remove,
)
from zerver.lib.events import apply_events, fetch_initial_state_data, post_process_state
from zerver.lib.markdown import MentionData
@@ -2566,16 +2567,6 @@ class SubscribeActionTest(BaseAction):
self.do_test_subscribe_events(include_subscribers=False)
def do_test_subscribe_events(self, include_subscribers: bool) -> None:
remove_schema_checker = check_events_dict([
('type', equals('subscription')),
('op', equals('remove')),
('subscriptions', check_list(
check_dict_only([
('name', equals('test_stream')),
('stream_id', check_int),
]),
)),
])
peer_add_schema_checker = check_events_dict([
('type', equals('subscription')),
('op', equals('peer_add')),
@@ -2627,7 +2618,12 @@ class SubscribeActionTest(BaseAction):
action,
include_subscribers=include_subscribers,
num_events=3)
remove_schema_checker('events[0]', events[0])
check_subscription_remove('events[0]', events[0])
self.assertEqual(len(events[0]['subscriptions']), 1)
self.assertEqual(
events[0]['subscriptions'][0]['name'],
'test_stream',
)
# Now resubscribe a user, to make sure that works on a vacated stream
action = lambda: self.subscribe(self.example_user("hamlet"), "test_stream")