コード例 #1
0
ファイル: testServerLSST.py プロジェクト: mwittgen/eups
    def testListPackages(self):
        self.repos = Repositories([self.localroot, self.lsstroot],
                                  eupsenv=self.eups,
                                  options=self.opts)
        self.assertEqual(len(self.repos.pkgroots), 2)

        pkgs = self.repos.listPackages()
        self.assert_(pkgs is not None)
        self.assert_(isinstance(pkgs, list))
        self.assertEqual(len(pkgs), 2)  # the # of repositories
        self.assertEqual(len(pkgs[0]), 2)  # (pkgroot, pkg-list)
        self.assertEqual(len(pkgs[1]), 2)  # (pkgroot, pkg-list)
        self.assertEqual(len(pkgs[0][1]), 1)  # # of products per repos.
        self.assertEqual(len(pkgs[0][1][0]), 3)  # # of attrs per product
        self.assertEqual(pkgs[0][1][0][0], "doxygen")
        self.assertEqual(pkgs[0][1][0][1], "1.5.8")
        self.assertEqual(pkgs[0][1][0][2], "generic")
        self.assert_(len(pkgs[1][1]) > 300)  # # of products per repos.

        pkgs = self.repos.listPackages("doxygen")
        pkgs = self.repos.listPackages("doxygen")
        self.assert_(pkgs is not None)
        self.assert_(isinstance(pkgs, list))
        self.assertEqual(len(pkgs), 2)
        self.assertEqual(len(pkgs[0][1]), 1)  # # of products per repos.
        self.assertEqual(pkgs[0][1][0][0], "doxygen")
        self.assertEqual(pkgs[0][1][0][1], "1.5.8")
        self.assertEqual(pkgs[0][1][0][2], "generic")
        self.assertEqual(len(pkgs[1][1]), 5)  # # of products per repos.
        self.assertEqual(pkgs[1][1][0][0], "doxygen")
        self.assertEqual(pkgs[1][1][0][1], "1.5.4")
        self.assertEqual(pkgs[1][1][1][1], "1.5.7.1")
        self.assertEqual(pkgs[1][1][4][1], "1.5.9")
        self.assertEqual(pkgs[1][1][2][1], "1.5.8")
        self.assertEqual(pkgs[1][1][3][1], "1.5.8+1")
コード例 #2
0
ファイル: testServerLSST.py プロジェクト: CraigLoomis/eups
    def testListPackages(self):
        self.repos = Repositories([self.localroot, self.lsstroot],
                                  eupsenv=self.eups, options=self.opts)
        self.assertEquals(len(self.repos.pkgroots), 2)

        pkgs = self.repos.listPackages()
        self.assert_(pkgs is not None)
        self.assert_(isinstance(pkgs, list))
        self.assertEquals(len(pkgs), 2)           # the # of repositories
        self.assertEquals(len(pkgs[0]), 2)        # (pkgroot, pkg-list)
        self.assertEquals(len(pkgs[1]), 2)        # (pkgroot, pkg-list)
        self.assertEquals(len(pkgs[0][1]), 1)     # # of products per repos.
        self.assertEquals(len(pkgs[0][1][0]), 3)  # # of attrs per product
        self.assertEquals(pkgs[0][1][0][0], "doxygen")
        self.assertEquals(pkgs[0][1][0][1], "1.5.8")
        self.assertEquals(pkgs[0][1][0][2], "generic")
        self.assert_(len(pkgs[1][1]) > 300)       # # of products per repos.

        pkgs = self.repos.listPackages("doxygen")
        pkgs = self.repos.listPackages("doxygen")
        self.assert_(pkgs is not None)
        self.assert_(isinstance(pkgs, list))
        self.assertEquals(len(pkgs), 2)
        self.assertEquals(len(pkgs[0][1]), 1)     # # of products per repos.
        self.assertEquals(pkgs[0][1][0][0], "doxygen")
        self.assertEquals(pkgs[0][1][0][1], "1.5.8")
        self.assertEquals(pkgs[0][1][0][2], "generic")
        self.assertEquals(len(pkgs[1][1]), 5)     # # of products per repos.
        self.assertEquals(pkgs[1][1][0][0], "doxygen")
        self.assertEquals(pkgs[1][1][0][1], "1.5.4")
        self.assertEquals(pkgs[1][1][1][1], "1.5.7.1")
        self.assertEquals(pkgs[1][1][4][1], "1.5.9")
        self.assertEquals(pkgs[1][1][2][1], "1.5.8")
        self.assertEquals(pkgs[1][1][3][1], "1.5.8+1")
