[tor-commits] [stem/master] Making descriptor reader skip tests more resilient

atagar at torproject.org atagar at torproject.org
Sun Apr 15 02:50:21 UTC 2012

commit 04176384995a89555067ddecf4cf6a7fe882ce39
Author: Damian Johnson <atagar at torproject.org>
Date:   Sat Apr 14 17:03:28 2012 -0700

    Making descriptor reader skip tests more resilient
    Couple problems with the skip tests for the descriptor reader:
    - A bug in the test for skipping unmodified files caused the test to rely on
      the order in which descriptors were read. It had a check that should have
      caught this, but rather than "assertEqual(1, len(skipped_files))" it had
      "assertTrue(1, len(skipped_files))".
      Fixed the check and narrowed the test to just the single descriptor file
      that it was supposed to test against.
    - The test which checks that we properly skip and report non-descriptor content
      would fail if other files are added to the data directory. This is as it
      should be, but the error message wasn't helpful and I've encountered this a
      lot due to vim '.swp' files.
 test/integ/descriptor/reader.py |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/test/integ/descriptor/reader.py b/test/integ/descriptor/reader.py
index 1444dbb..5c84704 100644
--- a/test/integ/descriptor/reader.py
+++ b/test/integ/descriptor/reader.py
@@ -302,7 +302,11 @@ class TestDescriptorReader(unittest.TestCase):
     self.assertTrue(2, len(skip_listener.results))
     for skip_path, skip_exception in skip_listener.results:
-      self.assertTrue(os.path.basename(skip_path) in ("riddle", "tiny.png"))
+      if skip_path.endswith(".swp"): continue # skip vim temp files
+      if not os.path.basename(skip_path) in ("riddle", "tiny.png"):
+        self.fail("Unexpected non-descriptor content: %s" % skip_path)
       self.assertTrue(isinstance(skip_exception, stem.descriptor.reader.UnrecognizedType))
   def test_skip_listener_already_read(self):
@@ -317,14 +321,14 @@ class TestDescriptorReader(unittest.TestCase):
     initial_processed_files = {test_path: sys.maxint}
     skip_listener = SkipListener()
-    reader = stem.descriptor.reader.DescriptorReader([DESCRIPTOR_TEST_DATA])
+    reader = stem.descriptor.reader.DescriptorReader([test_path])
     self.assertEquals(initial_processed_files, reader.get_processed_files())
     with reader: list(reader) # iterates over all of the descriptors
-    self.assertTrue(1, len(skip_listener.results))
+    self.assertEquals(1, len(skip_listener.results))
     skipped_path, skip_exception = skip_listener.results[0]
     self.assertEqual(test_path, skipped_path)

More information about the tor-commits mailing list