diff options
Diffstat (limited to 'tests/units/document/index_queue.py')
-rwxr-xr-x | tests/units/document/index_queue.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/units/document/index_queue.py b/tests/units/document/index_queue.py new file mode 100755 index 0000000..bf4c12c --- /dev/null +++ b/tests/units/document/index_queue.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python +# sugar-lint: disable + +import os +import time +import shutil +import logging +import threading + +import gevent +from gevent.event import Event + +from __init__ import tests + +from active_document import env, index_queue, document +from active_document.metadata import active_property, Metadata +from active_document.index_proxy import IndexProxy +from active_document.index import IndexWriter + + +class IndexQueueTest(tests.Test): + + def setUp(self): + tests.Test.setUp(self) + + class Document(document.Document): + pass + + Document.metadata = Metadata(Document) + index_queue.start(tests.tmpdir, [Document]) + self.Document = Document + + def tearDown(self): + index_queue.stop() + tests.Test.tearDown(self) + + def test_put(self): + env.index_flush_threshold.value = 0 + env.index_flush_timeout.value = 0 + + put = [] + index_queue.put('document', lambda *args: put.append(1)) + index_queue.put('document', lambda *args: put.append(2)) + index_queue.put('document', lambda *args: put.append(3)) + + self.assertEqual([], put) + self.assertEqual(0, index_queue.commit_seqno('document')) + index_queue.commit_and_wait('document') + self.assertEqual([1, 2, 3], put) + self.assertEqual(1, index_queue.commit_seqno('document')) + index_queue.commit_and_wait('document') + self.assertEqual(1, index_queue.commit_seqno('document')) + + +if __name__ == '__main__': + tests.main() |