def get_current_inventory(): keys = list(request.args.keys()) for key in keys: if key != 'name' and key != 'size' and key != 'style' and key != 'availability': return "Bad parameter given!", 400 name = request.args.get('name') size = request.args.get('size') style = request.args.get('style') availability = request.args.get('availability') filter = FilterDS(name=name, size=size, style=style, availability=availability) beers = [] filtered_inventory = queries.get_filtered_inventory(filter) if filtered_inventory: for beer in filtered_inventory: beers.append({ 'name': beer.name, 'size': beer.size, 'style': beer.style, 'quantity': beer.quantity, 'price': beer.price }) return json.dumps(beers) else: return json.dumps([])
def test_multiple_beers_name_filter_false(): query = make_test_inventory_query("three.csv") filter_ds = FilterDS(name="Guinness") assert not query.get_filtered_inventory(filter_ds)
def test_multiple_beers_name_filter_true(): query = make_test_inventory_query("three.csv") filter_ds = FilterDS(name="Bells Best Brown") assert len(query.get_filtered_inventory(filter_ds)) == 1
def test_one_beer_name_filter_false(): query = make_test_inventory_query("single_positive_quantity.csv") filter_ds = FilterDS(name="Guinness") assert not query.get_filtered_inventory(filter_ds)
def test_one_beer_name_filter_true(): query = make_test_inventory_query("single_positive_quantity.csv") filter_ds = FilterDS(name="Bells Best Brown") assert query.get_filtered_inventory( filter_ds)[0].name == "Bells Best Brown"
def test_all_attributes_match(): test_beer = Beer("Guinness", "12/12 OZ. BTL", "Stout", "30.00", 2) test_ds = FilterDS("12/12 OZ. BTL", "Stout", "Guinness", 2) test_filter = build(test_ds) assert test_filter.is_match(test_beer) is True
def test_attribute_mismatch_fails(): test_beer = Beer("Guinness", "12/12 OZ. BTL", "Stout", "30.00", 2) test_ds = FilterDS("24/12 OZ. CAN", "College", "Natty Light", 0) test_filter = build(test_ds) assert test_filter.is_match(test_beer) is False
def test_filter_with_package_filter(): ds_filter = FilterDS(size='keg') assert ds_filter.size == 'keg' assert ds_filter.style is None
def test_filter_with_no_filters(): ds_filter = FilterDS() assert ds_filter.size is None assert ds_filter.style is None
def test_filter_with_both_filters(): ds_filter = FilterDS(size='keg', style='porter') assert ds_filter.size == 'keg' assert ds_filter.style == 'porter'
def test_filter_with_style_filter(): ds_filter = FilterDS(style='porter') assert ds_filter.size is None assert ds_filter.style == 'porter'