コード例 #3
0
ファイル: testServerLSST.py プロジェクト: mwittgen/eups
    def testFindPackage1(self):
        self.repos = Repositories([self.localroot, self.lsstroot],
                                  eupsenv=self.eups,
                                  options=self.opts)
        self.assertEqual(len(self.repos.pkgroots), 2)

        pkg = self.repos.findPackage("doxygen")
        self.assert_(pkg is not None)
        self.assertEqual(pkg[0], "doxygen")
        self.assertEqual(pkg[1], "1.5.9")
        self.assertEqual(pkg[2], "generic")
        self.assertEqual(pkg[3], self.lsstroot)

        pkg = self.repos.findPackage("doxygen", "1.5.9")
        self.assert_(pkg is not None)
        self.assertEqual(pkg[0], "doxygen")
        self.assertEqual(pkg[1], "1.5.9")
        self.assertEqual(pkg[2], "generic")
        self.assertEqual(pkg[3], self.lsstroot)

        pkg = self.repos.findPackage("doxygen", "1.5.8")
        self.assert_(pkg is not None)
        self.assertEqual(pkg[0], "doxygen")
        self.assertEqual(pkg[1], "1.5.8")
        self.assertEqual(pkg[2], "generic")
        self.assertEqual(pkg[3], self.localroot)

        pkg = self.repos.findPackage("doxygen", "1.5.0")
        self.assert_(pkg is None)

        pkg = self.repos.findPackage("doxygen", "1.5.9", "Linux")
        self.assert_(pkg is None)

        pkg = self.repos.findPackage("doxygen", "1.5.9", "generic")
        self.assert_(pkg is not None)
        self.assertEqual(pkg[0], "doxygen")
        self.assertEqual(pkg[1], "1.5.9")
        self.assertEqual(pkg[2], "generic")
        self.assertEqual(pkg[3], self.lsstroot)

        tag = Tag("latest")
        pkg = self.repos.findPackage("doxygen", tag)
        self.assert_(pkg is not None)
        self.assertEqual(pkg[0], "doxygen")
        self.assertEqual(pkg[1], "1.5.9")
        self.assertEqual(pkg[2], "generic")
        self.assertEqual(pkg[3], self.lsstroot)
コード例 #4
0
ファイル: testServerLSST.py プロジェクト: CraigLoomis/eups
    def testFindPackage1(self):
        self.repos = Repositories([self.localroot, self.lsstroot],
                                  eupsenv=self.eups, options=self.opts)
        self.assertEquals(len(self.repos.pkgroots), 2)

        pkg = self.repos.findPackage("doxygen")
        self.assert_(pkg is not None)
        self.assertEquals(pkg[0], "doxygen")
        self.assertEquals(pkg[1], "1.5.9")
        self.assertEquals(pkg[2], "generic")
        self.assertEquals(pkg[3], self.lsstroot)

        pkg = self.repos.findPackage("doxygen", "1.5.9")
        self.assert_(pkg is not None)
        self.assertEquals(pkg[0], "doxygen")
        self.assertEquals(pkg[1], "1.5.9")
        self.assertEquals(pkg[2], "generic")
        self.assertEquals(pkg[3], self.lsstroot)

        pkg = self.repos.findPackage("doxygen", "1.5.8")
        self.assert_(pkg is not None)
        self.assertEquals(pkg[0], "doxygen")
        self.assertEquals(pkg[1], "1.5.8")
        self.assertEquals(pkg[2], "generic")
        self.assertEquals(pkg[3], self.localroot)

        pkg = self.repos.findPackage("doxygen", "1.5.0")
        self.assert_(pkg is None)

        pkg = self.repos.findPackage("doxygen", "1.5.9", "Linux")
        self.assert_(pkg is None)

        pkg = self.repos.findPackage("doxygen", "1.5.9", "generic")
        self.assert_(pkg is not None)
        self.assertEquals(pkg[0], "doxygen")
        self.assertEquals(pkg[1], "1.5.9")
        self.assertEquals(pkg[2], "generic")
        self.assertEquals(pkg[3], self.lsstroot)

        tag = Tag("newest")
        pkg = self.repos.findPackage("doxygen", tag)
        self.assert_(pkg is not None)
        self.assertEquals(pkg[0], "doxygen")
        self.assertEquals(pkg[1], "1.5.9")
        self.assertEquals(pkg[2], "generic")
        self.assertEquals(pkg[3], self.lsstroot)
