Beispiel #1
0
 def test_redis_update_pricing_info_values_raise_exception(self, mock_hset):
     """Test exception is raised if hset fails"""
     fake_helper = Helper()
     with self.assertRaises(Exception):
         mock_hset.side_effect = Exception
         fake_helper.redis_update_pricing_info('value', 'value', 'value',
                                               FAKE_VALUES)
Beispiel #2
0
def product(id):
    helper = Helper()
    url = "http://redsky.target.com/v2/pdp/tcin/" + str(
        id
    ) + "?excludes=taxonomy,price,promotion,bulk_ship" + (
        ",rating_and_review_reviews,rating_and_review_statistics,question_answer_statistics"
    )
    response = urllib.urlopen(url)
    data = json.loads(response.read())

    if request.method == 'GET' and helper.product_exist(data):
        # Combine and format external API result and Redis pull if request method is GET and
        # product exist in the external API
        formatted_search = helper.format_data(id, data)
        return jsonify(formatted_search)

    elif request.method == 'PUT' and helper.product_exist(data):
        # Update price information in Redis if request method is PUT and product exist in the
        # external API

        req = request.get_json()
        helper.redis_update_pricing_info(
            'product', id,
            data['product']['item']['product_description']['title'],
            req['current_price'])
        return request.data

    else:
        # If we get into this logic branch, then id did not return anything from external API
        return 'Product not found.'
Beispiel #3
0
 def test_format_data_redis_data_not_none(self, mock_read_redis):
     """Test that assertion is raised if redis connection fails"""
     fake_helper = Helper()
     mock_read_redis.return_value = FAKE_REDIS_VALUES
     result = fake_helper.format_data(2, FAKE_DATA)
     self.assertEqual(FORMATTED_RESULT, result)
Beispiel #4
0
 def test_redis_update_pricing_info_values_update_data(self, mock_hset):
     """Test happy path. No exceptions"""
     fake_helper = Helper()
     fake_helper.redis_update_pricing_info('value', 'value', 'value',
                                           FAKE_VALUES)
     mock_hset.assert_called()
Beispiel #5
0
 def test_redis_update_pricing_info_values_is_not_dict(self):
     """Test that TypeError is raised if values is not a dictionary"""
     fake_helper = Helper()
     with self.assertRaises(TypeError):
         fake_helper.redis_update_pricing_info('value', 'value', 'value', 2)
Beispiel #6
0
 def test_redis_read_product_return_error(self, mock_hget):
     """Test that exceptions is raised if hget fails"""
     mock_hget.side_effect = Exception('test error')
     fake_helper = Helper()
     result = fake_helper.redis_read_product_info(2)
     self.assertEqual('Error reading from Redis: test error', result)
Beispiel #7
0
 def test_redis_read_product_info(self, mock_hget):
     """Test happy path where hget is successful"""
     mock_hget.return_value = 5
     fake_helper = Helper()
     redis_result = fake_helper.redis_read_product_info(2)
     self.assertEqual(5, redis_result)
Beispiel #8
0
 def test_product_exist_is_found(self):
     # Test valid hosts are added and invalid hosts are ignored.
     fake_helper = Helper()
     self.assertTrue(fake_helper.product_exist(FAKE_FOUND))