예제 #1
0
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')
예제 #2
0
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'
예제 #3
0
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')