Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tests/units/toolkit/coroutine.py
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@sugarlabs.org>2014-02-04 12:19:15 (GMT)
committer Aleksey Lim <alsroot@sugarlabs.org>2014-02-18 21:20:34 (GMT)
commit6447b7951a66021f288f5b2b0c8cc301257d36ee (patch)
tree2c7d269a0dba29a6466996889a1c9980971a0e06 /tests/units/toolkit/coroutine.py
parentb68085299cee6e5488e8301042cde13d040494ca (diff)
Polish design
The major points: * minimize number of resource types * use aggregated properties instead of resources * separate blob storage from resources db
Diffstat (limited to 'tests/units/toolkit/coroutine.py')
-rwxr-xr-xtests/units/toolkit/coroutine.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/units/toolkit/coroutine.py b/tests/units/toolkit/coroutine.py
new file mode 100755
index 0000000..95738d0
--- /dev/null
+++ b/tests/units/toolkit/coroutine.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python
+# sugar-lint: disable
+
+from __init__ import tests
+
+from sugar_network.toolkit.coroutine import Spooler, spawn, sleep
+
+
+class CoroutineTest(tests.Test):
+
+ def test_Spooler_ContinuousFeeding(self):
+ spooler = Spooler()
+ events = []
+
+ def consumer(num):
+ while True:
+ events[num].append(spooler.wait())
+
+ for i in range(10):
+ events.append([])
+ spawn(consumer, i)
+ sleep(.1)
+
+ for i in range(10):
+ spooler.notify_all(i)
+ sleep(.1)
+ self.assertEqual([range(10)] * 10, events)
+
+
+if __name__ == '__main__':
+ tests.main()