コード例 #5
0
 def setUp(self):
     os.environ["EUPS_PATH"] = testEupsStack
     self.pkgroot = os.path.join(testEupsStack, "testserver", "s2")
     self.eups = Eups()
     self.repos = Repositories("|".join([self.pkgroot, self.pkgroot]),
                               eupsenv=self.eups)
コード例 #6
0
class LocalRepositoriesTestCase(unittest.TestCase):
    def setUp(self):
        os.environ["EUPS_PATH"] = testEupsStack
        self.pkgroot = os.path.join(testEupsStack, "testserver", "s2")
        self.eups = Eups()
        self.repos = Repositories("|".join([self.pkgroot, self.pkgroot]),
                                  eupsenv=self.eups)

    def tearDown(self):
        pass

    def testInit(self):
        self.assertEqual(len(self.repos.pkgroots), 2)

    def testListPackages(self):
        pkgs = self.repos.listPackages()
        self.assertTrue(pkgs is not None)
        self.assertTrue(isinstance(pkgs, list))
        self.assertEqual(len(pkgs), 2)  # the # of repositories
        self.assertEqual(len(pkgs[0]), 2)  # (pkgroot, pkg-list)
        self.assertEqual(len(pkgs[1]), 2)  # (pkgroot, pkg-list)
        self.assertEqual(len(pkgs[0][1]), 1)  # # of products per repos.
        self.assertEqual(len(pkgs[0][1][0]), 3)  # # of attrs per product
        self.assertEqual(pkgs[0][1][0][0], "doxygen")
        self.assertEqual(pkgs[0][1][0][1], "1.5.8")
        self.assertEqual(pkgs[0][1][0][2], "generic")
        self.assertEqual(pkgs[1][1][0][0], "doxygen")
        self.assertEqual(pkgs[1][1][0][1], "1.5.8")
        self.assertEqual(pkgs[1][1][0][2], "generic")

        pkgs = self.repos.listPackages("doxygen")
        self.assertTrue(pkgs is not None)
        self.assertTrue(isinstance(pkgs, list))
        self.assertEqual(len(pkgs), 2)
        self.assertEqual(pkgs[0][1][0][0], "doxygen")
        self.assertEqual(pkgs[0][1][0][1], "1.5.8")
        self.assertEqual(pkgs[0][1][0][2], "generic")

        pkgs = self.repos.listPackages("doxygen", "1.5.10")
        self.assertTrue(pkgs is not None)
        self.assertTrue(isinstance(pkgs, list))
        self.assertEqual(len(pkgs), 2)  # the # of repositories
        self.assertEqual(len(pkgs[0][1]), 0)  # # of products per repos.
        self.assertEqual(len(pkgs[1][1]), 0)  # # of products per repos.

        tag = Tag("latest")
        pkgs = self.repos.listPackages("doxygen", tag)
        self.assertTrue(pkgs is not None)
        self.assertTrue(isinstance(pkgs, list))
        self.assertEqual(len(pkgs), 2)
        self.assertEqual(pkgs[0][1][0][0], "doxygen")
        self.assertEqual(pkgs[0][1][0][1], "1.5.8")
        self.assertEqual(pkgs[0][1][0][2], "generic")
        self.assertEqual(pkgs[1][1][0][0], "doxygen")
        self.assertEqual(pkgs[1][1][0][1], "1.5.8")
        self.assertEqual(pkgs[1][1][0][2], "generic")

    def testFindPackage(self):
        pkg = self.repos.findPackage("doxygen")
        self.assertTrue(pkg is not None)
        self.assertEqual(pkg[0], "doxygen")
        self.assertEqual(pkg[1], "1.5.8")
        self.assertEqual(pkg[2], "generic")

        pkg = self.repos.findPackage("doxygen", "1.5.8")
        self.assertTrue(pkg is not None)
        self.assertEqual(pkg[0], "doxygen")
        self.assertEqual(pkg[1], "1.5.8")
        self.assertEqual(pkg[2], "generic")
        self.assertEqual(pkg[3], self.pkgroot)

        pkg = self.repos.findPackage("doxygen", "1.5.0")
        self.assertTrue(pkg is None)

        pkg = self.repos.findPackage("doxygen", "1.5.8", "Linux")
        self.assertTrue(pkg[2] == 'generic')

        pkg = self.repos.findPackage("doxygen", "1.5.8", "generic")
        self.assertTrue(pkg is not None)
        self.assertEqual(pkg[0], "doxygen")
        self.assertEqual(pkg[1], "1.5.8")
        self.assertEqual(pkg[2], "generic")
        self.assertEqual(pkg[3], self.pkgroot)

        tag = Tag("latest")
        pkg = self.repos.findPackage("doxygen", tag)
        self.assertTrue(pkg is not None)
        self.assertEqual(pkg[0], "doxygen")
        self.assertEqual(pkg[1], "1.5.8")
        self.assertEqual(pkg[2], "generic")
        self.assertEqual(pkg[3], self.pkgroot)
