Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tests/units/toolkit/router.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/units/toolkit/router.py')
-rwxr-xr-xtests/units/toolkit/router.py32
1 files changed, 31 insertions, 1 deletions
diff --git a/tests/units/toolkit/router.py b/tests/units/toolkit/router.py
index ad90cf5..131e587 100755
--- a/tests/units/toolkit/router.py
+++ b/tests/units/toolkit/router.py
@@ -594,7 +594,6 @@ class RouterTest(tests.Test):
self.value = value
def read(self, size):
- print self.pos, size, len(self.value)
assert self.pos + size <= len(self.value)
result = self.value[self.pos:self.pos + size]
self.pos += size
@@ -1354,6 +1353,37 @@ class RouterTest(tests.Test):
events)
del events[:]
+ def test_ReadRequestOnEventStreamSpawn(self):
+ events = []
+
+ class Routes(object):
+
+ @route('GET', mime_type='text/event-stream')
+ def get(self, request):
+ yield {}
+ yield {'request': request.content}
+
+ def broadcast(self, event):
+ events.append(event.copy())
+
+ reply = Router(Routes(), allow_spawn=True)({
+ 'PATH_INFO': '/',
+ 'REQUEST_METHOD': 'GET',
+ 'QUERY_STRING': 'spawn',
+ 'CONTENT_LENGTH': '5',
+ 'wsgi.input': StringIO('probe'),
+ },
+ lambda status, headers: None)
+ self.assertEqual([], [i for i in reply])
+
+ coroutine.sleep(.1)
+ self.assertEqual([
+ {'method': 'GET'},
+ {'method': 'GET', 'request': 'probe'},
+ ],
+ events)
+ del events[:]
+
if __name__ == '__main__':
tests.main()