如何在python单元测试中使用多个DB连接

时间:2018-06-19 08:38:59

标签: python postgresql sqlalchemy

我需要在我的python测试代码中使用多个连接。但我遇到的问题是第二个连接没有看到第一个连接中执行的语句。据我所知,autocommit默认情况下应为ON。

这是代码

import testing.postgresql
from sqlalchemy import create_engine


def test_simple():

with testing.postgresql.Postgresql() as postgresql:
    try:
        engine = create_engine(postgresql.url())
        conn = engine.connect().connection

        with conn.cursor() as cur:
            cur.execute("""CREATE TABLE country (id integer, name text);
            INSERT INTO country(id, name) VALUES (1, 'Mali');
            INSERT INTO country(id, name) VALUES (2, 'Congo');
            """)

            # OK
            cur.execute('select * from country')
            countries = cur.fetchall()
            print(str(countries))

        # ERROR psycopg2.ProgrammingError: relation "country" does not exist
        conn1 = engine.connect().connection
        with conn1.cursor() as cur1:
            cur1.execute('select * from country')
            countries1 = cur1.fetchall()
            print(str(countries1))

    finally:
        conn.close()
        conn1.close()

如何在测试中使用多个连接?

0 个答案:

没有答案