コード例 #7
0
ファイル: testServerLSST.py プロジェクト: mwittgen/eups
class LsstRepositoriesTestCase(unittest.TestCase):
    def setUp(self):
        if "EUPS_DIR" not in os.environ:
            os.environ["EUPS_DIR"] = os.path.dirname(testEupsStack)
        self.localroot = os.path.join(testEupsStack, "testserver", "s2")
        self.lsstroot = pkgroot
        self.eups = Eups()
        self.opts = {
            "serverconf": {
                "DISTRIB_SERVER_CLASS":
                "eups.distrib.server.ConfigurableDistribServer",
                "DISTRIB_CLASS": "eups.distrib.Distrib.DefaultDistrib"
            }
        }

    def tearDown(self):
        pass

    def testFindPackage1(self):
        self.repos = Repositories([self.localroot, self.lsstroot],
                                  eupsenv=self.eups,
                                  options=self.opts)
        self.assertEqual(len(self.repos.pkgroots), 2)

        pkg = self.repos.findPackage("doxygen")
        self.assert_(pkg is not None)
        self.assertEqual(pkg[0], "doxygen")
        self.assertEqual(pkg[1], "1.5.9")
        self.assertEqual(pkg[2], "generic")
        self.assertEqual(pkg[3], self.lsstroot)

        pkg = self.repos.findPackage("doxygen", "1.5.9")
        self.assert_(pkg is not None)
        self.assertEqual(pkg[0], "doxygen")
        self.assertEqual(pkg[1], "1.5.9")
        self.assertEqual(pkg[2], "generic")
        self.assertEqual(pkg[3], self.lsstroot)

        pkg = self.repos.findPackage("doxygen", "1.5.8")
        self.assert_(pkg is not None)
        self.assertEqual(pkg[0], "doxygen")
        self.assertEqual(pkg[1], "1.5.8")
        self.assertEqual(pkg[2], "generic")
        self.assertEqual(pkg[3], self.localroot)

        pkg = self.repos.findPackage("doxygen", "1.5.0")
        self.assert_(pkg is None)

        pkg = self.repos.findPackage("doxygen", "1.5.9", "Linux")
        self.assert_(pkg is None)

        pkg = self.repos.findPackage("doxygen", "1.5.9", "generic")
        self.assert_(pkg is not None)
        self.assertEqual(pkg[0], "doxygen")
        self.assertEqual(pkg[1], "1.5.9")
        self.assertEqual(pkg[2], "generic")
        self.assertEqual(pkg[3], self.lsstroot)

        tag = Tag("latest")
        pkg = self.repos.findPackage("doxygen", tag)
        self.assert_(pkg is not None)
        self.assertEqual(pkg[0], "doxygen")
        self.assertEqual(pkg[1], "1.5.9")
        self.assertEqual(pkg[2], "generic")
        self.assertEqual(pkg[3], self.lsstroot)

    def testListPackages(self):
        self.repos = Repositories([self.localroot, self.lsstroot],
                                  eupsenv=self.eups,
                                  options=self.opts)
        self.assertEqual(len(self.repos.pkgroots), 2)

        pkgs = self.repos.listPackages()
        self.assert_(pkgs is not None)
        self.assert_(isinstance(pkgs, list))
        self.assertEqual(len(pkgs), 2)  # the # of repositories
        self.assertEqual(len(pkgs[0]), 2)  # (pkgroot, pkg-list)
        self.assertEqual(len(pkgs[1]), 2)  # (pkgroot, pkg-list)
        self.assertEqual(len(pkgs[0][1]), 1)  # # of products per repos.
        self.assertEqual(len(pkgs[0][1][0]), 3)  # # of attrs per product
        self.assertEqual(pkgs[0][1][0][0], "doxygen")
        self.assertEqual(pkgs[0][1][0][1], "1.5.8")
        self.assertEqual(pkgs[0][1][0][2], "generic")
        self.assert_(len(pkgs[1][1]) > 300)  # # of products per repos.

        pkgs = self.repos.listPackages("doxygen")
        pkgs = self.repos.listPackages("doxygen")
        self.assert_(pkgs is not None)
        self.assert_(isinstance(pkgs, list))
        self.assertEqual(len(pkgs), 2)
        self.assertEqual(len(pkgs[0][1]), 1)  # # of products per repos.
        self.assertEqual(pkgs[0][1][0][0], "doxygen")
        self.assertEqual(pkgs[0][1][0][1], "1.5.8")
        self.assertEqual(pkgs[0][1][0][2], "generic")
        self.assertEqual(len(pkgs[1][1]), 5)  # # of products per repos.
        self.assertEqual(pkgs[1][1][0][0], "doxygen")
        self.assertEqual(pkgs[1][1][0][1], "1.5.4")
        self.assertEqual(pkgs[1][1][1][1], "1.5.7.1")
        self.assertEqual(pkgs[1][1][4][1], "1.5.9")
        self.assertEqual(pkgs[1][1][2][1], "1.5.8")
        self.assertEqual(pkgs[1][1][3][1], "1.5.8+1")
