Doge log

Abby CTO 雑賀 力王のオフィシャルサイトです

DBAPI 2.0 & Test

てかメタデータ的なものを取るAPIが標準化されてない???
マイッタナー。
型情報をDBから取ろうと思ってたのに。
DBごとにほげらないといけないなんて・・・・。
ふーむ。java屋からするとDB周りはちょっと貧弱な気がしちゃうね。これは。
でもExcelのセルの書式から型情報取ってくるのも嫌だしなあ。
当面は某所のinstropectionコードをかっぱらってくるかー。
お。でもそもそもデータベース名(プロダクト名っていうの?)もconnectから取れないんでね?
そいつも指定してもらって
DBの種類指定→確定→instropection→get_table_description or get_table_list
って流れでないといかんのか。
イメージ的には

class XXXXTest( dbunit.DBTestCase ):

    def engine( self ):
        return "postgresql"

    def connection( self ):
        import psycopg as Database
        conn_string = "dbname=%s" % "django"
        conn_string = "user=%s %s" % ( "postgres", conn_string )
        conn_string += " password='%s'" % "postgres"
        conn_string += " host=%s" % "localhost"
        conn_string += " port=%s" % "5432"
        return Database.connect( conn_string )

    def testAAA( self ):
        readXls('C:\test.xls')
        #・・・・・・

こんな感じになるかなあ。
メソッドをオーバーライドして特有な情報を返してもらうあたりやっぱ慣れてないといいのか悪いのかわからんね。
connectionを自前で作るとこんな感じだけどフレームワークつかってればそいつから返すようにすればいいや。
ただフレームワーク内でコミットしにかかるのを無効化できるようになにか考えないといけないけどそれはまた次。
なかなかむずいなあ。むずいというか知らないだけなんだろうけども。
うくく。