mwapi_responses 0.5.1

Automatically generate strict types for MediaWiki API responses
Documentation
// Autogenerated by gen_tests.py
use mwapi_responses::prelude::*;

mod test_client;

#[query(action = "query", prop = "info")]
struct Response0;

#[tokio::test]
async fn query_info_default() {
    let mut params = Response0::params().to_vec();
    params.push((
        "titles",
        "Taylor Swift|Talk:Taylor Swift|This article does not exist, please",
    ));
    let resp: Response0 = test_client::test(&params).await.unwrap();
    assert_eq!(resp.items().len(), 3);
    assert!(resp.continue_.is_empty());
}

#[query(action = "query", prop = "info", inprop = "associatedpage")]
struct Response1;

#[tokio::test]
async fn query_info_associatedpage() {
    let mut params = Response1::params().to_vec();
    params.push((
        "titles",
        "Taylor Swift|Talk:Taylor Swift|This article does not exist, please",
    ));
    let resp: Response1 = test_client::test(&params).await.unwrap();
    assert_eq!(resp.items().len(), 3);
    assert!(resp.continue_.is_empty());
}

#[query(action = "query", prop = "info", inprop = "displaytitle")]
struct Response2;

#[tokio::test]
async fn query_info_displaytitle() {
    let mut params = Response2::params().to_vec();
    params.push((
        "titles",
        "Taylor Swift|Talk:Taylor Swift|This article does not exist, please",
    ));
    let resp: Response2 = test_client::test(&params).await.unwrap();
    assert_eq!(resp.items().len(), 3);
    assert!(resp.continue_.is_empty());
}

#[query(action = "query", prop = "info", inprop = "linkclasses")]
struct Response3;

#[tokio::test]
async fn query_info_linkclasses() {
    let mut params = Response3::params().to_vec();
    params.push((
        "titles",
        "Taylor Swift|Talk:Taylor Swift|This article does not exist, please",
    ));
    let resp: Response3 = test_client::test(&params).await.unwrap();
    assert_eq!(resp.items().len(), 3);
    assert!(resp.continue_.is_empty());
}

#[query(action = "query", prop = "info", inprop = "notificationtimestamp")]
struct Response4;

#[tokio::test]
async fn query_info_notificationtimestamp() {
    let mut params = Response4::params().to_vec();
    params.push((
        "titles",
        "Taylor Swift|Talk:Taylor Swift|This article does not exist, please",
    ));
    let resp: Response4 = test_client::test(&params).await.unwrap();
    assert_eq!(resp.items().len(), 3);
    assert!(resp.continue_.is_empty());
}

#[query(action = "query", prop = "info", inprop = "preload")]
struct Response5;

#[tokio::test]
async fn query_info_preload() {
    let mut params = Response5::params().to_vec();
    params.push((
        "titles",
        "Taylor Swift|Talk:Taylor Swift|This article does not exist, please",
    ));
    let resp: Response5 = test_client::test(&params).await.unwrap();
    assert_eq!(resp.items().len(), 3);
    assert!(resp.continue_.is_empty());
}

#[query(action = "query", prop = "info", inprop = "protection")]
struct Response6;

#[tokio::test]
async fn query_info_protection() {
    let mut params = Response6::params().to_vec();
    params.push((
        "titles",
        "Taylor Swift|Talk:Taylor Swift|This article does not exist, please",
    ));
    let resp: Response6 = test_client::test(&params).await.unwrap();
    assert_eq!(resp.items().len(), 3);
    assert!(resp.continue_.is_empty());
}

#[query(action = "query", prop = "info", inprop = "subjectid")]
struct Response7;

#[tokio::test]
async fn query_info_subjectid() {
    let mut params = Response7::params().to_vec();
    params.push((
        "titles",
        "Taylor Swift|Talk:Taylor Swift|This article does not exist, please",
    ));
    let resp: Response7 = test_client::test(&params).await.unwrap();
    assert_eq!(resp.items().len(), 3);
    assert!(resp.continue_.is_empty());
}

#[query(action = "query", prop = "info", inprop = "talkid")]
struct Response8;

#[tokio::test]
async fn query_info_talkid() {
    let mut params = Response8::params().to_vec();
    params.push((
        "titles",
        "Taylor Swift|Talk:Taylor Swift|This article does not exist, please",
    ));
    let resp: Response8 = test_client::test(&params).await.unwrap();
    assert_eq!(resp.items().len(), 3);
    assert!(resp.continue_.is_empty());
}

#[query(action = "query", prop = "info", inprop = "url")]
struct Response9;

#[tokio::test]
async fn query_info_url() {
    let mut params = Response9::params().to_vec();
    params.push((
        "titles",
        "Taylor Swift|Talk:Taylor Swift|This article does not exist, please",
    ));
    let resp: Response9 = test_client::test(&params).await.unwrap();
    assert_eq!(resp.items().len(), 3);
    assert!(resp.continue_.is_empty());
}

#[query(action = "query", prop = "info", inprop = "varianttitles")]
struct Response10;

#[tokio::test]
async fn query_info_varianttitles() {
    let mut params = Response10::params().to_vec();
    params.push((
        "titles",
        "Taylor Swift|Talk:Taylor Swift|This article does not exist, please",
    ));
    let resp: Response10 = test_client::test(&params).await.unwrap();
    assert_eq!(resp.items().len(), 3);
    assert!(resp.continue_.is_empty());
}

#[query(action = "query", prop = "info", inprop = "visitingwatchers")]
struct Response11;

#[tokio::test]
async fn query_info_visitingwatchers() {
    let mut params = Response11::params().to_vec();
    params.push((
        "titles",
        "Taylor Swift|Talk:Taylor Swift|This article does not exist, please",
    ));
    let resp: Response11 = test_client::test(&params).await.unwrap();
    assert_eq!(resp.items().len(), 3);
    assert!(resp.continue_.is_empty());
}

#[query(action = "query", prop = "info", inprop = "watched")]
struct Response12;

#[tokio::test]
async fn query_info_watched() {
    let mut params = Response12::params().to_vec();
    params.push((
        "titles",
        "Taylor Swift|Talk:Taylor Swift|This article does not exist, please",
    ));
    let resp: Response12 = test_client::test(&params).await.unwrap();
    assert_eq!(resp.items().len(), 3);
    assert!(resp.continue_.is_empty());
}

#[query(action = "query", prop = "info", inprop = "watchers")]
struct Response13;

#[tokio::test]
async fn query_info_watchers() {
    let mut params = Response13::params().to_vec();
    params.push((
        "titles",
        "Taylor Swift|Talk:Taylor Swift|This article does not exist, please",
    ));
    let resp: Response13 = test_client::test(&params).await.unwrap();
    assert_eq!(resp.items().len(), 3);
    assert!(resp.continue_.is_empty());
}