コード例 #8
0
ファイル: testServerLSST.py プロジェクト: CraigLoomis/eups
class LsstRepositoriesTestCase(unittest.TestCase):
    def setUp(self):
        if not os.environ.has_key("EUPS_DIR"):
            os.environ["EUPS_DIR"] = os.path.dirname(testEupsStack)
        self.localroot = os.path.join(testEupsStack, "testserver", "s2")
        self.lsstroot = pkgroot
        self.eups = Eups()
        self.opts = { "serverconf": 
                      { "DISTRIB_SERVER_CLASS": "eups.distrib.server.ConfigurableDistribServer",
                        "DISTRIB_CLASS": "eups.distrib.Distrib.DefaultDistrib" }
                      }

    def tearDown(self):
        pass

    def testFindPackage1(self):
        self.repos = Repositories([self.localroot, self.lsstroot],
                                  eupsenv=self.eups, options=self.opts)
        self.assertEquals(len(self.repos.pkgroots), 2)

        pkg = self.repos.findPackage("doxygen")
        self.assert_(pkg is not None)
        self.assertEquals(pkg[0], "doxygen")
        self.assertEquals(pkg[1], "1.5.9")
        self.assertEquals(pkg[2], "generic")
        self.assertEquals(pkg[3], self.lsstroot)

        pkg = self.repos.findPackage("doxygen", "1.5.9")
        self.assert_(pkg is not None)
        self.assertEquals(pkg[0], "doxygen")
        self.assertEquals(pkg[1], "1.5.9")
        self.assertEquals(pkg[2], "generic")
        self.assertEquals(pkg[3], self.lsstroot)

        pkg = self.repos.findPackage("doxygen", "1.5.8")
        self.assert_(pkg is not None)
        self.assertEquals(pkg[0], "doxygen")
        self.assertEquals(pkg[1], "1.5.8")
        self.assertEquals(pkg[2], "generic")
        self.assertEquals(pkg[3], self.localroot)

        pkg = self.repos.findPackage("doxygen", "1.5.0")
        self.assert_(pkg is None)

        pkg = self.repos.findPackage("doxygen", "1.5.9", "Linux")
        self.assert_(pkg is None)

        pkg = self.repos.findPackage("doxygen", "1.5.9", "generic")
        self.assert_(pkg is not None)
        self.assertEquals(pkg[0], "doxygen")
        self.assertEquals(pkg[1], "1.5.9")
        self.assertEquals(pkg[2], "generic")
        self.assertEquals(pkg[3], self.lsstroot)

        tag = Tag("newest")
        pkg = self.repos.findPackage("doxygen", tag)
        self.assert_(pkg is not None)
        self.assertEquals(pkg[0], "doxygen")
        self.assertEquals(pkg[1], "1.5.9")
        self.assertEquals(pkg[2], "generic")
        self.assertEquals(pkg[3], self.lsstroot)

    def testListPackages(self):
        self.repos = Repositories([self.localroot, self.lsstroot],
                                  eupsenv=self.eups, options=self.opts)
        self.assertEquals(len(self.repos.pkgroots), 2)

        pkgs = self.repos.listPackages()
        self.assert_(pkgs is not None)
        self.assert_(isinstance(pkgs, list))
        self.assertEquals(len(pkgs), 2)           # the # of repositories
        self.assertEquals(len(pkgs[0]), 2)        # (pkgroot, pkg-list)
        self.assertEquals(len(pkgs[1]), 2)        # (pkgroot, pkg-list)
        self.assertEquals(len(pkgs[0][1]), 1)     # # of products per repos.
        self.assertEquals(len(pkgs[0][1][0]), 3)  # # of attrs per product
        self.assertEquals(pkgs[0][1][0][0], "doxygen")
        self.assertEquals(pkgs[0][1][0][1], "1.5.8")
        self.assertEquals(pkgs[0][1][0][2], "generic")
        self.assert_(len(pkgs[1][1]) > 300)       # # of products per repos.

        pkgs = self.repos.listPackages("doxygen")
        pkgs = self.repos.listPackages("doxygen")
        self.assert_(pkgs is not None)
        self.assert_(isinstance(pkgs, list))
        self.assertEquals(len(pkgs), 2)
        self.assertEquals(len(pkgs[0][1]), 1)     # # of products per repos.
        self.assertEquals(pkgs[0][1][0][0], "doxygen")
        self.assertEquals(pkgs[0][1][0][1], "1.5.8")
        self.assertEquals(pkgs[0][1][0][2], "generic")
        self.assertEquals(len(pkgs[1][1]), 5)     # # of products per repos.
        self.assertEquals(pkgs[1][1][0][0], "doxygen")
        self.assertEquals(pkgs[1][1][0][1], "1.5.4")
        self.assertEquals(pkgs[1][1][1][1], "1.5.7.1")
        self.assertEquals(pkgs[1][1][4][1], "1.5.9")
        self.assertEquals(pkgs[1][1][2][1], "1.5.8")
        self.assertEquals(pkgs[1][1][3][1], "1.5.8+1")
