def test_search_right_revision():
    tiddler = Tiddler("revised", "bag1")
    tiddler.text = u"alpha"
    tiddler.fields[u"house"] = u"cottage"
    store.put(tiddler)
    tiddler = Tiddler("revised", "bag1")
    tiddler.text = u"beta"
    tiddler.fields[u"house"] = u"mansion"
    store.put(tiddler)
    tiddler = Tiddler("revised", "bag1")
    tiddler.text = u"gamma"
    tiddler.fields[u"house"] = u"barn"
    store.put(tiddler)
    tiddler = Tiddler("revised", "bag1")
    tiddler.text = u"delta"
    tiddler.fields[u"house"] = u"bungalow"
    store.put(tiddler)
    tiddler = Tiddler("revised", "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_field():
    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"