Skip to content

Commit e1dffc5

Browse files
committed
fix: More code reuse for testing
1 parent 9692780 commit e1dffc5

File tree

1 file changed

+14
-41
lines changed

1 file changed

+14
-41
lines changed

src/lib.rs

Lines changed: 14 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ mod tests {
310310
use testcontainers::{
311311
core::{IntoContainerPort, WaitFor},
312312
runners::SyncRunner,
313-
GenericImage, ImageExt,
313+
Container, GenericImage, ImageExt,
314314
};
315315

316316
const CMD: [&'static str; 5] = [
@@ -321,8 +321,7 @@ mod tests {
321321
"http://0.0.0.0:2379",
322322
];
323323

324-
#[pg_test]
325-
fn test_create_table() {
324+
fn create_container() -> (Container<GenericImage>, String) {
326325
let container = GenericImage::new("quay.io/coreos/etcd", "v3.6.4")
327326
.with_exposed_port(2379.tcp())
328327
.with_wait_for(WaitFor::message_on_either_std(
@@ -343,9 +342,10 @@ mod tests {
343342
.expect("Exposed host port should be available");
344343

345344
let url = format!("{}:{}", host, port);
346-
dbg!("Testing FDW on container at {}", &url);
345+
(container, url)
346+
}
347347

348-
// Create our fdw
348+
fn create_fdt(url: String) -> () {
349349
Spi::run("CREATE FOREIGN DATA WRAPPER etcd_fdw handler etcd_fdw_handler validator etcd_fdw_validator;").expect("FDW should have been created");
350350

351351
// Create a server
@@ -361,45 +361,18 @@ mod tests {
361361
// Create a foreign table
362362
Spi::run("CREATE FOREIGN TABLE test (key text, value text) server etcd_test_server options (rowid_column 'key')").expect("Test table should have been created");
363363
}
364-
#[pg_test]
365-
fn test_insert_select() {
366-
let container = GenericImage::new("quay.io/coreos/etcd", "v3.6.4")
367-
.with_exposed_port(2379.tcp())
368-
.with_wait_for(WaitFor::message_on_either_std(
369-
"ready to serve client requests",
370-
))
371-
.with_cmd(CMD)
372-
.with_privileged(true)
373-
.with_startup_timeout(Duration::from_secs(90))
374-
.start()
375-
.expect("An etcd image was supposed to be started");
376-
377-
let host = container
378-
.get_host()
379-
.expect("Host-address should be available");
380-
381-
let port = container
382-
.get_host_port_ipv4(2379.tcp())
383-
.expect("Exposed host port should be available");
384-
385-
let url = format!("{}:{}", host, port);
386-
dbg!("Testing FDW on container at {}", &url);
387364

388-
// Create our fdw
389-
Spi::run("CREATE FOREIGN DATA WRAPPER etcd_fdw handler etcd_fdw_handler validator etcd_fdw_validator;").expect("FDW should have been created");
365+
#[pg_test]
366+
fn test_create_table() {
367+
let (_container, url) = create_container();
390368

391-
// Create a server
392-
Spi::run(
393-
format!(
394-
"CREATE SERVER etcd_test_server FOREIGN DATA WRAPPER etcd_fdw options(connstr '{}')",
395-
url
396-
)
397-
.as_str(),
398-
)
399-
.expect("Server should have been created");
369+
create_fdt(url);
370+
}
371+
#[pg_test]
372+
fn test_insert_select() {
373+
let (_container, url) = create_container();
400374

401-
// Create a foreign table
402-
Spi::run("CREATE FOREIGN TABLE test (key text, value text) server etcd_test_server options (rowid_column 'key')").expect("Test table should have been created");
375+
create_fdt(url);
403376

404377
// Insert into the foreign table
405378
Spi::run("INSERT INTO test (key, value) VALUES ('foo','bar'),('bar','baz')")

0 commit comments

Comments
 (0)