Skip to content

Commit fb6b7f0

Browse files
committed
Merge pull request #43 from vivekfantain/master
Added support for dry_run
2 parents 1e6cfbf + e014971 commit fb6b7f0

2 files changed

Lines changed: 10 additions & 7 deletions

File tree

gcm/gcm.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def __init__(self, api_key, url=GCM_URL, proxy=None):
9090

9191

9292
def construct_payload(self, registration_ids, data=None, collapse_key=None,
93-
delay_while_idle=False, time_to_live=None, is_json=True):
93+
delay_while_idle=False, time_to_live=None, is_json=True, dry_run=False):
9494
"""
9595
Construct the dictionary mapping of parameters.
9696
Encodes the dictionary into JSON if for json requests.
@@ -125,6 +125,9 @@ def construct_payload(self, registration_ids, data=None, collapse_key=None,
125125
if collapse_key:
126126
payload['collapse_key'] = collapse_key
127127

128+
if dry_run:
129+
payload['dry_run'] = True
130+
128131
if is_json:
129132
payload = json.dumps(payload)
130133

@@ -215,7 +218,7 @@ def extract_unsent_reg_ids(self, info):
215218
return []
216219

217220
def plaintext_request(self, registration_id, data=None, collapse_key=None,
218-
delay_while_idle=False, time_to_live=None, retries=5):
221+
delay_while_idle=False, time_to_live=None, retries=5, dry_run=False):
219222
"""
220223
Makes a plaintext request to GCM servers
221224
@@ -230,7 +233,7 @@ def plaintext_request(self, registration_id, data=None, collapse_key=None,
230233

231234
payload = self.construct_payload(
232235
registration_id, data, collapse_key,
233-
delay_while_idle, time_to_live, False
236+
delay_while_idle, time_to_live, False, dry_run
234237
)
235238

236239
attempt = 0
@@ -248,7 +251,7 @@ def plaintext_request(self, registration_id, data=None, collapse_key=None,
248251
raise IOError("Could not make request after %d attempts" % attempt)
249252

250253
def json_request(self, registration_ids, data=None, collapse_key=None,
251-
delay_while_idle=False, time_to_live=None, retries=5):
254+
delay_while_idle=False, time_to_live=None, retries=5, dry_run=False):
252255
"""
253256
Makes a JSON request to GCM servers
254257
@@ -268,7 +271,7 @@ def json_request(self, registration_ids, data=None, collapse_key=None,
268271
for attempt in range(retries):
269272
payload = self.construct_payload(
270273
registration_ids, data, collapse_key,
271-
delay_while_idle, time_to_live
274+
delay_while_idle, time_to_live, dry_run
272275
)
273276
response = self.make_request(payload, is_json=True)
274277
info = self.handle_json_response(response, registration_ids)

gcm/test.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,10 @@ def setUp(self):
7474
def test_construct_payload(self):
7575
res = self.gcm.construct_payload(
7676
registration_ids=['1', '2'], data=self.data, collapse_key='foo',
77-
delay_while_idle=True, time_to_live=3600, is_json=True
77+
delay_while_idle=True, time_to_live=3600, is_json=True, dry_run = True
7878
)
7979
payload = json.loads(res)
80-
for arg in ['registration_ids', 'data', 'collapse_key', 'delay_while_idle', 'time_to_live']:
80+
for arg in ['registration_ids', 'data', 'collapse_key', 'delay_while_idle', 'time_to_live', 'dry_run']:
8181
self.assertIn(arg, payload)
8282

8383
def test_json_payload(self):

0 commit comments

Comments
 (0)