diff options
| author | Jonathan Lange <jml@mumak.net> | 2015-11-02 19:59:04 +0000 |
|---|---|---|
| committer | Jonathan Lange <jml@mumak.net> | 2015-11-09 13:24:01 +0000 |
| commit | 291e02cd09db3afe2860c01a35699f2463dd8f46 (patch) | |
| tree | 2ed555aad0e7e92db8fb7857e6fe27a38a3f4dc8 /testtools | |
| parent | 37040d577d4b011e4f79d2afe663889ff435e1c4 (diff) | |
| download | testtools-291e02cd09db3afe2860c01a35699f2463dd8f46.tar.gz | |
Extract got_file
Diffstat (limited to 'testtools')
| -rw-r--r-- | testtools/testresult/real.py | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/testtools/testresult/real.py b/testtools/testresult/real.py index 70800dd..e2963ae 100644 --- a/testtools/testresult/real.py +++ b/testtools/testresult/real.py @@ -702,6 +702,24 @@ class TestRecord(PRecord): """ return self.set(timestamps=(self.timestamps[0], timestamp)) + def got_file(self, file_name, file_bytes, mime_type=None): + """Called when we receive file information. + + ``mime_type`` is only used when this is the first time we've seen data + from this file. + """ + if file_name in self.details: + case = self + else: + content_type = _make_content_type(mime_type) + content_bytes = [] + case = self.transform( + ['details', file_name], + Content(content_type, lambda: content_bytes)) + + case.details[file_name].iter_bytes().append(file_bytes) + return case + class StreamToDict(StreamResult): """A specialised StreamResult that emits a callback as tests complete. @@ -772,14 +790,7 @@ class StreamToDict(StreamResult): case = case.got_timestamp(timestamp) if file_name is not None: - if file_name not in case.details: - content_type = _make_content_type(mime_type) - content_bytes = [] - case = case.transform( - ['details', file_name], - Content(content_type, lambda: content_bytes)) - - case.details[file_name].iter_bytes().append(file_bytes) + case = case.got_file(file_name, file_bytes, mime_type) if test_tags is not None: case = case.set('tags', test_tags) |
