PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tạo cơ sở dữ liệu trong SQLAlchemy test với PostgreSQL

Mũi người chạy thử nghiệm hỗ trợ setup_package()teardown_package() các phương pháp. Đây là phần trích dẫn từ tài liệu:

Trong ứng dụng của tôi, tôi có setup_package() trông gần giống như sau:

def _create_database():

    template_engine = sa.create_engine("postgres://[email protected]/postgres", echo=False)

    conn = template_engine.connect()
    conn = conn.execution_options(autocommit=False)
    conn.execute("ROLLBACK")
    try:
        conn.execute("DROP DATABASE %s" % DB_NAME)
    except sa.exc.ProgrammingError as e:
        # Could not drop the database, probably does not exist
        conn.execute("ROLLBACK")
    except sa.exc.OperationalError as e:
        # Could not drop database because it's being accessed by other users (psql prompt open?)
        conn.execute("ROLLBACK")

    conn.execute("CREATE DATABASE %s" % DB_NAME)
    conn.close()

    template_engine.dispose()


def setup_package():
    _create_database()

    engine = sa.create_engine("postgres://[email protected]/%s" % DB_NAME, echo=False)

    session = sa.orm.scoped_session(sa.orm.sessionmaker())
    session.configure(bind=engine)
    Base.metadata.bind = engine
    Base.metadata.create_all()


def teardown_package():
    # no need to do anything as the old database is dropped at the start of every run

Ngoài ra, tất cả các lớp trường hợp thử nghiệm đều được phân lớp từ một lớp cơ sở, quan trọng là, định nghĩa một tearDown chung phương pháp:

class BaseTest(unittest.TestCase):

    def setUp(self):
        # This makes things nicer if the previous test fails
        # - without this all subsequent tests fail
        self.tearDown()

        self.config = testing.setUp()

    def tearDown(self):
        testing.tearDown()
        session.expunge_all()
        session.rollback()

Các lớp con thường ghi đè cơ sở setUp , nhưng thường không cần ghi đè tearDown - bằng cách quay lại giao dịch, nó đảm bảo rằng thử nghiệm tiếp theo sẽ bắt đầu trên cơ sở dữ liệu hoàn toàn sạch.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm mới các chế độ xem cụ thể hóa với tính năng đồng thời

  2. Mệnh đề Đi và Đi trong Postgres

  3. Đo lường thống kê điểm kiểm tra PostgreSQL

  4. Đếm số hàng sau khi nối ba bảng trong PostgreSQL

  5. node-postgres có hỗ trợ nhiều tập kết quả không