def test_parses_item_list(): catalogue = ProductCatalogue(entrypoint='file:///list.html') catalogue.load_item_list() assert len(catalogue.products) == 12 assert len(catalogue.products_urls) == 12 assert catalogue.products[0]['title'] == 'Sainsbury\'s Apricot Ripe & Ready 320g' assert catalogue.products[0]['unit_price'] == Decimal('3.00')
def test_parses_item_details(): catalogue = ProductCatalogue() catalogue.products = [{}, {}] catalogue.products_urls = ['file:///item.html', 'file:///item2.html'] catalogue.load_item_details() assert catalogue.products[0]['description'] == 'Avocados' assert catalogue.products[0]['size'] == '41.0kb' assert catalogue.products[1]['description'] == 'Ripe & ready' assert catalogue.products[1]['size'] == '78.2kb'
def test_to_json(): catalogue = ProductCatalogue() catalogue.products = [ { 'title': 'First', 'unit_price': Decimal('1.80'), 'size': '23kb', 'description': 'First description', }, { 'title': 'Second', 'unit_price': Decimal('5.25'), 'size': '25kb', 'description': 'Second description', } ] export = simplejson.loads(catalogue.to_json(), use_decimal=True) assert len(export['results']) == 2 assert export['total'] == Decimal('7.05') assert export['results'][0]['title'] == 'First' assert export['results'][0]['unit_price'] == Decimal('1.80')