diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2011-04-16 20:05:01 +0000 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2011-04-16 20:05:01 +0000 |
commit | bb6b7e63015f1f405806f694fd6e95b4ba084b04 (patch) | |
tree | ea28bbe7ad9e4941c78fa430227d5b4cfe9ac03b /test | |
parent | 136bc37576fe5a8e8330fdb26f003de1deb8ae48 (diff) | |
download | pysendfile-bb6b7e63015f1f405806f694fd6e95b4ba084b04.tar.gz |
add empty file and small file tests
Diffstat (limited to 'test')
-rw-r--r-- | test/test_sendfile.py | 82 |
1 files changed, 62 insertions, 20 deletions
diff --git a/test/test_sendfile.py b/test/test_sendfile.py index b469427..40c9419 100644 --- a/test/test_sendfile.py +++ b/test/test_sendfile.py @@ -172,7 +172,7 @@ class TestSendfile(unittest.TestCase): data = self.server.handler_instance.get_data() self.assertEqual(hash(data), hash(DATA)) - def test_send_at_certain_offset(self): + def test_send_from_certain_offset(self): # start sending a file at a certain offset total_sent = 0 offset = int(len(DATA) / 2) @@ -192,25 +192,6 @@ class TestSendfile(unittest.TestCase): self.assertEqual(total_sent, len(expected)) self.assertEqual(hash(data), hash(expected)) - def test_offset_overflow(self): - # specify an offset > file size - offset = len(DATA) + 4096 - sent = sendfile.sendfile(self.sockno, self.fileno, offset, 4096) - self.assertEqual(sent, 0) - self.client.close() - self.server.wait() - data = self.server.handler_instance.get_data() - self.assertEqual(data, _bytes('')) - - def test_invalid_offset(self): - try: - sendfile.sendfile(self.sockno, self.fileno, -1, 4096) - except OSError: - err = sys.exc_info()[1] - self.assertEqual(err.errno, errno.EINVAL) - else: - self.fail("exception not raised") - def test_header(self): total_sent = 0 header = _bytes("x") * 512 @@ -277,6 +258,67 @@ class TestSendfile(unittest.TestCase): if err.errno not in (errno.EBUSY, errno.EAGAIN): raise + # --- corner cases + + def test_offset_overflow(self): + # specify an offset > file size + offset = len(DATA) + 4096 + sent = sendfile.sendfile(self.sockno, self.fileno, offset, 4096) + self.assertEqual(sent, 0) + self.client.close() + self.server.wait() + data = self.server.handler_instance.get_data() + self.assertEqual(data, _bytes('')) + + def test_invalid_offset(self): + try: + sendfile.sendfile(self.sockno, self.fileno, -1, 4096) + except OSError: + err = sys.exc_info()[1] + self.assertEqual(err.errno, errno.EINVAL) + else: + self.fail("exception not raised") + + def test_small_file(self): + data = _bytes('foo bar') + f = open(TESTFN2, 'wb') + f.write(data) + f.close() + f = open(TESTFN2, 'rb') + + sendfile_wrapper(self.sockno, f.fileno(), 0, 4096) + self.client.close() + self.server.wait() + data_sent = self.server.handler_instance.get_data() + self.assertEqual(data_sent, data) + + def test_small_file_and_offset_overflow(self): + data = _bytes('foo bar') + f = open(TESTFN2, 'wb') + f.write(data) + f.close() + f = open(TESTFN2, 'rb') + + sendfile_wrapper(self.sockno, f.fileno(), 4096, 4096) + self.client.close() + self.server.wait() + data_sent = self.server.handler_instance.get_data() + self.assertEqual(data_sent, _bytes('')) + + def test_empty_file(self): + data = _bytes('') + f = open(TESTFN2, 'wb') + f.write(data) + f.close() + f = open(TESTFN2, 'rb') + + sendfile_wrapper(self.sockno, f.fileno(), 0, 4096) + self.client.close() + self.server.wait() + data_sent = self.server.handler_instance.get_data() + self.assertEqual(data_sent, data) + + def test_main(): def cleanup(): |