rename macro to just test

This commit is contained in:
Rob Ede 2021-10-19 16:00:46 +01:00
parent d414cd93a5
commit 5ce4e1db56
No known key found for this signature in database
GPG Key ID: 97C636207D3EF933
16 changed files with 56 additions and 35 deletions

View File

@ -67,7 +67,7 @@ __compress = []
[dependencies] [dependencies]
actix-codec = "0.4.0" actix-codec = "0.4.0"
actix-macros = "0.2.2" actix-macros = "0.2.3"
actix-router = "0.5.0-beta.2" actix-router = "0.5.0-beta.2"
actix-rt = "2.2" actix-rt = "2.2"
actix-server = "2.0.0-beta.3" actix-server = "2.0.0-beta.3"

View File

@ -83,7 +83,7 @@ mod tests {
use super::*; use super::*;
#[actix_rt::test] #[actix_web::test]
async fn test_file_extension_to_mime() { async fn test_file_extension_to_mime() {
let m = file_extension_to_mime(""); let m = file_extension_to_mime("");
assert_eq!(m, mime::APPLICATION_OCTET_STREAM); assert_eq!(m, mime::APPLICATION_OCTET_STREAM);

View File

@ -8,7 +8,7 @@ use actix_web::{
App, App,
}; };
#[actix_rt::test] #[actix_web::test]
async fn test_utf8_file_contents() { async fn test_utf8_file_contents() {
// use default ISO-8859-1 encoding // use default ISO-8859-1 encoding
let srv = test::init_service(App::new().service(Files::new("/", "./tests"))).await; let srv = test::init_service(App::new().service(Files::new("/", "./tests"))).await;

View File

@ -7,7 +7,7 @@ use actix_web::{
}; };
use bytes::Bytes; use bytes::Bytes;
#[actix_rt::test] #[actix_web::test]
async fn test_guard_filter() { async fn test_guard_filter() {
let srv = test::init_service( let srv = test::init_service(
App::new() App::new()

View File

@ -36,7 +36,7 @@ use socket2::{Domain, Protocol, Socket, Type};
/// Ok(HttpResponse::Ok().into()) /// Ok(HttpResponse::Ok().into())
/// } /// }
/// ///
/// #[actix_rt::test] /// #[actix_web::test]
/// async fn test_example() { /// async fn test_example() {
/// let mut srv = TestServer::start( /// let mut srv = TestServer::start(
/// || HttpService::new( /// || HttpService::new(

View File

@ -186,6 +186,7 @@ where
let mut conn = None; let mut conn = None;
// check if there is idle connection for given key. // check if there is idle connection for given key.
#[allow(clippy::must_not_suspend)]
let mut map = inner.available.borrow_mut(); let mut map = inner.available.borrow_mut();
if let Some(conns) = map.get_mut(&key) { if let Some(conns) = map.get_mut(&key) {

View File

@ -20,6 +20,7 @@ const AVERAGE_HEADER_SIZE: usize = 30;
#[derive(Debug)] #[derive(Debug)]
pub(crate) struct MessageEncoder<T: MessageType> { pub(crate) struct MessageEncoder<T: MessageType> {
#[allow(dead_code)]
pub length: BodySize, pub length: BodySize,
pub te: TransferEncoding, pub te: TransferEncoding,
_phantom: PhantomData<T>, _phantom: PhantomData<T>,

View File

@ -6,8 +6,9 @@ use crate::{IntoPatterns, Resource, ResourceDef, ResourcePath};
pub struct ResourceId(pub u16); pub struct ResourceId(pub u16);
/// Information about current resource /// Information about current resource
#[derive(Clone, Debug)] #[derive(Debug, Clone)]
pub struct ResourceInfo { pub struct ResourceInfo {
#[allow(dead_code)]
resource: ResourceId, resource: ResourceId,
} }

View File

@ -64,7 +64,7 @@ pub use actix_web::test::{
/// Ok(HttpResponse::Ok()) /// Ok(HttpResponse::Ok())
/// } /// }
/// ///
/// #[actix_rt::test] /// #[actix_web::test]
/// async fn test_example() { /// async fn test_example() {
/// let srv = actix_test::start(|| /// let srv = actix_test::start(||
/// App::new().service(my_handler) /// App::new().service(my_handler)
@ -104,7 +104,7 @@ where
/// Ok(HttpResponse::Ok()) /// Ok(HttpResponse::Ok())
/// } /// }
/// ///
/// #[actix_rt::test] /// #[actix_web::test]
/// async fn test_example() { /// async fn test_example() {
/// let srv = actix_test::start_with(actix_test::config().h1(), || /// let srv = actix_test::start_with(actix_test::config().h1(), ||
/// App::new().service(my_handler) /// App::new().service(my_handler)

View File

@ -2,7 +2,7 @@
## Unreleased - 2021-xx-xx ## Unreleased - 2021-xx-xx
* Improve error recovery potential when macro input is invalid. [#2410] * Improve error recovery potential when macro input is invalid. [#2410]
* Add `#[actix_web::test_rt]` macro for setting up tests with a runtime. [#2409] * Add `#[actix_web::test]` macro for setting up tests with a runtime. [#2409]
* Minimum supported Rust version (MSRV) is now 1.52. * Minimum supported Rust version (MSRV) is now 1.52.
[#2410]: https://github.com/actix/actix-web/pull/2410 [#2410]: https://github.com/actix/actix-web/pull/2410

View File

@ -4,7 +4,10 @@ version = "0.5.0-beta.4"
description = "Routing and runtime macros for Actix Web" description = "Routing and runtime macros for Actix Web"
homepage = "https://actix.rs" homepage = "https://actix.rs"
repository = "https://github.com/actix/actix-web.git" repository = "https://github.com/actix/actix-web.git"
authors = ["Nikolay Kim <fafhrd91@gmail.com>"] authors = [
"Nikolay Kim <fafhrd91@gmail.com>",
"Rob Ede <robjtede@icloud.com>",
]
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
edition = "2018" edition = "2018"
@ -19,7 +22,7 @@ actix-router = "0.5.0-beta.2"
[dev-dependencies] [dev-dependencies]
actix-rt = "2.2" actix-rt = "2.2"
actix-macros = "0.2.2" actix-macros = "0.2.3"
actix-test = "0.1.0-beta.3" actix-test = "0.1.0-beta.3"
actix-utils = "3.0.0" actix-utils = "3.0.0"
actix-web = "4.0.0-beta.9" actix-web = "4.0.0-beta.9"

View File

@ -168,31 +168,31 @@ method_macro! {
/// ``` /// ```
#[proc_macro_attribute] #[proc_macro_attribute]
pub fn main(_: TokenStream, item: TokenStream) -> TokenStream { pub fn main(_: TokenStream, item: TokenStream) -> TokenStream {
let input = proc_macro2::TokenStream::from(item); let mut output: TokenStream = (quote! {
#[::actix_web::rt::main(system = "::actix_web::rt::System")]
(quote! {
#[actix_web::rt::main(system = "::actix_web::rt::System")]
#input
}) })
.into() .into();
output.extend(item);
output
} }
/// Marks async test functions to use the actix system entry-point. /// Marks async test functions to use the actix system entry-point.
/// ///
/// # Examples /// # Examples
/// ``` /// ```
/// #[actix_web::test_rt] /// #[actix_web::test]
/// async fn test() { /// async fn test() {
/// assert_eq!(async { "Hello world" }.await, "Hello world"); /// assert_eq!(async { "Hello world" }.await, "Hello world");
/// } /// }
/// ``` /// ```
#[proc_macro_attribute] #[proc_macro_attribute]
pub fn test_rt(_: TokenStream, item: TokenStream) -> TokenStream { pub fn test(_: TokenStream, item: TokenStream) -> TokenStream {
let input = proc_macro2::TokenStream::from(item); let mut output: TokenStream = (quote! {
#[::actix_web::rt::test(system = "::actix_web::rt::System")]
(quote! {
#[actix_web::rt::test(system = "::actix_web::rt::System")]
#input
}) })
.into() .into();
output.extend(item);
output
} }

View File

@ -256,7 +256,7 @@ async fn test_auto_async() {
assert!(response.status().is_success()); assert!(response.status().is_success());
} }
#[actix_web::test_rt] #[actix_web::test]
async fn test_wrap() { async fn test_wrap() {
let srv = actix_test::start(|| App::new().service(get_wrap)); let srv = actix_test::start(|| App::new().service(get_wrap));

View File

@ -1,4 +1,4 @@
#[actix_web::test_rt] #[actix_web::test]
async fn my_test() { async fn my_test() {
assert!(async { 1 }.await, 1); assert!(async { 1 }.await, 1);
} }

View File

@ -52,7 +52,7 @@ pub fn default_service(
/// use actix_service::Service; /// use actix_service::Service;
/// use actix_web::{test, web, App, HttpResponse, http::StatusCode}; /// use actix_web::{test, web, App, HttpResponse, http::StatusCode};
/// ///
/// #[actix_rt::test] /// #[actix_web::test]
/// async fn test_init_service() { /// async fn test_init_service() {
/// let app = test::init_service( /// let app = test::init_service(
/// App::new() /// App::new()
@ -98,7 +98,7 @@ where
/// ``` /// ```
/// use actix_web::{test, web, App, HttpResponse, http::StatusCode}; /// use actix_web::{test, web, App, HttpResponse, http::StatusCode};
/// ///
/// #[actix_rt::test] /// #[actix_web::test]
/// async fn test_response() { /// async fn test_response() {
/// let app = test::init_service( /// let app = test::init_service(
/// App::new() /// App::new()
@ -129,7 +129,7 @@ where
/// use actix_web::{test, web, App, HttpResponse, http::header}; /// use actix_web::{test, web, App, HttpResponse, http::header};
/// use bytes::Bytes; /// use bytes::Bytes;
/// ///
/// #[actix_rt::test] /// #[actix_web::test]
/// async fn test_index() { /// async fn test_index() {
/// let app = test::init_service( /// let app = test::init_service(
/// App::new().service( /// App::new().service(
@ -176,7 +176,7 @@ where
/// use actix_web::{test, web, App, HttpResponse, http::header}; /// use actix_web::{test, web, App, HttpResponse, http::header};
/// use bytes::Bytes; /// use bytes::Bytes;
/// ///
/// #[actix_rt::test] /// #[actix_web::test]
/// async fn test_index() { /// async fn test_index() {
/// let app = test::init_service( /// let app = test::init_service(
/// App::new().service( /// App::new().service(
@ -224,7 +224,7 @@ where
/// name: String, /// name: String,
/// } /// }
/// ///
/// #[actix_rt::test] /// #[actix_web::test]
/// async fn test_post_person() { /// async fn test_post_person() {
/// let app = test::init_service( /// let app = test::init_service(
/// App::new().service( /// App::new().service(
@ -296,7 +296,7 @@ where
/// name: String /// name: String
/// } /// }
/// ///
/// #[actix_rt::test] /// #[actix_web::test]
/// async fn test_add_person() { /// async fn test_add_person() {
/// let app = test::init_service( /// let app = test::init_service(
/// App::new().service( /// App::new().service(
@ -356,8 +356,8 @@ where
/// } /// }
/// } /// }
/// ///
/// #[test] /// #[actix_web::test]
/// fn test_index() { /// async fn test_index() {
/// let req = test::TestRequest::default().insert_header("content-type", "text/plain") /// let req = test::TestRequest::default().insert_header("content-type", "text/plain")
/// .to_http_request(); /// .to_http_request();
/// ///

View File

@ -0,0 +1,15 @@
//! Checks that test macro does not cause problems in the presence of imports named "test" that
//! could be either a module with test items or the "test with runtime" macro itself.
//!
//! Before actix/actix-net#399 was implemented, this macro was running twice. The first run output
//! `#[test]` and it got run again and since it was in scope.
//!
//! Prevented by using the fully-qualified test marker (`#[::core::prelude::v1::test]`).
use actix_web::test;
#[actix_web::test]
async fn test_macro_naming_conflict() {
let _req = test::TestRequest::default();
assert_eq!(async { 1 }.await, 1);
}