diff --git a/Cargo.lock b/Cargo.lock index 8bf83275be..cd6e8487d6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -50,7 +50,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08a78f63c0f5687fad9e568308a0e47dbf67284169989720041a1776da2a2a54" dependencies = [ "amq-protocol-uri", - "log 0.4.11", + "log", "tcp-stream", ] @@ -143,9 +143,9 @@ checksum = "c17772156ef2829aadc587461c7753af20b7e8db1529bc66855add962a3b35d3" [[package]] name = "async-trait" -version = "0.1.38" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1a4a2f97ce50c9d0282c1468816208588441492b40d813b2e0419c22c05e7f" +checksum = "687c230d85c0a52504709705fc8a53e4a692b83a2184f03dae73e38e1e93a783" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", @@ -204,12 +204,6 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b20b618342cf9891c292c4f5ac2cde7287cc5c87e87e9c769d617793607dec1" -[[package]] -name = "base64" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" - [[package]] name = "base64" version = "0.12.3" @@ -230,7 +224,7 @@ dependencies = [ "env_logger", "fxhash", "lazy_static", - "log 0.4.11", + "log", "peeking_take_while", "proc-macro2 0.4.30", "quote 0.6.13", @@ -320,7 +314,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c11f16001d679cb13d14b2c93c7d0fa13bb484a87c34a6c4c39707ad936499b5" dependencies = [ - "base64 0.12.3", + "base64", "chrono", "hex", "lazy_static", @@ -708,7 +702,7 @@ dependencies = [ "deadpool", "futures", "lapin", - "log 0.4.11", + "log", ] [[package]] @@ -887,7 +881,7 @@ checksum = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3" dependencies = [ "atty", "humantime", - "log 0.4.11", + "log", "regex", "termcolor", ] @@ -1219,12 +1213,12 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed18eb2459bf1a09ad2d6b1547840c3e5e62882fa09b9a6a20b1de8e3228848f" dependencies = [ - "base64 0.12.3", + "base64", "bitflags", "bytes", "headers-core", "http", - "mime 0.3.16", + "mime", "sha-1 0.8.2", "time 0.1.44", ] @@ -1351,7 +1345,7 @@ dependencies = [ "bytes", "futures-util", "hyper", - "log 0.4.11", + "log", "rustls", "tokio", "tokio-rustls", @@ -1575,7 +1569,6 @@ version = "0.3.0" dependencies = [ "chrono", "device-types", - "dotenv", "futures", "im", "iml-change", @@ -1758,6 +1751,7 @@ dependencies = [ name = "iml-postgres" version = "0.3.0" dependencies = [ + "dotenv", "futures", "iml-manager-env", "iml-wire-types", @@ -2139,7 +2133,7 @@ dependencies = [ [[package]] name = "juniper" version = "0.14.2" -source = "git+https://github.com/graphql-rust/juniper#368ea6f96f375e03d596cb848975264662e28ba2" +source = "git+https://github.com/graphql-rust/juniper#2ab00f55d620c51b8732c97c90f8f3349c2e6a0b" dependencies = [ "bson", "chrono", @@ -2158,7 +2152,7 @@ dependencies = [ [[package]] name = "juniper_codegen" version = "0.14.2" -source = "git+https://github.com/graphql-rust/juniper#368ea6f96f375e03d596cb848975264662e28ba2" +source = "git+https://github.com/graphql-rust/juniper#2ab00f55d620c51b8732c97c90f8f3349c2e6a0b" dependencies = [ "proc-macro-error", "proc-macro2 1.0.19", @@ -2186,7 +2180,7 @@ dependencies = [ "async-task", "crossbeam-channel", "futures-core", - "log 0.4.11", + "log", "mio 0.7.0", "parking_lot", "pinky-swear", @@ -2271,15 +2265,6 @@ dependencies = [ "scopeguard", ] -[[package]] -name = "log" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" -dependencies = [ - "log 0.4.11", -] - [[package]] name = "log" version = "0.4.11" @@ -2361,41 +2346,20 @@ version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" -[[package]] -name = "mime" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0" -dependencies = [ - "log 0.3.9", -] - [[package]] name = "mime" version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" -[[package]] -name = "mime_guess" -version = "1.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216929a5ee4dd316b1702eedf5e74548c123d370f47841ceaac38ca154690ca3" -dependencies = [ - "mime 0.2.6", - "phf 0.7.24", - "phf_codegen", - "unicase 1.4.2", -] - [[package]] name = "mime_guess" version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212" dependencies = [ - "mime 0.3.16", - "unicase 2.6.0", + "mime", + "unicase", ] [[package]] @@ -2419,7 +2383,7 @@ dependencies = [ "iovec", "kernel32-sys", "libc", - "log 0.4.11", + "log", "miow 0.2.1", "net2", "slab", @@ -2434,7 +2398,7 @@ checksum = "6e9971bc8349a361217a8f2a41f5d011274686bd4436465ba51730921039d7fb" dependencies = [ "lazy_static", "libc", - "log 0.4.11", + "log", "miow 0.3.5", "ntapi", "winapi 0.3.9", @@ -2446,7 +2410,7 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656" dependencies = [ - "log 0.4.11", + "log", "mio 0.6.22", "miow 0.3.5", "winapi 0.3.9", @@ -2496,7 +2460,7 @@ dependencies = [ "difference", "httparse", "lazy_static", - "log 0.4.11", + "log", "rand 0.7.3", "regex", "serde_json", @@ -2505,15 +2469,15 @@ dependencies = [ [[package]] name = "multipart" -version = "0.16.1" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136eed74cadb9edd2651ffba732b19a450316b680e4f48d6c79e905799e19d01" +checksum = "8209c33c951f07387a8497841122fc6f712165e3f9bda3e6be4645b58188f676" dependencies = [ "buf_redux", "httparse", - "log 0.4.11", - "mime 0.2.6", - "mime_guess 1.8.8", + "log", + "mime", + "mime_guess", "quick-error", "rand 0.6.5", "safemem", @@ -2529,7 +2493,7 @@ checksum = "2b0d88c06fe90d5ee94048ba40409ef1d9315d86f6f38c2efdaad4fb50c58b2d" dependencies = [ "lazy_static", "libc", - "log 0.4.11", + "log", "openssl", "openssl-probe", "openssl-sys", @@ -2788,52 +2752,13 @@ dependencies = [ "indexmap", ] -[[package]] -name = "phf" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18" -dependencies = [ - "phf_shared 0.7.24", -] - [[package]] name = "phf" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" dependencies = [ - "phf_shared 0.8.0", -] - -[[package]] -name = "phf_codegen" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e" -dependencies = [ - "phf_generator", - "phf_shared 0.7.24", -] - -[[package]] -name = "phf_generator" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" -dependencies = [ - "phf_shared 0.7.24", - "rand 0.6.5", -] - -[[package]] -name = "phf_shared" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" -dependencies = [ - "siphasher 0.2.3", - "unicase 1.4.2", + "phf_shared", ] [[package]] @@ -2842,7 +2767,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" dependencies = [ - "siphasher 0.3.3", + "siphasher", ] [[package]] @@ -2911,7 +2836,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81c5b25980f9a9b5ad36e9cdc855530575396d8a57f67e14691a2440ed0d9a90" dependencies = [ - "base64 0.12.3", + "base64", "byteorder", "bytes", "fallible-iterator", @@ -3314,7 +3239,7 @@ version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9eaa17ac5d7b838b7503d118fa16ad88f440498bf9ffe5424e621f93190d61e" dependencies = [ - "base64 0.12.3", + "base64", "bytes", "encoding_rs", "futures-core", @@ -3326,9 +3251,9 @@ dependencies = [ "ipnet", "js-sys", "lazy_static", - "log 0.4.11", - "mime 0.3.16", - "mime_guess 2.0.3", + "log", + "mime", + "mime_guess", "percent-encoding", "pin-project-lite", "rustls", @@ -3366,7 +3291,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9dab61250775933275e84053ac235621dfb739556d5c54a2f2e9313b7cf43a19" dependencies = [ - "base64 0.12.3", + "base64", "blake2b_simd", "constant_time_eq", "crossbeam-utils", @@ -3393,8 +3318,8 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81" dependencies = [ - "base64 0.12.3", - "log 0.4.11", + "base64", + "log", "ring", "sct", "webpki", @@ -3406,7 +3331,7 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "498854dcb920e6fde17046164487977a6177d1ccc5ea58379edb910e9e60a251" dependencies = [ - "log 0.4.11", + "log", "rustls", "rustls-native-certs", "webpki", @@ -3666,12 +3591,6 @@ dependencies = [ "libc", ] -[[package]] -name = "siphasher" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" - [[package]] name = "siphasher" version = "0.3.3" @@ -3766,7 +3685,7 @@ version = "0.4.0-beta.1" source = "git+https://github.com/jgrund/sqlx?branch=support-offline-workspaces#3aca4f97735624a3b9aee8574deb035190f6881b" dependencies = [ "atoi", - "base64 0.12.3", + "base64", "bitflags", "byteorder", "bytes", @@ -3784,7 +3703,7 @@ dependencies = [ "hmac", "itoa", "libc", - "log 0.4.11", + "log", "lru-cache", "md-5", "memchr", @@ -3942,7 +3861,7 @@ checksum = "2940c75beb4e3bf3a494cef919a747a2cb81e52571e212bfbd185074add7208a" dependencies = [ "lazy_static", "new_debug_unreachable", - "phf_shared 0.8.0", + "phf_shared", "precomputed-hash", "serde", ] @@ -4285,10 +4204,10 @@ dependencies = [ "bytes", "fallible-iterator", "futures", - "log 0.4.11", + "log", "parking_lot", "percent-encoding", - "phf 0.8.0", + "phf", "pin-project-lite", "postgres-protocol", "postgres-types", @@ -4308,9 +4227,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228139ddd4fea3fa345a29233009635235833e52807af7ea6448ead03890d6a9" +checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a" dependencies = [ "futures-core", "rustls", @@ -4331,12 +4250,12 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8b8fe88007ebc363512449868d7da4389c9400072a3f666f212c7280082882a" +checksum = "6d9e878ad426ca286e4dcae09cbd4e1973a7f8987d97570e2469703dd7f5720c" dependencies = [ - "futures", - "log 0.4.11", + "futures-util", + "log", "pin-project", "tokio", "tungstenite", @@ -4351,7 +4270,7 @@ dependencies = [ "bytes", "futures-core", "futures-sink", - "log 0.4.11", + "log", "pin-project-lite", "tokio", ] @@ -4378,7 +4297,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d79ca061b032d6ce30c660fded31189ca0b9922bf483cd70759f13a2d86786c" dependencies = [ "cfg-if", - "log 0.4.11", + "log", "tracing-attributes", "tracing-core", ] @@ -4420,7 +4339,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e0f8c7178e13481ff6765bd169b33e8d554c5d2bbede5e32c356194be02b9b9" dependencies = [ "lazy_static", - "log 0.4.11", + "log", "tracing-core", ] @@ -4463,19 +4382,19 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "tungstenite" -version = "0.10.1" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfea31758bf674f990918962e8e5f07071a3161bd7c4138ed23e416e1ac4264e" +checksum = "f0308d80d86700c5878b9ef6321f020f29b1bb9d5ff3cab25e75e23f3a492a23" dependencies = [ - "base64 0.11.0", + "base64", "byteorder", "bytes", "http", "httparse", "input_buffer", - "log 0.4.11", + "log", "rand 0.7.3", - "sha-1 0.8.2", + "sha-1 0.9.1", "url", "utf-8", ] @@ -4501,15 +4420,6 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" -[[package]] -name = "unicase" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" -dependencies = [ - "version_check 0.1.5", -] - [[package]] name = "unicase" version = "2.6.0" @@ -4675,24 +4585,24 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" dependencies = [ - "log 0.4.11", + "log", "try-lock", ] [[package]] name = "warp" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df341dee97c9ae29dfa5e0b0fbbbf620e0d6a36686389bedf83b3daeb8b0d0ac" +checksum = "f41be6df54c97904af01aa23e613d4521eed7ab23537cede692d4058f6449407" dependencies = [ "bytes", "futures", "headers", "http", "hyper", - "log 0.4.11", - "mime 0.3.16", - "mime_guess 2.0.3", + "log", + "mime", + "mime_guess", "multipart", "pin-project", "scoped-tls", @@ -4739,7 +4649,7 @@ checksum = "bc71e4c5efa60fb9e74160e89b93353bc24059999c0ae0fb03affc39770310b0" dependencies = [ "bumpalo", "lazy_static", - "log 0.4.11", + "log", "proc-macro2 1.0.19", "quote 1.0.7", "syn 1.0.39", @@ -4792,7 +4702,7 @@ name = "wbem-client" version = "0.1.0" dependencies = [ "async-trait", - "base64 0.12.3", + "base64", "bytes", "futures", "insta", diff --git a/iml-postgres/Cargo.toml b/iml-postgres/Cargo.toml index 9a1d778b07..783f66aa05 100644 --- a/iml-postgres/Cargo.toml +++ b/iml-postgres/Cargo.toml @@ -5,9 +5,13 @@ name = "iml-postgres" version = "0.3.0" [dependencies] +dotenv = {version = "0.15", optional = true} futures = "0.3" iml-manager-env = {path = "../iml-manager-env", version = "0.3"} iml-wire-types = {path = "../iml-wire-types", version = "0.3"} sqlx = {git = "https://github.com/jgrund/sqlx", branch = "support-offline-workspaces", default-features = false, features = ["json", "macros", "offline", "postgres", "runtime-tokio", "time", "chrono", "migrate"]} tokio-postgres = "0.5" tracing = "0.1" + +[features] +test = ["dotenv"] diff --git a/iml-postgres/src/lib.rs b/iml-postgres/src/lib.rs index 0d5bb8ccb1..dc8babfd61 100644 --- a/iml-postgres/src/lib.rs +++ b/iml-postgres/src/lib.rs @@ -91,3 +91,21 @@ where client.query_raw(&s, params).await } + +#[cfg(feature = "test")] +use dotenv::dotenv; + +/// Setup for a test run. This fn hands out a pool +/// with a single connection and starts a transaction for it. +/// The transaction is rolled back when the connection closes +/// so nothing is written to the database. +#[cfg(feature = "test")] +pub async fn test_setup() -> Result { + dotenv().ok(); + + let pool = get_db_pool(1).await?; + + sqlx::query("BEGIN TRANSACTION").execute(&pool).await?; + + Ok(pool) +} diff --git a/iml-services/iml-device/Cargo.toml b/iml-services/iml-device/Cargo.toml index f16205742d..3772d27b39 100644 --- a/iml-services/iml-device/Cargo.toml +++ b/iml-services/iml-device/Cargo.toml @@ -25,6 +25,6 @@ warp = "0.2" [dev-dependencies] chrono = "0.4" -dotenv = "0.15" +iml-postgres = {path = "../../iml-postgres", version = "0.3", features = ["test"]} insta = {version = "0.16", features = ["redactions"]} tokio-test = "0.2" diff --git a/iml-services/iml-device/tests/integration_tests.rs b/iml-services/iml-device/tests/integration_tests.rs index ad590f13d5..44cbbb451e 100644 --- a/iml-services/iml-device/tests/integration_tests.rs +++ b/iml-services/iml-device/tests/integration_tests.rs @@ -9,9 +9,8 @@ use device_types::{ mount::{FsType, Mount, MountOpts, MountPoint}, DevicePath, }; -use dotenv::dotenv; use iml_device::update_client_mounts; -use iml_postgres::{get_db_pool, sqlx}; +use iml_postgres::sqlx; use iml_wire_types::Fqdn; use insta::assert_json_snapshot; use std::error::Error; @@ -32,9 +31,7 @@ struct ClientMount { #[tokio::test] #[ignore = "Requires an active and populated DB"] async fn test_insert() -> Result<(), Box> { - dotenv().ok(); - - let pool = get_db_pool(5).await?; + let pool = iml_postgres::test_setup().await?; sqlx::query!(r#" INSERT INTO chroma_core_serverprofile