ソースを参照

Add some testing to createdb

oz123 10 年 前
コミット
ff5c9d92a5
2 ファイル変更11 行追加4 行削除
  1. 4 4
      pwman/data/factory.py
  2. 7 0
      pwman/tests/test_factory.py

+ 4 - 4
pwman/data/factory.py

@@ -87,20 +87,20 @@ def createdb(dburi, version):
     dbtype = dburi.scheme
     filename = dburi.path
 
-    if dbtype == "SQLite":
+    if dbtype == "sqlite":
         from pwman.data.drivers import sqlite
         if str(version) == '0.6':
             db = sqlite.SQLite(filename)
         else:
             db = sqlite.SQLite(filename, dbformat=version)
 
-    elif dbtype == "Postgresql":  # pragma: no cover
+    elif dbtype == "postgresql":
         try:
             from pwman.data.drivers import postgresql
-            db = postgresql.PostgresqlDatabase()
+            db = postgresql.PostgresqlDatabase(dburi)
         except ImportError:
             raise DatabaseException("python-psycopg2 not installed")
-    elif dbtype == "MySQL":  # pragma: no cover
+    elif dbtype == "mysql":  # pragma: no cover
         try:
             from pwman.data.drivers import mysql
             db = mysql.MySQLDatabase()

+ 7 - 0
pwman/tests/test_factory.py

@@ -23,6 +23,7 @@ import os
 import os.path
 from pwman.data import factory
 from pwman.data.drivers.sqlite import DatabaseException, SQLite
+from pwman.data.drivers.postgresql import PostgresqlDatabase
 from pwman.ui import get_ui_platform
 from pwman.data.database import __DB_FORMAT__
 from .test_tools import (SetupTester)
@@ -63,6 +64,12 @@ class TestFactory(unittest.TestCase):
         self.assertIsInstance(db, SQLite)
         self.assertRaises(DatabaseException, factory.create, 'UNKNOWN')
 
+    def test_factory_createdb(self):
+        db = factory.createdb("sqlite:///test.db", 0.6)
+        self.assertIsInstance(db, SQLite)
+        del db
+        db = factory.createdb("postgresql:///pwman", 0.6)
+        self.assertIsInstance(db, PostgresqlDatabase)
 
 if __name__ == '__main__':
     # make sure we use local pwman