From 690ece95d9337c5ddc1a3a7d381c6a01fcf454fc Mon Sep 17 00:00:00 2001 From: Alexandre Detiste Date: Sun, 15 Oct 2023 17:48:42 +0200 Subject: [PATCH] drop local compat helper too --- tests/test_streaming.py | 142 ++++++++++++++++++---------------------- 1 file changed, 62 insertions(+), 80 deletions(-) diff --git a/tests/test_streaming.py b/tests/test_streaming.py index 7f90a78..85926eb 100644 --- a/tests/test_streaming.py +++ b/tests/test_streaming.py @@ -92,57 +92,39 @@ class Listener(StreamListener): def handle_heartbeat(self): self.heartbeats += 1 - def handle_stream_(self, lines): - """Test helper to avoid littering all tests with six.b().""" - def six_b(s): - return s.encode("latin-1") - - class MockResponse(): - def __init__(self, data): - self.data = data - - def iter_content(self, chunk_size): - for line in self.data: - for byte in line: - bytearr = bytearray() - bytearr.append(byte) - yield(bytearr) - yield(b'\n') - return self.handle_stream(MockResponse(map(six_b, lines))) - def test_heartbeat(): listener = Listener() - listener.handle_stream_([':one', ':two']) + listener.handle_stream([b':one', b':two']) assert listener.heartbeats == 2 def test_status(): listener = Listener() - listener.handle_stream_([ - 'event: update', - 'data: {"foo": "bar"}', - '', + listener.handle_stream([ + b'event: update', + b'data: {"foo": "bar"}', + b'', ]) assert listener.updates == [{"foo": "bar"}] def test_notification(): listener = Listener() - listener.handle_stream_([ - 'event: notification', - 'data: {"foo": "bar"}', - '', + listener.handle_stream([ + b'event: notification', + b'data: {"foo": "bar"}', + b'', ]) assert listener.notifications == [{"foo": "bar"}] def test_delete(): listener = Listener() - listener.handle_stream_([ - 'event: delete', - 'data: 123', - '', + listener.handle_stream([ + b'event: delete', + b'data: 123', + b'', ]) assert listener.deletes == ["123"] @@ -157,11 +139,11 @@ def test_delete(): def test_many(events): listener = Listener() stream = [ - line + line.encode('latin1') for event in events for line in event ] - listener.handle_stream_(stream) + listener.handle_stream(stream) assert listener.updates == [{"foo": "bar"}] assert listener.notifications == [{"foo": "bar"}] assert listener.deletes == ["123"] @@ -171,10 +153,10 @@ def test_many(events): def test_unknown_event(): """Be tolerant of new event types""" listener = Listener() - listener.handle_stream_([ - 'event: blahblah', - 'data: {}', - '', + listener.handle_stream([ + b'event: blahblah', + b'data: {}', + b'', ]) assert listener.bla_called is True assert listener.updates == [] @@ -187,10 +169,10 @@ def test_unknown_handled_event(): listener = Listener() listener.on_unknown_event = lambda name, payload: None - listener.handle_stream_([ - 'event: complete.new.event', - 'data: {"k": "v"}', - '', + listener.handle_stream([ + b'event: complete.new.event', + b'data: {"k": "v"}', + b'', ]) assert listener.updates == [] @@ -201,10 +183,10 @@ def test_unknown_handled_event(): def test_dotted_unknown_event(): """Be tolerant of new event types with dots in the event-name""" listener = Listener() - listener.handle_stream_([ - 'event: do.something', - 'data: {}', - '', + listener.handle_stream([ + b'event: do.something', + b'data: {}', + b'', ]) assert listener.do_something_called is True assert listener.updates == [] @@ -216,18 +198,18 @@ def test_invalid_json(): """But not too tolerant""" listener = Listener() with pytest.raises(MastodonMalformedEventError): - listener.handle_stream_([ - 'event: blahblah', - 'data: {kjaslkdjalskdjasd asdkjhak ajdasldasd}', - '', + listener.handle_stream([ + b'event: blahblah', + b'data: {kjaslkdjalskdjasd asdkjhak ajdasldasd}', + b'', ]) def test_missing_event_name(): listener = Listener() with pytest.raises(MastodonMalformedEventError): - listener.handle_stream_([ - 'data: {}', - '', + listener.handle_stream([ + b'data: {}', + b'', ]) assert listener.updates == [] @@ -239,9 +221,9 @@ def test_missing_event_name(): def test_missing_data(): listener = Listener() with pytest.raises(MastodonMalformedEventError): - listener.handle_stream_([ - 'event: update', - '', + listener.handle_stream([ + b'event: update', + b'', ]) assert listener.updates == [] @@ -252,10 +234,10 @@ def test_missing_data(): def test_sse_order_doesnt_matter(): listener = Listener() - listener.handle_stream_([ - 'data: {"foo": "bar"}', - 'event: update', - '', + listener.handle_stream([ + b'data: {"foo": "bar"}', + b'event: update', + b'', ]) assert listener.updates == [{"foo": "bar"}] @@ -267,13 +249,13 @@ def test_extra_keys_ignored(): and alleges that "All other field names are ignored". """ listener = Listener() - listener.handle_stream_([ - 'event: update', - 'data: {"foo": "bar"}', - 'id: 123', - 'retry: 456', - 'ignoreme: blah blah blah', - '', + listener.handle_stream([ + b'event: update', + b'data: {"foo": "bar"}', + b'id: 123', + b'retry: 456', + b'ignoreme: blah blah blah', + b'', ]) assert listener.updates == [{"foo": "bar"}] @@ -281,10 +263,10 @@ def test_extra_keys_ignored(): def test_valid_utf8(): """Snowman Cat Face With Tears Of Joy""" listener = Listener() - listener.handle_stream_([ - 'event: update', - 'data: {"foo": "\xE2\x98\x83\xF0\x9F\x98\xB9"}', - '', + listener.handle_stream([ + b'event: update', + b'data: {"foo": "\xE2\x98\x83\xF0\x9F\x98\xB9"}', + b'', ]) assert listener.updates == [{"foo": u"\u2603\U0001F639"}] @@ -293,10 +275,10 @@ def test_invalid_utf8(): """Cat Face With Tears O""" listener = Listener() with pytest.raises(MastodonMalformedEventError): - listener.handle_stream_([ - 'event: update', - 'data: {"foo": "\xF0\x9F\x98"}', - '', + listener.handle_stream([ + b'event: update', + b'data: {"foo": "\xF0\x9F\x98"}', + b'', ]) @@ -309,12 +291,12 @@ def test_multiline_payload(): so let's handle this case. """ listener = Listener() - listener.handle_stream_([ - 'event: update', - 'data: {"foo":', - 'data: "bar"', - 'data: }', - '', + listener.handle_stream([ + b'event: update', + b'data: {"foo":', + b'data: "bar"', + b'data: }', + b'', ]) assert listener.updates == [{"foo": "bar"}]