Skip to content

Remove <dyn Query> warnings #97

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Oct 4, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ jobs:
- name: Check code formatting
run: cargo fmt --all -- --check
- name: Check Clippy lints (reqwest)
run: cargo clippy --all-targets --no-default-features --features use-serde,derive,reqwest-client -- -D warnings
run: cargo clippy --manifest-path influxdb/Cargo.toml --all-targets --no-default-features --features use-serde,derive,reqwest-client -- -D warnings
- name: Check Clippy lints (surf)
run: cargo clippy --all-targets --no-default-features --features use-serde,derive,hyper-client -- -D warnings
run: cargo clippy --manifest-path influxdb/Cargo.toml --all-targets --no-default-features --features use-serde,derive,hyper-client -- -D warnings

compile:
name: Compile (${{ matrix.rust_release }}/${{ matrix.os }})
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added

- reqwest-based http client (enabled by default)
- deprecate `<dyn Query>::raw_read_query` in favour of `ReadQuery::new`

## [0.4.0] - 2021-03-08

Expand Down
4 changes: 2 additions & 2 deletions benches/client.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use chrono::{DateTime, Utc};
use influxdb::Error;
use influxdb::InfluxDbWriteable;
use influxdb::{Client, Query};
use influxdb::{Client, ReadQuery};
use std::sync::Arc;
use std::time::Instant;
use tokio::sync::mpsc::unbounded_channel;
Expand Down Expand Up @@ -67,7 +67,7 @@ async fn main() {
async fn prepare_influxdb(client: &Client, db_name: &str) {
let create_db_stmt = format!("CREATE DATABASE {}", db_name);
client
.query(&Query::raw_read_query(create_db_stmt))
.query(&ReadQuery::new(create_db_stmt))
.await
.expect("failed to create database");
}
Expand Down
1 change: 1 addition & 0 deletions influxdb/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@

#![allow(clippy::needless_doctest_main)]
#![allow(clippy::needless_lifetimes)] // False positive in client/mod.rs query fn
#![forbid(bare_trait_objects)]

#[cfg(all(feature = "reqwest", feature = "surf"))]
compile_error!("You need to choose between reqwest and surf; enabling both is not supported");
Expand Down
1 change: 1 addition & 0 deletions influxdb/src/query/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ impl dyn Query {
///
/// Query::raw_read_query("SELECT * FROM weather"); // Is of type [`ReadQuery`](crate::ReadQuery)
/// ```
#[deprecated(since = "0.5.0", note = "Use ReadQuery::new instead")]
pub fn raw_read_query<S>(read_query: S) -> ReadQuery
where
S: Into<String>,
Expand Down
8 changes: 4 additions & 4 deletions influxdb/src/query/read_query.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,18 +43,18 @@ impl Query for ReadQuery {

#[cfg(test)]
mod tests {
use crate::query::{Query, QueryType};
use crate::query::{Query, QueryType, ReadQuery};

#[test]
fn test_read_builder_single_query() {
let query = Query::raw_read_query("SELECT * FROM aachen").build();
let query = ReadQuery::new("SELECT * FROM aachen").build();

assert_eq!(query.unwrap(), "SELECT * FROM aachen");
}

#[test]
fn test_read_builder_multi_query() {
let query = Query::raw_read_query("SELECT * FROM aachen")
let query = ReadQuery::new("SELECT * FROM aachen")
.add_query("SELECT * FROM cologne")
.build();

Expand All @@ -63,7 +63,7 @@ mod tests {

#[test]
fn test_correct_query_type() {
let query = Query::raw_read_query("SELECT * FROM aachen");
let query = ReadQuery::new("SELECT * FROM aachen");

assert_eq!(query.get_type(), QueryType::ReadQuery);
}
Expand Down
1 change: 0 additions & 1 deletion influxdb/src/query/write_query.rs
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,6 @@ mod tests {

assert!(query.is_ok(), "Query was empty");
let query_res = query.unwrap().get();
#[allow(clippy::print_literal)]
assert_eq!(
query_res,
r#"wea\,\ ther=,location=us-midwest,loc\,\ \="ation=us\,\ \"mid\=west temperature=82i,"temp\=era\,t\ ure"="too\"\\\\hot",float=82 11"#
Expand Down
11 changes: 6 additions & 5 deletions influxdb/tests/derive_integration_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ mod utilities;
use influxdb::InfluxDbWriteable;

use chrono::{DateTime, Utc};
use influxdb::{Query, Timestamp};
use influxdb::{Query, ReadQuery, Timestamp};

#[cfg(feature = "use-serde")]
use serde::Deserialize;
Expand Down Expand Up @@ -101,16 +101,17 @@ async fn test_write_and_read_option() {
.query(&weather_reading.into_query("weather_reading".to_string()))
.await;
assert_result_ok(&write_result);
let query =
Query::raw_read_query("SELECT time, pressure, wind_strength FROM weather_reading");
let query = ReadQuery::new("SELECT time, pressure, wind_strength FROM weather_reading");
let result = client.json_query(query).await.and_then(|mut db_result| {
println!("{:?}", db_result);
db_result.deserialize_next::<WeatherReadingWithoutIgnored>()
});
assert_result_ok(&result);
let result = result.unwrap();
assert_eq!(result.series[0].values[0].pressure, 100);
assert_eq!(result.series[0].values[0].wind_strength, None);
let value = &result.series[0].values[0];
assert_eq!(value.time, Timestamp::Hours(11).into());
assert_eq!(value.pressure, 100);
assert_eq!(value.wind_strength, None);
},
|| async move {
delete_db(TEST_NAME).await.expect("could not clean up db");
Expand Down
40 changes: 19 additions & 21 deletions influxdb/tests/integration_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use utilities::{
};

use influxdb::InfluxDbWriteable;
use influxdb::{Client, Error, Query, Timestamp};
use influxdb::{Client, Error, ReadQuery, Timestamp};

/// INTEGRATION TEST
///
Expand Down Expand Up @@ -52,7 +52,7 @@ async fn test_connection_error() {
let test_name = "test_connection_error";
let client =
Client::new("http://127.0.0.1:10086", test_name).with_auth("nopriv_user", "password");
let read_query = Query::raw_read_query("SELECT * FROM weather");
let read_query = ReadQuery::new("SELECT * FROM weather");
let read_result = client.query(&read_query).await;
assert_result_err(&read_result);
match read_result {
Expand All @@ -78,7 +78,7 @@ async fn test_authed_write_and_read() {
Client::new("http://127.0.0.1:9086", TEST_NAME).with_auth("admin", "password");
let query = format!("CREATE DATABASE {}", TEST_NAME);
client
.query(&Query::raw_read_query(query))
.query(&ReadQuery::new(query))
.await
.expect("could not setup db");

Expand All @@ -90,7 +90,7 @@ async fn test_authed_write_and_read() {
let write_result = client.query(&write_query).await;
assert_result_ok(&write_result);

let read_query = Query::raw_read_query("SELECT * FROM weather");
let read_query = ReadQuery::new("SELECT * FROM weather");
let read_result = client.query(&read_query).await;
assert_result_ok(&read_result);
assert!(
Expand All @@ -104,7 +104,7 @@ async fn test_authed_write_and_read() {
let query = format!("DROP DATABASE {}", TEST_NAME);

client
.query(&Query::raw_read_query(query))
.query(&ReadQuery::new(query))
.await
.expect("could not clean up db");
},
Expand All @@ -126,7 +126,7 @@ async fn test_wrong_authed_write_and_read() {
Client::new("http://127.0.0.1:9086", TEST_NAME).with_auth("admin", "password");
let query = format!("CREATE DATABASE {}", TEST_NAME);
client
.query(&Query::raw_read_query(query))
.query(&ReadQuery::new(query))
.await
.expect("could not setup db");

Expand All @@ -145,7 +145,7 @@ async fn test_wrong_authed_write_and_read() {
),
}

let read_query = Query::raw_read_query("SELECT * FROM weather");
let read_query = ReadQuery::new("SELECT * FROM weather");
let read_result = client.query(&read_query).await;
assert_result_err(&read_result);
match read_result {
Expand All @@ -158,7 +158,7 @@ async fn test_wrong_authed_write_and_read() {

let client = Client::new("http://127.0.0.1:9086", TEST_NAME)
.with_auth("nopriv_user", "password");
let read_query = Query::raw_read_query("SELECT * FROM weather");
let read_query = ReadQuery::new("SELECT * FROM weather");
let read_result = client.query(&read_query).await;
assert_result_err(&read_result);
match read_result {
Expand All @@ -174,7 +174,7 @@ async fn test_wrong_authed_write_and_read() {
Client::new("http://127.0.0.1:9086", TEST_NAME).with_auth("admin", "password");
let query = format!("DROP DATABASE {}", TEST_NAME);
client
.query(&Query::raw_read_query(query))
.query(&ReadQuery::new(query))
.await
.expect("could not clean up db");
},
Expand All @@ -196,7 +196,7 @@ async fn test_non_authed_write_and_read() {
Client::new("http://127.0.0.1:9086", TEST_NAME).with_auth("admin", "password");
let query = format!("CREATE DATABASE {}", TEST_NAME);
client
.query(&Query::raw_read_query(query))
.query(&ReadQuery::new(query))
.await
.expect("could not setup db");
let non_authed_client = Client::new("http://127.0.0.1:9086", TEST_NAME);
Expand All @@ -213,7 +213,7 @@ async fn test_non_authed_write_and_read() {
),
}

let read_query = Query::raw_read_query("SELECT * FROM weather");
let read_query = ReadQuery::new("SELECT * FROM weather");
let read_result = non_authed_client.query(&read_query).await;
assert_result_err(&read_result);
match read_result {
Expand All @@ -229,7 +229,7 @@ async fn test_non_authed_write_and_read() {
Client::new("http://127.0.0.1:9086", TEST_NAME).with_auth("admin", "password");
let query = format!("DROP DATABASE {}", TEST_NAME);
client
.query(&Query::raw_read_query(query))
.query(&ReadQuery::new(query))
.await
.expect("could not clean up db");
},
Expand All @@ -255,7 +255,7 @@ async fn test_write_and_read_field() {
let write_result = client.query(&write_query).await;
assert_result_ok(&write_result);

let read_query = Query::raw_read_query("SELECT * FROM weather");
let read_query = ReadQuery::new("SELECT * FROM weather");
let read_result = client.query(&read_query).await;
assert_result_ok(&read_result);
assert!(
Expand Down Expand Up @@ -304,8 +304,7 @@ async fn test_write_and_read_option() {
temperature: i32,
}

let query =
Query::raw_read_query("SELECT time, temperature, wind_strength FROM weather");
let query = ReadQuery::new("SELECT time, temperature, wind_strength FROM weather");
let result = client
.json_query(query)
.await
Expand Down Expand Up @@ -361,7 +360,7 @@ async fn test_json_query() {
temperature: i32,
}

let query = Query::raw_read_query("SELECT * FROM weather");
let query = ReadQuery::new("SELECT * FROM weather");
let result = client
.json_query(query)
.await
Expand Down Expand Up @@ -419,7 +418,7 @@ async fn test_json_query_tagged() {
temperature: i32,
}

let query = Query::raw_read_query("SELECT * FROM weather GROUP BY location");
let query = ReadQuery::new("SELECT * FROM weather GROUP BY location");
let result = client.json_query(query).await.and_then(|mut db_result| {
db_result.deserialize_next_tagged::<WeatherMeta, Weather>()
});
Expand Down Expand Up @@ -487,7 +486,7 @@ async fn test_json_query_vec() {
temperature: i32,
}

let query = Query::raw_read_query("SELECT * FROM temperature_vec");
let query = ReadQuery::new("SELECT * FROM temperature_vec");
let result = client
.json_query(query)
.await
Expand Down Expand Up @@ -544,8 +543,7 @@ async fn test_serde_multi_query() {

let result = client
.json_query(
Query::raw_read_query("SELECT * FROM temperature")
.add_query("SELECT * FROM humidity"),
ReadQuery::new("SELECT * FROM temperature").add_query("SELECT * FROM humidity"),
)
.await
.and_then(|mut db_result| {
Expand Down Expand Up @@ -588,7 +586,7 @@ async fn test_serde_multi_query() {
async fn test_wrong_query_errors() {
let client = create_client("test_name");
let result = client
.json_query(Query::raw_read_query("CREATE DATABASE this_should_fail"))
.json_query(ReadQuery::new("CREATE DATABASE this_should_fail"))
.await;
assert!(
result.is_err(),
Expand Down
10 changes: 3 additions & 7 deletions influxdb/tests/utilities.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use futures::prelude::*;
use influxdb::{Client, Error, Query};
use influxdb::{Client, Error, ReadQuery};
use std::panic::{AssertUnwindSafe, UnwindSafe};

#[allow(dead_code)]
Expand Down Expand Up @@ -28,9 +28,7 @@ where
{
let test_name = name.into();
let query = format!("CREATE DATABASE {}", test_name);
create_client(test_name)
.query(&Query::raw_read_query(query))
.await
create_client(test_name).query(&ReadQuery::new(query)).await
}

#[cfg(not(tarpaulin_include))]
Expand All @@ -40,9 +38,7 @@ where
{
let test_name = name.into();
let query = format!("DROP DATABASE {}", test_name);
create_client(test_name)
.query(&Query::raw_read_query(query))
.await
create_client(test_name).query(&ReadQuery::new(query)).await
}

#[cfg(not(tarpaulin_include))]
Expand Down