Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tests/units/document/index_queue.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/units/document/index_queue.py')
-rwxr-xr-xtests/units/document/index_queue.py56
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()