瀏覽代碼

add tests for Listener

Chris McDonough 11 年之前
父節點
當前提交
8caf44b9ab
共有 2 個文件被更改,包括 51 次插入1 次删除
  1. 1 1
      supervisor/compat.py
  2. 50 0
      supervisor/tests/test_http_client.py

+ 1 - 1
supervisor/compat.py

@@ -25,7 +25,7 @@ else: # pragma: no cover
     reduce = reduce
 
 def print_function(*args,**kwargs): # pragma: no cover
-    kwargs.get('file', sys.stdout).write(' '.join(str(i) for i in args)+kwargs.get('end','\n'))
+    kwargs.get('file', sys.stdout).write(as_string(' ').join(as_string(i) for i in args)+kwargs.get('end','\n'))
 
 def total_ordering(cls): # pragma: no cover
     """Class decorator that fills in missing ordering methods"""

+ 50 - 0
supervisor/tests/test_http_client.py

@@ -0,0 +1,50 @@
+import io
+import sys
+import unittest
+
+class ListenerTests(unittest.TestCase):
+    def _getTargetClass(self):
+        from supervisor.http_client import Listener
+        return Listener
+
+    def _makeOne(self):
+        return self._getTargetClass()()
+
+    def test_status(self):
+        inst = self._makeOne()
+        self.assertEqual(inst.status(None, None), None)
+        
+    def test_error(self):
+        inst = self._makeOne()
+        try:
+            old_stdout = sys.stdout
+            f = io.StringIO()
+            sys.stdout = f
+            self.assertEqual(inst.error('url', 'error'), None)
+            self.assertEqual(f.getvalue(), 'url error\n')
+        finally:
+            sys.stdout = old_stdout
+        
+    def test_response_header(self):
+        inst = self._makeOne()
+        self.assertEqual(inst.response_header(None, None, None), None)
+
+    def test_done(self):
+        inst = self._makeOne()
+        self.assertEqual(inst.done(None), None)
+
+    def test_feed(self):
+        from supervisor.compat import as_string
+        inst = self._makeOne()
+        try:
+            old_stdout = sys.stdout
+            f = io.StringIO()
+            sys.stdout = f
+            inst.feed(as_string('url'), as_string('data'))
+            self.assertEqual(f.getvalue(), 'data')
+        finally:
+            sys.stdout = old_stdout
+
+    def test_close(self):
+        inst = self._makeOne()
+        self.assertEqual(inst.close(None), None)