Пример #1
0
    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')
Пример #2
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')
Пример #3
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)