def test_search_right_revision():
    tiddler = Tiddler(u'revised', u'bag1')
    tiddler.text = u'alpha'
    tiddler.fields[u'house'] = u'cottage'
    store.put(tiddler)
    tiddler = Tiddler(u'revised', u'bag1')
    tiddler.text = u'beta'
    tiddler.fields[u'house'] = u'mansion'
    store.put(tiddler)
    tiddler = Tiddler(u'revised', u'bag1')
    tiddler.text = u'gamma'
    tiddler.fields[u'house'] = u'barn'
    store.put(tiddler)
    tiddler = Tiddler(u'revised', u'bag1')
    tiddler.text = u'delta'
    tiddler.fields[u'house'] = u'bungalow'
    store.put(tiddler)
    tiddler = Tiddler(u'revised', u'bag1')
    tiddler.text = u'epsilon'
    tiddler.fields[u'house'] = u'treehouse'
    store.put(tiddler)

    tiddlers = list(store.search('beta'))
    assert len(tiddlers) == 0

    tiddlers = list(store.search('epsilon'))
    assert len(tiddlers) == 1
    tiddler = store.get(Tiddler(tiddlers[0].title, tiddlers[0].bag))
    assert tiddler.title == 'revised'
    assert tiddler.bag == 'bag1'
    assert tiddler.fields['house'] == 'treehouse'

    kwords = {'bag': u'bag1', 'house': u'barn'}
    tiddlers = list(index_query(environ, **kwords))

    assert len(tiddlers) == 0

    kwords = {'bag': u'bag1', 'house': u'treehouse'}
    tiddlers = list(index_query(environ, **kwords))

    assert tiddlers[0].title == 'revised'
    assert tiddlers[0].bag == 'bag1'
    assert tiddlers[0].fields['house'] == 'treehouse'

    kwords = {'bag': u'bag1', 'tag': u'orange'}
    tiddlers = list(index_query(environ, **kwords))

    assert len(tiddlers) == 1

    kwords = {'bag': u'bag1', 'tag': u'rang'}
    tiddlers = list(index_query(environ, **kwords))

    assert len(tiddlers) == 0
def test_index_query_filter_fields():
    kwords = {'house': u'cottage'}
    tiddlers = list(index_query(environ, **kwords))

    assert len(tiddlers) == 1
    assert tiddlers[0].title == 'tiddler1'
    assert tiddlers[0].bag == 'bag1'
    assert tiddlers[0].fields['house'] == 'cottage'

    kwords = {u'house': u'mansion'}
    tiddlers = list(index_query(environ, **kwords))

    assert len(tiddlers) == 0
def test_index_query_filter():
    kwords = {'tag': u'orange'}
    tiddlers = list(index_query(environ, **kwords))

    assert len(tiddlers) == 1
    assert tiddlers[0].title == 'tiddler1'
    assert tiddlers[0].bag == 'bag1'
def test_index_query_id():
    kwords = {'id': u'bag1:tiddler1'}
    tiddlers = list(index_query(environ, **kwords))

    assert len(tiddlers) == 1
    assert tiddlers[0].title == 'tiddler1'
    assert tiddlers[0].bag == 'bag1'