def test_rewardprogram(self): """ Tests rewardprogram handler """ c = Client() setup_func(connection) ''' { "status": 1, "merchant": { "name": "Safeway" }, "name": "safeway loyalty program", "prog_type": 1, "reward_trigger": 200.0, "end_time": null, "reward": { "equiv_points": 20, "name": "free bread" }, "start_time": null } ''' response = c.get("/api/stores/1/program/1", **self.extra) #print response.content r = json.loads(response.content) self.assertEqual(8, len(r), '') self.assertEqual('safeway loyalty program', r['name'], '') self.assertEqual(1, r['prog_type'], '') self.assertEqual(None, r['end_time'], '') self.assertEqual(200.0, r['reward_trigger'], '') ''' [ { "status": 1, "merchant": { "name": "Safeway" }, "name": "safeway loyalty program", "prog_type": 1, "reward_trigger": 200.0, "end_time": null, "reward": { "equiv_points": 20, "name": "free bread" }, "start_time": null }, { "status": 1, "merchant": { "name": "Safeway" }, "name": "safeway loyalty program 2", "prog_type": 1, "reward_trigger": 400.0, "end_time": null, "reward": { "equiv_points": 10, "name": "free starbucks" }, "start_time": null } ] ''' response = c.get("/api/stores/1/program", **self.extra) #print response.content r = json.loads(response.content) self.assertEqual(2, len(r), 'number of merchant reward programs is not 2') self.assertEqual('safeway loyalty program', r[0]['name'], '') self.assertEqual(1, r[0]['prog_type'], '') self.assertEqual(None, r[0]['end_time'], '') self.assertEqual(200.0, r[0]['reward_trigger'], '') self.assertEqual('safeway loyalty program 2', r[1]['name'], '') self.assertEqual(1, r[1]['prog_type'], '') self.assertEqual(None, r[1]['end_time'], '') self.assertEqual(400.0, r[1]['reward_trigger'], '') jsonstr = json.dumps({"name":"BostonMarket loyalty program","status":1,"prog_type":1,"reward_trigger":150.0,"end_time":"2012-05-26","reward":{"id":1}}) response = c.post("/api/stores/1/program/1", jsonstr, 'application/json', **self.extra) #print response.content self.assertEqual('Created', response.content, '') response = c.get("/api/stores/1/program/4", **self.extra) #print response.content r = json.loads(response.content) self.assertEqual(8, len(r), '') self.assertEqual('BostonMarket loyalty program', r['name'], '') self.assertEqual(1, r['prog_type'], '') self.assertEqual("2012-05-26", r['end_time'], '') self.assertEqual(150.0, r['reward_trigger'], '') self.assertEqual("free bread", r['reward']['name'], '') jsonstr = json.dumps({"prog_type":2,"reward_trigger":10,"reward":{"id":2}}) response = c.put("/api/stores/1/program/4", jsonstr, 'application/json', **self.extra) #print response.content self.assertEqual('OK', response.content, '') response = c.get("/api/stores/1/program/4", **self.extra) #print response.content r = json.loads(response.content) self.assertEqual(8, len(r), '') self.assertEqual('BostonMarket loyalty program', r['name'], '') self.assertEqual(2, r['prog_type'], '') self.assertEqual("2012-05-26", r['end_time'], '') self.assertEqual(10, r['reward_trigger'], '') self.assertEqual("free starbucks", r['reward']['name'], '') response = c.delete("/api/stores/1/program/4", **self.extra) #print response.content self.assertEqual(0, len(response.content), '') response = c.get("/api/stores/1/program", **self.extra) #print response.content r = json.loads(response.content) self.assertEqual(2, len(r), 'number of merchant reward programs is not 2') response = c.delete("/api/stores/1/program", **self.extra) #print response.content self.assertEqual(0, len(response.content), '') response = c.get("/api/stores/1/program", **self.extra) #print response.content r = json.loads(response.content) self.assertEqual(0, len(r), 'number of merchant reward programs is not 0')
def test_reward(self): ''' Test RewardHandler ''' c = Client() setup_func(connection) ''' { "status": 1, "merchant": { "name": "Safeway", "id": 1 }, "equiv_points": 20, "name": "free bread", "expire_in_days": 0, "id": 1, "expire_in_years": 3, "equiv_dollar": "20", "expire_in_months": 0, "description": "free whole-wheet bread" } ''' response = c.get("/api/stores/1/reward/1", **self.extra) #print response.content r = json.loads(response.content) self.assertEqual(10, len(r), '') self.assertEqual('free bread', r['name'], '') self.assertEqual(20, r['equiv_points'], '') self.assertEqual(3, r['expire_in_years'], '') self.assertEqual('Safeway', r['merchant']['name'], '') ''' [ { "status": 1, "merchant": { "name": "Safeway", "id": 1 }, "equiv_points": 20, "name": "free bread", "expire_in_days": 0, "id": 1, "expire_in_years": 3, "equiv_dollar": "20", "expire_in_months": 0, "description": "free whole-wheet bread" } ] ''' response = c.get("/api/stores/1/reward", **self.extra) #print response.content r = json.loads(response.content) self.assertEqual(1, len(r), 'number of merchant rewards is not 1') self.assertEqual('free bread', r[0]['name'], '') self.assertEqual(20, r[0]['equiv_points'], '') self.assertEqual(3, r[0]['expire_in_years'], '') self.assertEqual('Safeway', r[0]['merchant']['name'], '') jsonstr = json.dumps({"name":"free meal","status":1,"equiv_dollar":30,"equiv_points":30,"expire_in_days":"100","expire_in_years":"1","expire_in_months":"0","description":"free meal only"}) response = c.post("/api/stores/1/reward", jsonstr, 'application/json', **self.extra) #print response.content self.assertEqual('Created', response.content, '') response = c.get("/api/stores/1/reward/3", **self.extra) #print response.content r = json.loads(response.content) self.assertEqual(10, len(r), '') self.assertEqual('free meal', r['name'], '') self.assertEqual(30, r['equiv_points'], '') self.assertEqual(1, r['expire_in_years'], '') self.assertEqual('Safeway', r['merchant']['name'], '') jsonstr = json.dumps({"equiv_points":50,"expire_in_months":5}) response = c.put("/api/stores/1/reward/3", jsonstr, 'application/json', **self.extra) #print response.content self.assertEqual('OK', response.content, '') response = c.get("/api/stores/1/reward/3", **self.extra) #print response.content r = json.loads(response.content) self.assertEqual(10, len(r), '') self.assertEqual('free meal', r['name'], '') self.assertEqual(50, r['equiv_points'], '') self.assertEqual(5, r['expire_in_months'], '') self.assertEqual('Safeway', r['merchant']['name'], '') response = c.delete("/api/stores/1/reward/3", **self.extra) #print response.content self.assertEqual(0, len(response.content), '') response = c.get("/api/stores/1/reward", **self.extra) #print response.content r = json.loads(response.content) self.assertEqual(1, len(r), 'number of merchant reward rewards is not 1') response = c.delete("/api/stores/1/reward", **self.extra) #print response.content self.assertEqual(0, len(response.content), '') response = c.get("/api/stores/1/reward", **self.extra) #print response.content r = json.loads(response.content) self.assertEqual(0, len(r), 'number of merchant reward rewards is not 0')
def test_merchant(self): """ Tests merchant handler """ c = Client() setup_func(connection) ''' [ { "name": "Safeway", "longitude": 201.32300000000001, "phone": "6502334332", "address": "434 abc ave, san jose, ca", "latitude": 102.45399999999999, "logo": "/path/to/logo.png", "email": "*****@*****.**" } ] ''' response = c.get("/api/stores/prox/201.32,102.45,5", **self.extra) #print response.content r = json.loads(response.content) self.assertEqual(1, len(r), 'number of merchants is not 1') self.assertEqual('Safeway', r[0]['name'], '') self.assertEqual('6502334332', r[0]['phone'], '') self.assertEqual('/path/to/logo.png', r[0]['logo'], '') ''' { "name": "Safeway", "longitude": 201.32300000000001, "phone": "6502334332", "address": "434 abc ave, san jose, ca", "latitude": 102.45399999999999, "logo": "/path/to/logo.png", "email": "*****@*****.**" } ''' response = c.get("/api/stores/1", **self.extra) #print response.content r = json.loads(response.content) self.assertEqual(7, len(r), 'number of merchants is not 7') self.assertEqual('Safeway', r['name'], '') self.assertEqual('6502334332', r['phone'], '') self.assertEqual('/path/to/logo.png', r['logo'], '') jsonstr = json.dumps({"name":"BostonMarket","email":"*****@*****.**","phone":"4082538985","address":"973 1st st, san jose, ca","logo":"/logo/bm.png","longitude":"150.20","latitude":"90.09"}) response = c.post("/api/stores", jsonstr, 'application/json', **self.extra) #print response.content self.assertEqual('Created', response.content, '') response = c.get("/api/stores/3", **self.extra) #print response.content r = json.loads(response.content) self.assertEqual(7, len(r), '') self.assertEqual('BostonMarket', r['name'], '') self.assertEqual('4082538985', r['phone'], '') self.assertEqual('/logo/bm.png', r['logo'], '') self.assertEqual('973 1st st, san jose, ca', r['address'], '') jsonstr = json.dumps({"email":"*****@*****.**","phone":"6509234325"}) response = c.put("/api/stores/3", jsonstr, 'application/json', **self.extra) #print response.content self.assertEqual('OK', response.content, '') response = c.get("/api/stores/3", **self.extra) #print response.content r = json.loads(response.content) self.assertEqual(7, len(r), '') self.assertEqual('BostonMarket', r['name'], '') self.assertEqual('6509234325', r['phone'], '') self.assertEqual('*****@*****.**', r['email'], '') response = c.delete("/api/stores/3", **self.extra) #print response.content self.assertEqual(0, len(response.content), '') response = c.get("/api/stores/3", **self.extra) #print response.content self.assertContains(response, "DoesNotExist: Merchant matching query does not exist.", status_code=500)