libtaos 0.4.5

TDengine Client for Rust
Documentation
use crate::*;

pub fn var_or_default(env: &str, default: &str) -> String {
    std::env::var(env).unwrap_or(default.to_string())
}

pub fn taos() -> Result<Taos, Error> {
    TaosCfgBuilder::default()
        .ip(var_or_default("TEST_TAOS_IP", "127.0.0.1"))
        .user(var_or_default("TEST_TAOS_USER", "root"))
        .pass(var_or_default("TEST_TAOS_PASS", "taosdata"))
        .db(var_or_default("TEST_TAOS_DB", ""))
        .port(
            var_or_default("TEST_TAOS_PORT", "6030")
                .parse::<u16>()
                .unwrap(),
        )
        .token(std::env::var("TEST_TAOS_TOKEN").ok())
        .build()
        .expect("TaosCfg builder error")
        .connect()
}

#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
async fn test_builder() {
    let _ = TaosCfgBuilder::default()
        .build()
        .expect("cfg builder error")
        .connect()
        .expect("connect with default");
}

#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
async fn test_builder2() {
    let _ = taos().unwrap();
}

#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
async fn test_connect_from_dsn() -> Result<(), Error> {
    let cfg = {
        cfg_if::cfg_if! {
            if #[cfg(feature = "rest")] {
                TaosCfg::from_dsn("http://localhost:6041/")?
            } else {
                TaosCfg::from_dsn("taos:///")?
            }
        }
    };
    let taos = cfg.connect()?;
    let _ = taos.query("show databases").await?;
    Ok(())
}

#[test]
fn test_from_dsn() -> Result<(), Error> {
    let _ = TaosCfg::from_dsn("taos:///")?;

    TaosCfg::from_dsn("taos1:///").unwrap_err();
    cfg_if::cfg_if! {
        if #[cfg(feature = "rest")] {
            TaosCfg::from_dsn("taos+http:///").unwrap();
            TaosCfg::from_dsn("taos+https:///").unwrap();
            TaosCfg::from_dsn("http:///").unwrap();
            TaosCfg::from_dsn("https:///").unwrap();
        } else {
            TaosCfg::from_dsn("taos+http:///").unwrap_err();
            TaosCfg::from_dsn("taos+https:///").unwrap_err();
            TaosCfg::from_dsn("http:///").unwrap_err();
            TaosCfg::from_dsn("https:///").unwrap_err();
        }
    }

    Ok(())
}