changeset 24655:528ace39c85c

test-manifest: make manifesttest a base class that is extended The implementation of the testmanifest test case is moved to a new base class, which is then extended to make the testmanifest. And instead of testmanifest, the subclass is named testmanifestdict because, well, that's what it's testing. This refactoring makes it possible to create alternate versions of what was formerly testmanifest, improving test coverage of different manifestdict implementations.
author Drew Gottlieb <drgott@google.com>
date Tue, 07 Apr 2015 15:16:19 -0700
parents 9d6db63ccf00
children 29c238e4a58a
files tests/test-manifest.py
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/tests/test-manifest.py	Tue Apr 07 15:16:19 2015 -0700
+++ b/tests/test-manifest.py	Tue Apr 07 15:16:19 2015 -0700
@@ -95,9 +95,9 @@
                    itertools.cycle((HASH_1, HASH_2)),
                    itertools.cycle(('', 'x', 'l')))))
 
-class testmanifest(unittest.TestCase):
+class basemanifesttests(object):
     def parsemanifest(self, text):
-        return manifestmod.manifestdict(text)
+        raise NotImplementedError('parsemanifest not implemented by test case')
 
     def assertIn(self, thing, container, msg=None):
         # assertIn new in 2.7, use it if available, otherwise polyfill
@@ -456,5 +456,9 @@
                 ['a/b/c/bar.txt', 'a/b/c/foo.txt', 'a/b/d/ten.txt'],
                 m2.keys())
 
+class testmanifestdict(unittest.TestCase, basemanifesttests):
+    def parsemanifest(self, text):
+        return manifestmod.manifestdict(text)
+
 if __name__ == '__main__':
     silenttestrunner.main(__name__)