summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2011-02-03 13:09:04 +0000
committerGiampaolo Rodola <g.rodola@gmail.com>2011-02-03 13:09:04 +0000
commit06da26bd082a6ed5d2c82a471b8d87da2845d71a (patch)
tree408ab22a48d0ff27ff91b0d87c405629c490c42e
parentbfae5cab1e93098f2b1f44b53ed1971bdeeb72a4 (diff)
downloadpysendfile-06da26bd082a6ed5d2c82a471b8d87da2845d71a.tar.gz
issue 1: first test suite draft
-rw-r--r--test.py71
1 files changed, 54 insertions, 17 deletions
diff --git a/test.py b/test.py
index 90d8a60..825f613 100644
--- a/test.py
+++ b/test.py
@@ -1,17 +1,54 @@
-import SocketServer, os, socket, sendfile
-datafile = open('sendfilemodule.c', 'rb')
-datafileblocksize = os.fstat(datafile.fileno()).st_blksize
-print datafileblocksize
-class handler(SocketServer.BaseRequestHandler):
- def handle (self):
- if sendfile.has_sf_hdtr:
- #print sendfile.sendfile(self.request.fileno(), datafile.fileno(), 0, 0, (["HTTP/1.1 200 OK\r\n", "Content-Type: text/html\r\n", "Connection: close\r\n\r\n"], 'test'))
- print sendfile.sendfile(self.request.fileno(), datafile.fileno(), 0, 0, ["HTTP/1.1 200 OK\r\n", "Content-Type: text/html\r\n", "Connection: close\r\n\r\n"])
- #print sendfile.sendfile(self.request.fileno(), datafile.fileno(), 0, 0, "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: close\r\n\r\n", 'test')
- else:
- print sendfile.sendfile(self.request.fileno(), datafile.fileno(), 0, 0)
- self.request.close()
-SocketServer.ThreadingTCPServer.request_queue_size = socket.SOMAXCONN
-SocketServer.ThreadingTCPServer.allow_reuse_address = True
-server = SocketServer.ThreadingTCPServer (('', 8079), handler)
-server.serve_forever()
+#!/usr/bin/env python
+#
+# $Id$
+#
+
+import unittest
+import os
+import sys
+import socket
+
+import sendfile
+
+TESTFN = "$testfile"
+HOST = '127.0.0.1'
+#
+FREEBSD = sys.platform.startswith('freebsd')
+OSX = sys.platform.startswith('darwin')
+
+
+class TestSendfile(unittest.TestCase):
+
+ def tearDown(self):
+ if os.path.exists(TESTFN):
+ os.remove(TESTFN)
+
+ def test_base(self):
+ f = open(TESTFN, 'wb')
+ f.write("testdata")
+ f.close()
+
+ serv = socket.socket()
+ serv.bind((HOST, 0))
+ serv.listen(5)
+ cli = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ cli.connect((HOST, serv.getsockname()[1]))
+
+ #
+ fp = open(TESTFN, 'rb')
+ self.assertEqual((5, 6), sendfile.sendfile(cli.fileno(), fp.fileno(), 1, 5))
+ recv = serv.accept()[0]
+ self.assertEqual(b"estda", recv.recv(1024))
+
+def test_main():
+ tests = [TestSendfile]
+ test_suite = unittest.TestSuite()
+ for test_class in tests:
+ test_suite.addTest(unittest.makeSuite(test_class))
+ unittest.TextTestRunner(verbosity=2).run(test_suite)
+
+
+if __name__ == '__main__':
+ test_main()
+
+