diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2011-02-03 13:09:04 +0000 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2011-02-03 13:09:04 +0000 |
commit | 06da26bd082a6ed5d2c82a471b8d87da2845d71a (patch) | |
tree | 408ab22a48d0ff27ff91b0d87c405629c490c42e | |
parent | bfae5cab1e93098f2b1f44b53ed1971bdeeb72a4 (diff) | |
download | pysendfile-06da26bd082a6ed5d2c82a471b8d87da2845d71a.tar.gz |
issue 1: first test suite draft
-rw-r--r-- | test.py | 71 |
1 files changed, 54 insertions, 17 deletions
@@ -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() + + |