duplicate for split tests
authorPaul Nasrat <pnasrat@redhat.com>
Thu, 20 Jul 2006 21:15:36 +0000 (21:15 +0000)
committerPaul Nasrat <pnasrat@redhat.com>
Thu, 20 Jul 2006 21:15:36 +0000 (21:15 +0000)
test/testSplitMetaDataGenerator.py [new file with mode: 0644]

diff --git a/test/testSplitMetaDataGenerator.py b/test/testSplitMetaDataGenerator.py
new file mode 100644 (file)
index 0000000..6e5ed5d
--- /dev/null
@@ -0,0 +1,144 @@
+#!/usr/bin/python
+
+import os
+import shutil
+import sys
+import tempfile
+import unittest
+
+sys.path.append("..")
+
+from genpkgmetadata import SplitMetaDataGenerator
+
+class SplitMetaDataGeneratorTestCase(unittest.TestCase):
+
+    def setUp(self):
+        self.tempdir = tempfile.mkdtemp(prefix="generate")
+        self.mdgen = SplitMetaDataGenerator({})
+        self.basepath = os.path.dirname(self.tempdir)
+        self.directory = os.path.basename(self.tempdir)
+        self.files = {}
+
+    def __addFile(self, dir, ext):
+        f = tempfile.NamedTemporaryFile(suffix=ext, dir=dir)
+        self.files[f.name] = f
+
+    def tearDown(self):
+        self.mdgen = None
+        for fname, fobj in self.files.items():
+            fobj.close()
+            del(self.files[fname])
+        if self.tempdir:
+            shutil.rmtree(self.tempdir)
+
+    def testNoFiles(self):
+        """Test when target directory empty of files"""
+        results = self.mdgen.getFileList(self.basepath, self.directory, ".test")
+        self.assertEquals(results, [], msg="Expected no files")
+
+    def testMatch(self):
+        """Test single file matching extension"""
+        self.__addFile(self.tempdir, ".test")
+        results = self.mdgen.getFileList(self.basepath, self.directory, ".test")
+        self.assertEquals(len(results), 1, msg="Expected one file")
+
+    def testMatches(self):
+        """Test right number of files returned with both matches and non"""
+        self.__addFile(self.tempdir, ".test")
+        self.__addFile(self.tempdir, ".test")
+        self.__addFile(self.tempdir, ".notme")
+        results = self.mdgen.getFileList(self.basepath, self.directory, ".test")
+        self.assertEquals(len(results), 2, msg="Expected one file")
+
+    def testNoMatches(self):
+        """Test single file not matching extension"""
+        self.__addFile(self.tempdir, ".notme")
+        results = self.mdgen.getFileList(self.basepath, self.directory, ".test")
+        self.assertEquals(results, [], msg="Expected no matching files")
+
+    def testReturnPath(self):
+        """Test matching file referenced by directory passed in"""
+        self.__addFile(self.tempdir, ".test")
+        results = self.mdgen.getFileList(self.basepath, self.directory, ".test")
+        filedir = os.path.dirname(results[0])
+        self.assertEquals(filedir, self.directory, msg="Returned directory "
+                          "should be passed in directory")
+
+    def testCurrentDirectoryNoMatches(self):
+        """Test when target directory child of cwd no matches"""
+        oldwd = os.getcwd()
+        os.chdir(self.basepath)
+        results = self.mdgen.getFileList(".", self.directory, ".test")
+        os.chdir(oldwd)
+        self.assertEquals(results, [], msg="Expected no files")
+
+    def testCurrentDirectoryMatches(self):
+        """Test when target directory child of cwd matches"""
+        self.__addFile(self.tempdir, ".test")
+        oldwd = os.getcwd()
+        os.chdir(self.basepath)
+        results = self.mdgen.getFileList(".", self.directory, ".test")
+        os.chdir(oldwd)
+        self.assertEquals(len(results), 1, msg="Expected one file")
+
+    def testCurrentDirectoryReturnPath(self):
+        self.__addFile(self.tempdir, ".test")
+        oldwd = os.getcwd()
+        os.chdir(self.basepath)
+        results = self.mdgen.getFileList(".", self.directory, ".test")
+        filedir = os.path.dirname(results[0])
+        os.chdir(oldwd)
+        self.assertEquals(filedir, self.directory, msg="Returned directory "
+                          "should be passed in directory")
+
+    def testParallelDirectoryNoMatches(self):
+        """Test when target directory parallel to cwd no matches"""
+        oldwd = os.getcwd()
+        paralleldir = tempfile.mkdtemp(prefix="parallel")
+        os.chdir(paralleldir)
+        results = self.mdgen.getFileList("..", self.directory, ".test")
+        os.chdir(oldwd)
+        self.assertEquals(results, [], msg="Expected no files")
+
+    def testParallelDirectoryMatches(self):
+        """Test when target directory parallel to cwd matches"""
+        self.__addFile(self.tempdir, ".test")
+        oldwd = os.getcwd()
+        paralleldir = tempfile.mkdtemp(prefix="parallel")
+        os.chdir(paralleldir)
+        results = self.mdgen.getFileList("..", self.directory, ".test")
+        os.chdir(oldwd)
+        self.assertEquals(len(results), 1, msg="Expected no files")
+
+    def testParallelDirectoryReturnPath(self):
+        self.__addFile(self.tempdir, ".test")
+        oldwd = os.getcwd()
+        paralleldir = tempfile.mkdtemp(prefix="parallel")
+        os.chdir(paralleldir)
+        results = self.mdgen.getFileList("..", self.directory, ".test")
+        filedir = os.path.dirname(results[0])
+        os.chdir(oldwd)
+        self.assertEquals(filedir, self.directory, msg="Returned directory "
+                          "should be passed in directory")
+
+
+
+def suite():
+    suite = unittest.TestSuite()
+    suite.addTest(SplitMetaDataGeneratorTestCase("testNoFiles"))
+    suite.addTest(SplitMetaDataGeneratorTestCase("testMatch"))
+    suite.addTest(SplitMetaDataGeneratorTestCase("testNoMatches"))
+    suite.addTest(SplitMetaDataGeneratorTestCase("testMatches"))
+    suite.addTest(SplitMetaDataGeneratorTestCase("testReturnPath"))
+    suite.addTest(SplitMetaDataGeneratorTestCase("testCurrentDirectoryNoMatches"))
+    suite.addTest(SplitMetaDataGeneratorTestCase("testCurrentDirectoryMatches"))
+    suite.addTest(SplitMetaDataGeneratorTestCase("testCurrentDirectoryReturnPath"))
+    suite.addTest(SplitMetaDataGeneratorTestCase("testParallelDirectoryNoMatches"))
+    suite.addTest(SplitMetaDataGeneratorTestCase("testParallelDirectoryMatches"))
+    suite.addTest(SplitMetaDataGeneratorTestCase("testParallelDirectoryReturnPath"))
+    return suite
+
+if __name__ == "__main__":
+    testrunner = unittest.TextTestRunner()
+    testrunner.run(suite())
+