[pypy-svn] r37857 - in pypy/dist/pypy/translator/js/lib: . test

fijal at codespeak.net fijal at codespeak.net
Sat Feb 3 12:24:09 CET 2007


Author: fijal
Date: Sat Feb  3 12:24:07 2007
New Revision: 37857

Modified:
   pypy/dist/pypy/translator/js/lib/server.py
   pypy/dist/pypy/translator/js/lib/test/test_server.py
Log:
Add a static handler for server.py


Modified: pypy/dist/pypy/translator/js/lib/server.py
==============================================================================
--- pypy/dist/pypy/translator/js/lib/server.py	(original)
+++ pypy/dist/pypy/translator/js/lib/server.py	Sat Feb  3 12:24:07 2007
@@ -98,6 +98,15 @@
         self.end_headers()
         self.wfile.write(data)
 
+class Static(object):
+    exposed = True
+    
+    def __init__(self, path):
+        self.path = path
+
+    def __call__(self):
+        return open(self.path).read()
+
 def start_server(server_address = ('', 8000), handler=TestHandler, fork=False):
     httpd = HTTPServer(server_address, handler)
 

Modified: pypy/dist/pypy/translator/js/lib/test/test_server.py
==============================================================================
--- pypy/dist/pypy/translator/js/lib/test/test_server.py	(original)
+++ pypy/dist/pypy/translator/js/lib/test/test_server.py	Sat Feb  3 12:24:07 2007
@@ -2,8 +2,10 @@
 """ Server testing
 """
 
+import py
 from pypy.translator.js.lib import server
 from urllib import URLopener
+import os
 
 class Handler(server.TestHandler):
     def index(self):
@@ -21,3 +23,17 @@
     server.start_server(server_address=('127.0.0.1', 21211),
                         handler=Handler, fork=True)
     assert URLopener().open("http://127.0.0.1:21210/index").read() == "xxx"
+
+def test_static_page():
+    import thread
+    tmpdir = py.test.ensuretemp("server_static_page")
+    tmpdir.ensure("test.html").write("<html></html>")
+    
+    class StaticHandler(server.TestHandler):
+        static_dir = str(tmpdir)
+        index = server.Static(os.path.join(static_dir, "test.html"))
+
+    httpd = server.HTTPServer(('127.0.0.1', 21212), StaticHandler)
+    thread.start_new_thread(httpd.serve_forever, ())
+    assert URLopener().open("http://127.0.0.1:21212/index").read() == \
+           "<html></html>"



More information about the Pypy-commit mailing list