示例#1
0
def test_item_format():
    items = zfood.parse(u'1 leipä')

    assert len(items) == 1
    assert items[0].item == u'leipä', 'invalid item'
    assert items[0].count == 1, 'invalid count'
    assert items[0].unit == u'', 'invalid unit'

    items = zfood.parse(u'2m laku')
    assert len(items) == 1, 'invalid number of items'
    assert items[0].item == u'laku', 'invalid item'
    assert items[0].count == 2, 'invalid count'
    assert items[0].unit == u'm', 'invalid unit'

    items = zfood.parse(u'chicken tikka masala')
    assert len(items) == 1, 'invalid number of items'
    assert items[0].item == u'chicken tikka masala', 'invalid item'
    assert items[0].count == 1, 'invalid count'
    assert items[0].unit == u'', 'invalid unit'
示例#2
0
def test_item_split():
    items = zfood.parse(u'leipä, 2dl olutmainen juomasekoitus, 2tölkkiä olutta')
    assert len(items) == 3
    assert items[0].item == u'leipä'

    assert items[1].item == u'olutmainen juomasekoitus', 'invalid items'
    assert items[1].count == 2, 'invalid count'
    assert items[1].unit == u'dl', 'invalid unit'

    assert items[2].item == u'olutta'
    assert items[2].count == 2
    assert items[2].unit == u'tölkkiä'
示例#3
0
def test_date_time():
    def _base_assertions(items):
        assert len(items) == 2, 'invalid number of items'
        assert items[0].item == u'leipä', 'invalid first item'
        assert items[1].item == u'kalaa', 'invalid second item'

        for item in items:
            assert item.at == expected_date, 'invalid date. expected %s got %s' % (expected_date, item.at)

    items = zfood.parse(u'@12; 1 leipä, 2 kalaa')
    today = datetime.now()
    expected_date = datetime(year=today.year, month=today.month, day=today.day, hour=12)

    _base_assertions(items)

    items = zfood.parse(u'@12:30; 1 leipä, 2 kalaa')

    expected_date = expected_date + timedelta(minutes=30)
    _base_assertions(items)

    expected_date = expected_date + timedelta(days=-1)
    items = zfood.parse(u'@%d.%d.12:30; 1 leipä, 2 kalaa' % (expected_date.day, expected_date.month,))
    _base_assertions(items)
示例#4
0
def test_store_and_read():
    today = datetime.now()
    expected_date = datetime(year=today.year, month=today.month, day=today.day, hour=12)
    items = zfood.parse(u'@12; 1 leipä, 2 kalaa, 33cl olutta, 1plo viiniä')

    zfood.store(items, filename='zfood_test.csv', mode='w')
    items = zfood.read(filename='zfood_test.csv') 

    assert len(items) == 4, 'invalid item count expected 4 got %d' % (len(items),)
    assert items[0].item == u'leipä', 'invalid first item %s' % (items[0].item,)
    assert items[1].item == u'kalaa', 'invalid second item'
    assert items[2].item == u'olutta', 'invalid second item'
    assert items[3].item == u'viiniä', 'invalid second item'
    for item in items:
        assert item.at == expected_date
示例#5
0
def test_store_and_remove():
    items = zfood.parse(u'leipä, olut, goji-marjat')
    for item in items: 
        assert item.id == 0, 'invalid id, expected 0 got %d' % (item.id,)

    zfood.store( items, filename='zfood_test.csv', mode='w')
    assert items[0].id == 1, 'invalid id'
    assert items[1].id == 2, 'invalid id'
    assert items[2].id == 3, 'invalid id'

    zfood.remove(items[1].id, filename='zfood_test.csv')
    items = zfood.read( filename='zfood_test.csv' )

    assert len(items) == 2
    assert items[0].item == u'leipä'
    assert items[1].item == u'goji-marjat'