Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/websdk/werkzeug/testsuite/contrib/iterio.py
diff options
context:
space:
mode:
Diffstat (limited to 'websdk/werkzeug/testsuite/contrib/iterio.py')
-rw-r--r--websdk/werkzeug/testsuite/contrib/iterio.py72
1 files changed, 72 insertions, 0 deletions
diff --git a/websdk/werkzeug/testsuite/contrib/iterio.py b/websdk/werkzeug/testsuite/contrib/iterio.py
new file mode 100644
index 0000000..cddbd6e
--- /dev/null
+++ b/websdk/werkzeug/testsuite/contrib/iterio.py
@@ -0,0 +1,72 @@
+# -*- coding: utf-8 -*-
+"""
+ werkzeug.testsuite.iterio
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Tests the iterio object.
+
+ :copyright: (c) 2011 by Armin Ronacher.
+ :license: BSD, see LICENSE for more details.
+"""
+import unittest
+
+from werkzeug.testsuite import WerkzeugTestCase
+from werkzeug.contrib.iterio import IterIO, greenlet
+
+
+class IterOTestSuite(WerkzeugTestCase):
+
+ def test_basic(self):
+ io = IterIO(["Hello", "World", "1", "2", "3"])
+ assert io.tell() == 0
+ assert io.read(2) == "He"
+ assert io.tell() == 2
+ assert io.read(3) == "llo"
+ assert io.tell() == 5
+ io.seek(0)
+ assert io.read(5) == "Hello"
+ assert io.tell() == 5
+ assert io._buf == "Hello"
+ assert io.read() == "World123"
+ assert io.tell() == 13
+ io.close()
+ assert io.closed
+
+ io = IterIO(["Hello\n", "World!"])
+ assert io.readline() == 'Hello\n'
+ assert io._buf == 'Hello\n'
+ assert io.read() == 'World!'
+ assert io._buf == 'Hello\nWorld!'
+ assert io.tell() == 12
+ io.seek(0)
+ assert io.readlines() == ['Hello\n', 'World!']
+
+ io = IterIO(["foo\n", "bar"])
+ io.seek(-4, 2)
+ assert io.read(4) == '\nbar'
+
+ self.assert_raises(IOError, io.seek, 2, 100)
+ io.close()
+ self.assert_raises(ValueError, io.read)
+
+
+class IterITestSuite(WerkzeugTestCase):
+
+ def test_basic(self):
+ def producer(out):
+ out.write('1\n')
+ out.write('2\n')
+ out.flush()
+ out.write('3\n')
+ iterable = IterIO(producer)
+ self.assert_equal(iterable.next(), '1\n2\n')
+ self.assert_equal(iterable.next(), '3\n')
+ self.assert_raises(StopIteration, iterable.next)
+
+
+def suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(IterOTestSuite))
+ if greenlet is not None:
+ suite.addTest(unittest.makeSuite(IterITestSuite))
+ return suite