def test_close_connection(self): datastore = PostgresDatastore( dbname="eventsourcing", host="127.0.0.1", port="5432", user="******", password="******", ) # Try closing without first creating connection. datastore.close_connection() # Create a connection. with datastore.transaction(commit=False) as conn: with conn.cursor() as c: c.execute("SELECT 1") self.assertEqual(c.fetchall(), [[1]]) # Try closing after creating connection. datastore.close_connection()
class TestPostgresApplicationRecorder(ApplicationRecorderTestCase): def setUp(self) -> None: self.datastore = PostgresDatastore( "eventsourcing", "127.0.0.1", "5432", "eventsourcing", "eventsourcing", ) self.drop_tables() def tearDown(self) -> None: self.drop_tables() def drop_tables(self): drop_postgres_table(self.datastore, "stored_events") def create_recorder(self): recorder = PostgresApplicationRecorder( self.datastore, events_table_name="stored_events") recorder.create_table() return recorder def close_db_connection(self, *args): self.datastore.close_connection() def test_concurrent_no_conflicts(self): super().test_concurrent_no_conflicts() def test_concurrent_throughput(self): super().test_concurrent_throughput() def test_retry_select_notifications_after_closing_connection(self): # Construct the recorder. recorder = self.create_recorder() # Check we have a connection (from create_table). self.assertTrue(self.datastore._connections) # Write a stored event. originator_id = uuid4() stored_event1 = StoredEvent( originator_id=originator_id, originator_version=0, topic="topic1", state=b"state1", ) recorder.insert_events([stored_event1]) # Close connections. pg_close_all_connections() # Select events. recorder.select_notifications(start=1, limit=1) def test_retry_max_notification_id_after_closing_connection(self): # Construct the recorder. recorder = self.create_recorder() # Check we have a connection (from create_table). self.assertTrue(self.datastore._connections) # Write a stored event. originator_id = uuid4() stored_event1 = StoredEvent( originator_id=originator_id, originator_version=0, topic="topic1", state=b"state1", ) recorder.insert_events([stored_event1]) # Close connections. pg_close_all_connections() # Select events. recorder.max_notification_id()