Skip to content

Commit e97155d

Browse files
author
marcel corso gonzalez
authored
Merge pull request #179 from ronlut/fix_payload_size_check
change payload size check to use sys.getsizeof
2 parents 5e445a0 + 7c03d8b commit e97155d

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

pusher/pusher_client.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def trigger(self, channels, event_name, data, socket_id=None):
9090
raise ValueError("event_name too long")
9191

9292
data = data_to_string(data, self._json_encoder)
93-
if len(data) > 10240:
93+
if sys.getsizeof(data) > 10240:
9494
raise ValueError("Too much data")
9595

9696
channels = list(map(validate_channel, channels))
@@ -130,7 +130,7 @@ def trigger_batch(self, batch=[], already_encoded=False):
130130

131131
event['data'] = data_to_string(event['data'], self._json_encoder)
132132

133-
if len(event['data']) > 10240:
133+
if sys.getsizeof(event['data']) > 10240:
134134
raise ValueError("Too much data")
135135

136136
if is_encrypted_channel(event['channel']):

pusher_tests/test_pusher_client.py

+20
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,26 @@ def test_trigger_with_private_encrypted_channel_string_fail_case_no_encryption_m
204204
with self.assertRaises(ValueError):
205205
pc.trigger(u'private-encrypted-tst', u'some_event', {u'message': u'hello worlds'})
206206

207+
def test_trigger_too_much_data(self):
208+
pc = PusherClient(app_id=u'4', key=u'key', secret=u'secret', ssl=True)
209+
210+
self.assertRaises(ValueError, lambda: pc.trigger(u'private-tst', u'some_event', u'a' * 10241))
211+
212+
def test_trigger_batch_too_much_data(self):
213+
pc = PusherClient(app_id=u'4', key=u'key', secret=u'secret', ssl=True)
214+
215+
self.assertRaises(ValueError, lambda: pc.trigger_batch(
216+
[{u'channel': u'private-tst', u'name': u'some_event', u'data': u'a' * 10241}]))
217+
218+
def test_trigger_str_shorter_than_10240_but_more_than_10kb_raising(self):
219+
pc = PusherClient(app_id=u'4', key=u'key', secret=u'secret', ssl=True)
220+
221+
self.assertRaises(ValueError, lambda: pc.trigger.make_request(u'private-tst', u'some_event', u'你' * 10000))
222+
223+
def test_trigger_batch_str_shorter_than_10240_but_more_than_10kb_raising(self):
224+
pc = PusherClient(app_id=u'4', key=u'key', secret=u'secret', ssl=True)
225+
226+
self.assertRaises(ValueError, lambda: pc.trigger_batch.make_request([{u'channel': u'private-tst', u'name': u'some_event', u'data': u'你' * 10000}]))
207227

208228
def test_trigger_with_public_channel_with_encryption_master_key_specified_success(self):
209229
json_dumped = u'{"message": "something"}'

0 commit comments

Comments
 (0)