Ejemplo n.º 1
0
    def test_serialization(self):
        obj = Database("/tmp/foo", DatabaseVersion(), Schema(), [])
        self.assertEqual(obj.serialization(),
                         DatabaseVersion(0).serialization())

        obj = Database("/tmp/foo", DatabaseVersion.preferred(), Schema(), [])
        self.assertEqual(obj.serialization(),
                         DatabaseVersion.preferred().serialization())
Ejemplo n.º 2
0
 def test_version(self):
     tdb = TemporaryDatabase()
     self.assertEqual(Database.read_version(tdb.ddir.name),
                      DatabaseVersion())
     tdb.db.store()
     tdb.db.upgrade()
     self.assertEqual(Database.read_version(tdb.ddir.name),
                      DatabaseVersion.preferred())
Ejemplo n.º 3
0
 def do_upgrade_test(self, version, pattern):
     tdb = TemporaryDatabase("txn:git\n")
     ddir, db = tdb.ddir, tdb.db
     if not isinstance(version, DatabaseVersion):
         version = DatabaseVersion(version)
     self.assertEqual(Database.read_version(ddir.name),
                      DatabaseVersion())
     db.store()
     db.upgrade(version=version)
     self.assertEqual(Database.read_version(ddir.name),
                      version)
     with open(ddir.name + "/dtb", "rb") as fp:
         data = fp.read(len(pattern))
         self.assertEqual(data, pattern)
     ddir.cleanup()
Ejemplo n.º 4
0
 def test_multiple_types(self):
     tdb = TemporaryDatabase("txn:git:hash\n")
     ddir = tdb.ddir
     db = Database.load(ddir.name)
     db.records()[:] = [Record([1, 2, 3])]
     db.store()
     self.assertEqual(set(db.schema().transaction_types()),
                      set(["git", "hash"]))
Ejemplo n.º 5
0
 def do_test(self, expected, schema, configv):
     tdb = TemporaryDatabase(schema)
     ddir2 = tempfile.TemporaryDirectory()
     config = "%s/config" % ddir2.name
     with open(config, "w") as fp:
         fp.write("fmt:3:newfol config file:\n" + configv)
     db = Database.load(tdb.ddir.name, extra_config=[config])
     db.records()[:] = [Record([1, 2, 3])]
     db.store()
     self.assertEqual(db.schema().execution_allowed(), expected)
     ddir2.cleanup()
Ejemplo n.º 6
0
 def test_existing_config_file(self):
     tdb = TemporaryDatabase()
     ddir2 = tempfile.TemporaryDirectory()
     config = "%s/config" % ddir2.name
     with open(config, "w") as fp:
         fp.write("fmt:3:newfol config file:\ntxn:git:hash\n")
     db = Database.load(tdb.ddir.name, extra_config=[config])
     db.records()[:] = [Record([1, 2, 3])]
     db.store()
     self.assertEqual(set(db.schema().transaction_types()),
                      set(["git", "hash"]))
     ddir2.cleanup()
Ejemplo n.º 7
0
 def db(self):
     return Database.load(self.ddir.name)
Ejemplo n.º 8
0
    def test_version(self):
        obj = Database("/tmp/foo", DatabaseVersion(), Schema(), [])
        self.assertEqual(obj.version(), 0)

        obj = Database("/tmp/foo", DatabaseVersion.preferred(), Schema(), [])
        self.assertEqual(obj.version(), DatabaseVersion.preferred())
Ejemplo n.º 9
0
 def test_records(self):
     obj = Database("/tmp/foo", 2, Schema(), [Record([1, 2, 3])])
     records = obj.records()
     self.assertEqual(len(records), 1)
     self.assertEqual(len(records[0].fields), 3)
Ejemplo n.º 10
0
 def test_location(self):
     for location in ("/tmp/foo", "/bar", "/home/quux/.newfol"):
         obj = Database(location, 2, Schema(), [])
         self.assertEqual(obj.location(), location)
Ejemplo n.º 11
0
 def test_missing_config_file(self):
     tdb = TemporaryDatabase()
     config = "%s/config" % tdb.ddir.name
     db = Database.load(tdb.ddir.name, extra_config=[config])
     db.records()[:] = [Record([1, 2, 3])]
     db.store()