refactor: isolate and parametrize some management CLI tests

pull/24376/head
Marco Neumann 2021-11-24 11:11:26 +01:00
parent cae8b8572d
commit d3b1557dbc
4 changed files with 131 additions and 110 deletions

View File

@ -0,0 +1,49 @@
use crate::common::server_fixture::{ServerFixture, ServerType};
use assert_cmd::Command;
use predicates::prelude::*;
#[tokio::test]
async fn test_server_id_database() {
assert_server_id(ServerFixture::create_single_use(ServerType::Database).await).await;
}
#[tokio::test]
async fn test_server_id_router() {
assert_server_id(ServerFixture::create_single_use(ServerType::Router).await).await;
}
async fn assert_server_id(server_fixture: ServerFixture) {
let addr = server_fixture.grpc_base();
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("set")
.arg("32")
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains("Ok"));
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("get")
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains("32"));
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("set")
.arg("42")
.arg("--host")
.arg(addr)
.assert()
.failure()
.stderr(predicate::str::contains("ID already set"));
}

View File

@ -18,43 +18,6 @@ use tempfile::TempDir;
use test_helpers::make_temp_file;
use uuid::Uuid;
#[tokio::test]
async fn test_server_id() {
let server_fixture = ServerFixture::create_single_use(ServerType::Database).await;
let addr = server_fixture.grpc_base();
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("set")
.arg("32")
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains("Ok"));
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("get")
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains("32"));
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("set")
.arg("42")
.arg("--host")
.arg(addr)
.assert()
.failure()
.stderr(predicate::str::contains("ID already set"));
}
#[tokio::test]
async fn test_create_database() {
let server_fixture = ServerFixture::create_shared(ServerType::Database).await;
@ -765,79 +728,6 @@ async fn test_list_chunks_error() {
);
}
#[tokio::test]
async fn test_remotes() {
let server_fixture = ServerFixture::create_single_use(ServerType::Database).await;
let addr = server_fixture.grpc_base();
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("set")
.arg("32")
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains("Ok"));
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("remote")
.arg("list")
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains("no remotes configured"));
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("remote")
.arg("set")
.arg("1")
.arg("http://1.2.3.4:1234")
.arg("--host")
.arg(addr)
.assert()
.success();
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("remote")
.arg("list")
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains("http://1.2.3.4:1234"));
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("remote")
.arg("remove")
.arg("1")
.arg("--host")
.arg(addr)
.assert()
.success();
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("remote")
.arg("list")
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains("no remotes configured"));
}
#[tokio::test]
async fn test_list_partitions() {
let server_fixture = ServerFixture::create_shared(ServerType::Database).await;

View File

@ -2,6 +2,7 @@ mod debug_cli;
mod delete_api;
mod deletes;
mod deployment_api;
mod deployment_cli;
mod flight_api;
mod freeze;
mod http;
@ -15,6 +16,7 @@ mod persistence;
mod read_api;
mod read_cli;
mod remote_api;
mod remote_cli;
mod router_api;
mod run_cli;
pub mod scenario;

View File

@ -0,0 +1,80 @@
use crate::common::server_fixture::{ServerFixture, ServerType};
use assert_cmd::Command;
use predicates::prelude::*;
#[tokio::test]
async fn test_remotes_router() {
assert_remotes(ServerFixture::create_single_use(ServerType::Router).await).await;
}
async fn assert_remotes(server_fixture: ServerFixture) {
let addr = server_fixture.grpc_base();
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("set")
.arg("32")
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains("Ok"));
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("remote")
.arg("list")
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains("no remotes configured"));
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("remote")
.arg("set")
.arg("1")
.arg("http://1.2.3.4:1234")
.arg("--host")
.arg(addr)
.assert()
.success();
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("remote")
.arg("list")
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains("http://1.2.3.4:1234"));
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("remote")
.arg("remove")
.arg("1")
.arg("--host")
.arg(addr)
.assert()
.success();
Command::cargo_bin("influxdb_iox")
.unwrap()
.arg("server")
.arg("remote")
.arg("list")
.arg("--host")
.arg(addr)
.assert()
.success()
.stdout(predicate::str::contains("no remotes configured"));
}