2016-12-21 12 views
0

私はこのような赤方偏移するクエリを実行するコードがあります。モッキングデータベース呼び出し

def send_sql_query(source, sql_query, lst=None): 
     connection = psycopg2.connect(
       host=os.environ["REDSHIFT_HOST"], 
       port="5439", 
       dbname="dbname", 
       user=os.environ["REDSHIFT_USERNAME"], 
       password=os.environ["REDSHIFT_PASSWORD"], 
     cursor = connection.cursor() 
     cursor.execute(sql_query, lst) 
     sql_results = cursor.fetchall() 


     return sql_results 
    finally: 
     if connection: 
      connection.close() 

が、私はそれが取得するような方法とsql_query方法を模擬したいと思いますがこのメソッドは偽のdbデータ(jsonでは好ましい)を保持しますが、sql_queryを使用して偽のデータに対してSQLを実行し、結果を返します。

mock.return_valueとmock.side_effectを使用すると、SQLクエリが正しいことを確認したいので、役に立たないでしょう。結果を返すためのコードを書くことは実際にはSQLクエリをチェックしません

これはPythonのフレームワークですか?

答えて

0

SQLのテストにはSQLエンジンが必要です。異なるデータベースは異なる方言を使用し、PostgreSQLをメインデータベースとして使用するので、偽のデータを使用して環境にPostgreSQLインスタンスをインストールし、テスト中にそこにクエリをリダイレクトする必要があります。

データベースの参照を格納するために環境を使用する場合は、テストデータベースを指すテスト環境をセットアップするだけです。