コード例 #1
0
    def test_query_recommendation_by_product_id(self):
        """ Query Recommendations by the product_id """
        service.Recommendation(id=0,
                               product_id=PS4,
                               recommended_product_id=CONTROLLER,
                               recommendation_type="accessory").save()
        service.Recommendation(id=0,
                               product_id=PS4,
                               recommended_product_id=PS5,
                               recommendation_type="up-sell").save()
        service.Recommendation(id=0,
                               product_id=PS4,
                               recommended_product_id=MONSTER_HUNTER,
                               recommendation_type="cross-sell").save()
        service.Recommendation(id=0,
                               product_id=PS5,
                               recommended_product_id=MONSTER_HUNTER,
                               recommendation_type="cross-sell").save()

        resp = self.app.get('/recommendations?product_id=' + str(PS4))

        self.assertEqual(resp.status_code, status.HTTP_200_OK)
        data = json.loads(resp.data)
        self.assertEqual(len(data), 3)
        self.assertEqual(data[0]['product_id'], PS4)
コード例 #2
0
    def test_query_recommendation_by_product_id_not_found(self):
        """ Query Recommendations by the product_id that doesn't exist """
        service.Recommendation(id=0,
                               product_id=PS4,
                               recommended_product_id=CONTROLLER,
                               recommendation_type="accessory").save()
        service.Recommendation(id=0,
                               product_id=PS4,
                               recommended_product_id=PS5,
                               recommendation_type="up-sell").save()

        resp = self.app.get('/recommendations?product_id=' + str(PS5))
        self.assertEqual(resp.status_code, status.HTTP_404_NOT_FOUND)
コード例 #3
0
    def test_query_recommendation_by_product_id_bad_request(self):
        """ Query Recommendations by invalid product_id """
        service.Recommendation(id=0,
                               product_id=PS4,
                               recommended_product_id=CONTROLLER,
                               recommendation_type="accessory").save()
        service.Recommendation(id=0,
                               product_id=PS4,
                               recommended_product_id=PS5,
                               recommendation_type="up-sell").save()

        resp = self.app.get('/recommendations?product_id=' + 'PS5')
        self.assertEqual(resp.status_code, 500)
コード例 #4
0
 def test_get_recommendation_list(self):
     """ Get a list of Recommendations """
     service.Recommendation(0,
                            product_id=PS4,
                            recommended_product_id=CONTROLLER,
                            recommendation_type="accessory").save()
     service.Recommendation(0,
                            product_id=PS3,
                            recommended_product_id=CONTROLLER,
                            recommendation_type="accessory").save()
     resp = self.app.get('/recommendations')
     self.assertEqual(resp.status_code, status.HTTP_200_OK)
     data = json.loads(resp.data)
     self.assertEqual(len(data), 2)
コード例 #5
0
    def test_delete_recommendation(self):
        """Deletes a recommendation"""
        service.Recommendation(0, 2, 4, "up-sell", 1).save()
        service.Recommendation(0, 2, 3, "accessory", 2).save()

        # save the current number of recommendation for later comparison
        recommendation_count = self.get_recommendation_count()
        self.assertEqual(recommendation_count, 2)

        # delete a recommendation
        resp = self.app.delete('/recommendations/1',
                               content_type='application/json')
        self.assertEqual(resp.status_code, status.HTTP_204_NO_CONTENT)
        self.assertEqual(len(resp.data), 0)
        new_count = self.get_recommendation_count()
        self.assertEqual(new_count, recommendation_count - 1)
コード例 #6
0
 def test_like_recommendation(self):
     """ Increase a recommendation """
     service.Recommendation(0, 2, 4, "up-sell", 2).save()
     resp = self.app.put("/recommendations/1/likes",
                         content_type='application/json')
     data = json.loads(resp.data)
     self.assertEqual(resp.status_code, status.HTTP_200_OK)
     self.assertEqual(data['likes'], 3)
コード例 #7
0
 def test_update_recommendation_with_no_likes_field(self):
     """ Update a Recommendation with no likes field added"""
     service.Recommendation(0, 2, 4, "up-sell", 1).save()
     new_recommendation = {
         'id': 0,
         'product_id': 2,
         'recommended_product_id': 8,
         'recommended_type': "up-sell"
     }
     data = json.dumps(new_recommendation)
     resp = self.app.put('/recommendations/1',
                         data=data,
                         content_type='application/json')
     self.assertEqual(resp.status_code, status.HTTP_400_BAD_REQUEST)
コード例 #8
0
    def test_get_recommendation(self):
        """ Read a single Recommendation """
        service.Recommendation(0,
                               product_id=PS4,
                               recommended_product_id=CONTROLLER,
                               recommendation_type="accessory").save()
        resp = self.app.get('/recommendations/1')

        self.assertEqual(resp.status_code, status.HTTP_200_OK)
        data = json.loads(resp.data)
        self.assertEqual(data['id'], 1)
        self.assertEqual(data['product_id'], PS4)
        self.assertEqual(data['recommended_product_id'], CONTROLLER)
        self.assertEqual(data['recommendation_type'], "accessory")
        self.assertEqual(data['likes'], 0)
コード例 #9
0
 def test_update_recommendation(self):
     """ Update a Recommendation """
     service.Recommendation(0, 2, 4, "up-sell", 1).save()
     new_recommendation = {
         'id': 0,
         'product_id': 2,
         'recommended_product_id': 8,
         'recommendation_type': "up-sell",
         'likes': 1
     }
     data = json.dumps(new_recommendation)
     resp = self.app.put('/recommendations/1',
                         data=data,
                         content_type='application/json')
     self.assertEqual(resp.status_code, status.HTTP_200_OK)
     resp = self.app.get('/recommendations')
     self.assertEqual(resp.status_code, status.HTTP_200_OK)
     new_json = json.loads(resp.data)
     self.assertEqual(new_json[0]['recommended_product_id'], 8)
コード例 #10
0
 def test_like_recommendation_not_found(self):
     """ Increase a recommendation that can't be found"""
     service.Recommendation(0, 2, 4, "up-sell", 1).save()
     resp = self.app.put("/recommendations/2/likes",
                         content_type='application/json')
     self.assertEquals(resp.status_code, status.HTTP_404_NOT_FOUND)