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)
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.'
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)
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()
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)
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)
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)
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))