database: add open_existing_db() for migration tool
This commit is contained in:
parent
69d66dd4c1
commit
54be4cd8d3
|
@ -116,6 +116,15 @@ def get_db(dbfile, target_version=TARGET_VERSION):
|
|||
|
||||
return db
|
||||
|
||||
class DBDoesntExist(Exception):
|
||||
pass
|
||||
|
||||
def open_existing_db(dbfile):
|
||||
assert dbfile != ":memory:"
|
||||
if not os.path.exists(dbfile):
|
||||
raise DBDoesntExist()
|
||||
return _open_db_connection(dbfile)
|
||||
|
||||
class DBAlreadyExists(Exception):
|
||||
pass
|
||||
|
||||
|
|
|
@ -83,3 +83,22 @@ class Create(unittest.TestCase):
|
|||
latest_text = dump_db(db)
|
||||
self.assertIn("CREATE TABLE", latest_text)
|
||||
|
||||
class Open(unittest.TestCase):
|
||||
def test_open(self):
|
||||
basedir = self.mktemp()
|
||||
os.mkdir(basedir)
|
||||
fn = os.path.join(basedir, "created.db")
|
||||
db1 = database.create_db(fn)
|
||||
latest_text = dump_db(db1)
|
||||
self.assertIn("CREATE TABLE", latest_text)
|
||||
db2 = database.open_existing_db(fn)
|
||||
self.assertIn("CREATE TABLE", dump_db(db2))
|
||||
|
||||
def test_doesnt_exist(self):
|
||||
basedir = self.mktemp()
|
||||
os.mkdir(basedir)
|
||||
fn = os.path.join(basedir, "created.db")
|
||||
with self.assertRaises(database.DBDoesntExist):
|
||||
database.open_existing_db(fn)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user