use hydrus_api::api_core::client::Client; use hydrus_api::api_core::endpoints::adding_urls::AddUrlRequestBuilder; use hydrus_api::Hydrus; use std::env; use std::sync::{Arc, Mutex, MutexGuard}; use std::time::Duration; use test_data::TEST_URLS; pub mod test_data; pub fn setup() { lazy_static::lazy_static! { static ref SETUP_DONE: Arc> = Arc::new(Mutex::new(false)); } let mut setup_done: MutexGuard = SETUP_DONE.lock().unwrap(); if !*setup_done { dotenv::dotenv().expect("failed to initialize dotenv"); tracing_subscriber::fmt::init(); *setup_done = true; } } pub fn get_client() -> Client { setup(); Client::builder() .url(env::var("HYDRUS_URL").unwrap()) .access_key(env::var("HYDRUS_ACCESS_KEY").unwrap()) .timeout(Duration::from_secs(5)) .build() .unwrap() } pub fn get_hydrus() -> Hydrus { let client = get_client(); Hydrus::new(client) } pub async fn create_testdata(client: &Client) { for url in TEST_URLS { client .add_url(AddUrlRequestBuilder::default().url(url).build()) .await .unwrap(); } }