You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hydrus-api-rs/tests/common/mod.rs

45 lines
1.1 KiB
Rust

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<Mutex<bool>> = Arc::new(Mutex::new(false)); }
let mut setup_done: MutexGuard<bool> = 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();
}
}