Пример #1
0
    def test_sqlite_other(self):
        path = os.path.join(self.tmpdir, "other.db")
        db = cr.Sqlite(path, cr.DB_FILELISTS)
        pkg = cr.package_from_rpm(PKG_ARCHER_PATH)
        db.add_pkg(pkg)
        db.dbinfo_update("somechecksum3")
        db.close()

        self.assertTrue(os.path.isfile(path))

        con = sqlite3.connect(path)

        # Check packages table
        self.assertEqual(
            con.execute("select * from packages").fetchall(),
            [(1,
              u'4e0b775220c67f0f2c1fd2177e626b9c863a098130224ff09778ede25cea9a9e'
              )])

        # Check filelist table
        self.assertEqual(
            set(con.execute("select * from filelist").fetchall()),
            set([(1, u'/usr/share/doc', u'Archer-3.4.5', u'd'),
                 (1, u'/usr/bin', u'complex_a', u'f'),
                 (1, u'/usr/share/doc/Archer-3.4.5', u'README', u'f')]))

        # Check db_info table
        self.assertEqual(
            con.execute("select * from db_info").fetchall(),
            [(10, u'somechecksum3')])
Пример #2
0
    def test_sqlite_operations_on_closed_db(self):
        pkg = cr.package_from_rpm(PKG_ARCHER_PATH)
        path = os.path.join(self.tmpdir, "primary.db")
        db = cr.Sqlite(path, cr.DB_PRIMARY)
        self.assertTrue(db)
        db.close()

        self.assertRaises(cr.CreaterepoCError, db.add_pkg, pkg)
        self.assertRaises(cr.CreaterepoCError, db.dbinfo_update, "somechecksum")

        db.close()  # No error shoud be raised
        del db      # No error shoud be raised
Пример #3
0
    def test_sqlite_basic_operations(self):
        db_pri = cr.Sqlite(self.tmpdir + "/primary.db", cr.DB_PRIMARY)
        self.assertTrue(db_pri)
        self.assertTrue(os.path.isfile(self.tmpdir + "/primary.db"))

        db_pri = cr.PrimarySqlite(self.tmpdir + "/primary2.db")
        self.assertTrue(db_pri)
        self.assertTrue(os.path.isfile(self.tmpdir + "/primary2.db"))

        db_fil = cr.Sqlite(self.tmpdir + "/filelists.db", cr.DB_FILELISTS)
        self.assertTrue(db_fil)
        self.assertTrue(os.path.isfile(self.tmpdir + "/filelists.db"))

        db_fil = cr.FilelistsSqlite(self.tmpdir + "/filelists2.db")
        self.assertTrue(db_fil)
        self.assertTrue(os.path.isfile(self.tmpdir + "/filelists2.db"))

        db_oth = cr.Sqlite(self.tmpdir + "/other.db", cr.DB_OTHER)
        self.assertTrue(db_oth)
        self.assertTrue(os.path.isfile(self.tmpdir + "/other.db"))

        db_oth = cr.OtherSqlite(self.tmpdir + "/other2.db")
        self.assertTrue(db_oth)
        self.assertTrue(os.path.isfile(self.tmpdir + "/other2.db"))
Пример #4
0
    def test_sqlite_primary(self):
        path = os.path.join(self.tmpdir, "primary.db")
        db = cr.Sqlite(path, cr.DB_PRIMARY)
        pkg = cr.package_from_rpm(PKG_ARCHER_PATH)
        db.add_pkg(pkg)
        self.assertRaises(TypeError, db.add_pkg, None)
        self.assertRaises(TypeError, db.add_pkg, 123)
        self.assertRaises(TypeError, db.add_pkg, "foo")
        db.dbinfo_update("somechecksum")
        self.assertRaises(TypeError, db.dbinfo_update, pkg)
        self.assertRaises(TypeError, db.dbinfo_update, None)
        self.assertRaises(TypeError, db.dbinfo_update, 123)
        db.close()

        self.assertTrue(os.path.isfile(path))

        con = sqlite3.connect(path)

        # Check packages table
        res = con.execute("select * from packages").fetchall()
        self.assertEqual(res, [(
            1,
            u'4e0b775220c67f0f2c1fd2177e626b9c863a098130224ff09778ede25cea9a9e',
            u'Archer', u'x86_64', u'3.4.5', u'2', u'6', u'Complex package.',
            u'Archer package', u'http://soo_complex_package.eu/', res[0][10],
            1365416480, u'GPL', u'ISIS', u'Development/Tools',
            u'localhost.localdomain', u'Archer-3.4.5-6.src.rpm', 280, 2865,
            u'Sterling Archer', 3101, 0, 544, None, None, u'sha256')])

        # Check provides table
        self.assertEqual(
            con.execute("select * from provides").fetchall(),
            [(u'bara', u'LE', u'0', u'22', None, 1),
             (u'barb', u'GE', u'0', u'11.22.33', u'44', 1),
             (u'barc', u'EQ', u'0', u'33', None, 1),
             (u'bard', u'LT', u'0', u'44', None, 1),
             (u'bare', u'GT', u'0', u'55', None, 1),
             (u'Archer', u'EQ', u'2', u'3.4.5', u'6', 1),
             (u'Archer(x86-64)', u'EQ', u'2', u'3.4.5', u'6', 1)])

        # Check conflicts table
        self.assertEqual(
            con.execute("select * from conflicts").fetchall(),
            [(u'bba', u'LE', u'0', u'2222', None, 1),
             (u'bbb', u'GE', u'0', u'1111.2222.3333', u'4444', 1),
             (u'bbc', u'EQ', u'0', u'3333', None, 1),
             (u'bbd', u'LT', u'0', u'4444', None, 1),
             (u'bbe', u'GT', u'0', u'5555', None, 1)])

        # Check obsoletes table
        self.assertEqual(
            con.execute("select * from obsoletes").fetchall(),
            [(u'aaa', u'LE', u'0', u'222', None, 1),
             (u'aab', u'GE', u'0', u'111.2.3', u'4', 1),
             (u'aac', u'EQ', u'0', u'333', None, 1),
             (u'aad', u'LT', u'0', u'444', None, 1),
             (u'aae', u'GT', u'0', u'555', None, 1)])

        # Check requires table
        self.assertEqual(
            con.execute("select * from requires").fetchall(),
            [(u'fooa', u'LE', u'0', u'2', None, 1, u'FALSE'),
             (u'foob', u'GE', u'0', u'1.0.0', u'1', 1, u'FALSE'),
             (u'fooc', u'EQ', u'0', u'3', None, 1, u'FALSE'),
             (u'food', u'LT', u'0', u'4', None, 1, u'FALSE'),
             (u'fooe', u'GT', u'0', u'5', None, 1, u'FALSE'),
             (u'foof', u'EQ', u'0', u'6', None, 1, u'TRUE')])

        # Check files table
        self.assertEqual(
            con.execute("select * from files").fetchall(),
            [(u'/usr/bin/complex_a', u'file', 1)])

        # Check db_info table
        self.assertEqual(
            con.execute("select * from db_info").fetchall(),
            [(10, u'somechecksum')])