コード例 #9
0
 def setUp(self):
     os.environ["EUPS_PATH"] = testEupsStack
     self.pkgroot = os.path.join(testEupsStack, "testserver", "s2")
     self.eups = Eups()
     self.repos = Repositories("|".join([self.pkgroot, self.pkgroot]),
                               eupsenv=self.eups)
コード例 #10
0
class LocalRepositoriesTestCase(unittest.TestCase):
    def setUp(self):
        os.environ["EUPS_PATH"] = testEupsStack
        self.pkgroot = os.path.join(testEupsStack, "testserver", "s2")
        self.eups = Eups()
        self.repos = Repositories("|".join([self.pkgroot, self.pkgroot]),
                                  eupsenv=self.eups)

    def tearDown(self):
        pass

    def testInit(self):
        self.assertEqual(len(self.repos.pkgroots), 2)

    def testListPackages(self):
        pkgs = self.repos.listPackages()
        self.assertTrue(pkgs is not None)
        self.assertTrue(isinstance(pkgs, list))
        self.assertEqual(len(pkgs), 2)           # the # of repositories
        self.assertEqual(len(pkgs[0]), 2)        # (pkgroot, pkg-list)
        self.assertEqual(len(pkgs[1]), 2)        # (pkgroot, pkg-list)
        self.assertEqual(len(pkgs[0][1]), 1)     # # of products per repos.
        self.assertEqual(len(pkgs[0][1][0]), 3)  # # of attrs per product
        self.assertEqual(pkgs[0][1][0][0], "doxygen")
        self.assertEqual(pkgs[0][1][0][1], "1.5.8")
        self.assertEqual(pkgs[0][1][0][2], "generic")
        self.assertEqual(pkgs[1][1][0][0], "doxygen")
        self.assertEqual(pkgs[1][1][0][1], "1.5.8")
        self.assertEqual(pkgs[1][1][0][2], "generic")

        pkgs = self.repos.listPackages("doxygen")
        self.assertTrue(pkgs is not None)
        self.assertTrue(isinstance(pkgs, list))
        self.assertEqual(len(pkgs), 2)
        self.assertEqual(pkgs[0][1][0][0], "doxygen")
        self.assertEqual(pkgs[0][1][0][1], "1.5.8")
        self.assertEqual(pkgs[0][1][0][2], "generic")

        pkgs = self.repos.listPackages("doxygen", "1.5.10")
        self.assertTrue(pkgs is not None)
        self.assertTrue(isinstance(pkgs, list))
        self.assertEqual(len(pkgs), 2)           # the # of repositories
        self.assertEqual(len(pkgs[0][1]), 0)     # # of products per repos.
        self.assertEqual(len(pkgs[1][1]), 0)     # # of products per repos.

        tag = Tag("latest")
        pkgs = self.repos.listPackages("doxygen", tag)
        self.assertTrue(pkgs is not None)
        self.assertTrue(isinstance(pkgs, list))
        self.assertEqual(len(pkgs), 2)
        self.assertEqual(pkgs[0][1][0][0], "doxygen")
        self.assertEqual(pkgs[0][1][0][1], "1.5.8")
        self.assertEqual(pkgs[0][1][0][2], "generic")
        self.assertEqual(pkgs[1][1][0][0], "doxygen")
        self.assertEqual(pkgs[1][1][0][1], "1.5.8")
        self.assertEqual(pkgs[1][1][0][2], "generic")

    def testFindPackage(self):
        pkg = self.repos.findPackage("doxygen")
        self.assertTrue(pkg is not None)
        self.assertEqual(pkg[0], "doxygen")
        self.assertEqual(pkg[1], "1.5.8")
        self.assertEqual(pkg[2], "generic")

        pkg = self.repos.findPackage("doxygen", "1.5.8")
        self.assertTrue(pkg is not None)
        self.assertEqual(pkg[0], "doxygen")
        self.assertEqual(pkg[1], "1.5.8")
        self.assertEqual(pkg[2], "generic")
        self.assertEqual(pkg[3], self.pkgroot)

        pkg = self.repos.findPackage("doxygen", "1.5.0")
        self.assertTrue(pkg is None)

        pkg = self.repos.findPackage("doxygen", "1.5.8", "Linux")
        self.assertTrue(pkg[2] == 'generic')

        pkg = self.repos.findPackage("doxygen", "1.5.8", "generic")
        self.assertTrue(pkg is not None)
        self.assertEqual(pkg[0], "doxygen")
        self.assertEqual(pkg[1], "1.5.8")
        self.assertEqual(pkg[2], "generic")
        self.assertEqual(pkg[3], self.pkgroot)

        tag = Tag("latest")
        pkg = self.repos.findPackage("doxygen", tag)
        self.assertTrue(pkg is not None)
        self.assertEqual(pkg[0], "doxygen")
        self.assertEqual(pkg[1], "1.5.8")
        self.assertEqual(pkg[2], "generic")
        self.assertEqual(pkg[3], self.pkgroot)