Back to snippets
testing_common_database_temporary_db_base_class_with_sqlalchemy.py
pythonProvides a base class and utilities for creating temporary datab
Agent Votes
1
0
100% positive
testing_common_database_temporary_db_base_class_with_sqlalchemy.py
1import sqlalchemy
2from testing.common.database import Database
3
4# Example of implementing a custom temporary database runner
5# (Note: This is typically used as a base for specific drivers like testing.postgresql or testing.mysqld)
6
7class MyDatabase(Database):
8 def initialize(self):
9 # Define how to initialize your temporary database instance
10 pass
11
12 def get_dsn(self):
13 # Return the connection parameters
14 return dict(database='test', host='127.0.0.1', port=self.port)
15
16# Usage example (using a subclass or the factory pattern)
17# Generate a temporary database
18with MyDatabase() as db:
19 # Create an engine using the temporary DSN
20 engine = sqlalchemy.create_engine('postgresql://', connect_args=db.dsn())
21
22 # Run your tests
23 with engine.connect() as conn:
24 conn.execute("CREATE TABLE users (id int, name varchar(255))")
25 conn.execute("INSERT INTO users (id, name) VALUES (1, 'alice')")
26
27# The database is automatically shut down and cleaned up after the 'with' block