OLD | NEW |
| (Empty) |
1 from twisted.trial import unittest | |
2 import os | |
3 from twisted.web import static | |
4 | |
5 class FakeRequest: | |
6 method = 'GET' | |
7 | |
8 _headers = None | |
9 _setHeaders = None | |
10 _written = '' | |
11 | |
12 def __init__(self): | |
13 self._headers = {} | |
14 self._setHeaders = {} | |
15 | |
16 def getHeader(self, k): | |
17 if self._headers is None: | |
18 return None | |
19 return self._headers.get(k) | |
20 | |
21 def setHeader(self, k, v): | |
22 self._setHeaders.setdefault(k, []).append(v) | |
23 | |
24 def setLastModified(self, x): | |
25 pass | |
26 def registerProducer(self, producer, x): | |
27 producer.resumeProducing() | |
28 def unregisterProducer(self): | |
29 pass | |
30 def finish(self): | |
31 pass | |
32 | |
33 def write(self, data): | |
34 self._written = self._written + data | |
35 | |
36 class Range(unittest.TestCase): | |
37 todo = (unittest.FailTest, 'No range support yet.') | |
38 | |
39 def setUp(self): | |
40 self.tmpdir = self.mktemp() | |
41 os.mkdir(self.tmpdir) | |
42 name = os.path.join(self.tmpdir, 'junk') | |
43 f = file(name, 'w') | |
44 f.write(8000 * 'x') | |
45 f.close() | |
46 self.file = static.File(name) | |
47 self.request = FakeRequest() | |
48 | |
49 def testBodyLength(self): | |
50 self.request._headers['range'] = 'bytes=0-1999' | |
51 self.file.render(self.request) | |
52 self.assertEquals(len(self.request._written), 2000) | |
53 | |
54 def testContentLength(self): | |
55 """Content-Length of a request is correct.""" | |
56 self.request._headers['range'] = 'bytes=0-1999' | |
57 self.file.render(self.request) | |
58 self.assertEquals(self.request._setHeaders['content-length'], ['2000']) | |
59 | |
60 def testContentRange(self): | |
61 """Content-Range of a request is correct.""" | |
62 self.request._headers['range'] = 'bytes=0-1999' | |
63 self.file.render(self.request) | |
64 self.assertEquals(self.request._setHeaders.get('content-range'), ['bytes
0-1999/8000']) | |
OLD | NEW |