これはおそらく非常に簡単ですが、それでもsqlalchemyを取得しており、答えを見つけることができないようです。私は基本的なモジュールsometable.pyを持っています
import config
class SomeTable(config.Base):
__tablename__ = 'bla'
def __init__(self, name):
self.name = name
ここで、このモジュールでテストを作成します。基本的に、いくつかのテスト行を追加し、SomeTableの他の関数を使用して計算を行い、結果を確認します。しかし、メインデータベースでこれらの操作を行いたくありません。sometableモジュールで定義されたクラスに別のBaseオブジェクトを渡すにはどうすればよいですか?それとも、これを達成するためのより良い方法はありますか?
たとえば、私のtest_sometable.pyは現在次のようになっています。
import sometable, config
class TestSomeTable(unittest.TestCase):
def setUp(self):
engine = create_engine('sqlite:///:memory:')
self.Base = declarative_base(config.Base.metadata, engine)
def test_some_functionality(self):
tbl = sometable.SomeTable('name1')
# if i create a session and add a row here,
# it will add it to my main database, rather than the in-memory one