[stem/master] Integ test for skipping a file due to its mime type

commit 9f8683f182b1199ba1eb6955130e46db0bae5372 Author: Damian Johnson <atagar@torproject.org> Date: Sun Mar 11 15:05:54 2012 -0700 Integ test for skipping a file due to its mime type Adding an integration test that listens for a file which is skipped due to a type indicating that it doesn't contain descriptor data. --- stem/descriptor/reader.py | 2 +- test/integ/descriptor/reader.py | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletions(-) diff --git a/stem/descriptor/reader.py b/stem/descriptor/reader.py index 8a1be75..0dde2a9 100644 --- a/stem/descriptor/reader.py +++ b/stem/descriptor/reader.py @@ -338,7 +338,7 @@ class DescriptorReader(threading.Thread): pass # TODO: implement def _notify_skip_listeners(self, path, exception): - for listener in self.skip_listeners: + for listener in self._skip_listeners: listener(path, exception) def __enter__(self): diff --git a/test/integ/descriptor/reader.py b/test/integ/descriptor/reader.py index e8a6c20..4ef1d58 100644 --- a/test/integ/descriptor/reader.py +++ b/test/integ/descriptor/reader.py @@ -37,6 +37,13 @@ def _make_processed_files_listing(contents): return test_listing_path +class SkipListener: + def __init__(self): + self.results = [] # (path, exception) tuples that we've received + + def listener(self, path, exception): + self.results.append((path, exception)) + class TestDescriptorReader(unittest.TestCase): def tearDown(self): # cleans up 'processed file' listings that we made @@ -211,4 +218,35 @@ class TestDescriptorReader(unittest.TestCase): for descriptor in reader: if str(descriptor) == skip_contents: self.fail() # we read the file that we were trying to skip + + def test_skip_listener_unrecognized_type(self): + """ + Listens for a file that's skipped because its file type isn't recognized. + """ + + # types are solely based on file extensions so making something that looks + # like an png image + + test_path = os.path.join(test.runner.get_runner().get_test_dir(), "test.png") + + with open(test_path, "w") as test_file: + test_file.write("test data for test_skip_listener_unrecognized_type()") + + skip_listener = SkipListener() + reader = stem.descriptor.reader.DescriptorReader([test_path]) + reader.register_skip_listener(skip_listener.listener) + + with reader: + for descriptor in reader: + pass + + self.assertTrue(len(skip_listener.results) == 1) + + skipped_path, skip_exception = skip_listener.results[0] + self.assertEqual(test_path, skipped_path) + self.assertTrue(isinstance(skip_exception, stem.descriptor.reader.UnrecognizedType)) + self.assertEqual(("image/png", None), skip_exception.mime_type) + + if os.path.exists(test_path): + os.remove(test_path)
participants (1)
-
atagar@torproject.org