1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//! Easy temporary postgresql instance for unit tests.
//!
//! Use the [`TempPostgres`] struct to get a [`tokio_postgres::Client`] that is connected to a temporary postgres instance.
//! All state of the spawned postgres instance is stored in a temporary directory, which will be cleaned up automatically (unless disabled).
//!
//! On Unix platforms, the client is connected over a Unix socket.
//! Windows support is planned by picking a free TCP port on the loopback adapter.
//!
//! # Example
//!
//! See the [example in the repository](https://github.com/rocsys/temp-postgres/blob/main/examples/example.rs) for a more detailed example using [`assert2`](https://crates.io/crates/assert2).
//! ```
//! # #[tokio::main]
//! # async fn main() -> Result<(), Box<dyn std::error::Error>> {
//! use temp_postgres::TempPostgres;
//!
//! let postgres = TempPostgres::new().await?;
//! println!("Using temporary directory: {}", postgres.directory().display());
//!
//! let client = postgres.client().await?;
//! client.execute("CREATE TABLE pets (name TEXT PRIMARY KEY, species TEXT)", &[]).await?;
//! # Ok(())
//! # }

#![warn(missing_docs)]

mod error;
mod temp_postgres;
mod util;

pub use error::Error;
pub use temp_postgres::TempPostgres;
pub use temp_postgres::TempPostgresBuilder;