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", list = "recentchanges")]
struct Response0;

#[tokio::test]
async fn query_recentchanges_default() {
    let params = Response0::params();

    let resp: Response0 = test_client::test(params).await.unwrap();
    assert_eq!(resp.items().len(), 10);
    assert!(!resp.continue_.is_empty());
}

#[query(action = "query", list = "recentchanges", rcprop = "comment")]
struct Response1;

#[tokio::test]
async fn query_recentchanges_comment() {
    let params = Response1::params();

    let resp: Response1 = test_client::test(params).await.unwrap();
    assert_eq!(resp.items().len(), 10);
    assert!(!resp.continue_.is_empty());
}

#[query(action = "query", list = "recentchanges", rcprop = "flags")]
struct Response2;

#[tokio::test]
async fn query_recentchanges_flags() {
    let params = Response2::params();

    let resp: Response2 = test_client::test(params).await.unwrap();
    assert_eq!(resp.items().len(), 10);
    assert!(!resp.continue_.is_empty());
}

#[query(action = "query", list = "recentchanges", rcprop = "ids")]
struct Response3;

#[tokio::test]
async fn query_recentchanges_ids() {
    let params = Response3::params();

    let resp: Response3 = test_client::test(params).await.unwrap();
    assert_eq!(resp.items().len(), 10);
    assert!(!resp.continue_.is_empty());
}

#[query(action = "query", list = "recentchanges", rcprop = "loginfo")]
struct Response4;

#[tokio::test]
async fn query_recentchanges_loginfo() {
    let params = Response4::params();

    let resp: Response4 = test_client::test(params).await.unwrap();
    assert_eq!(resp.items().len(), 10);
    assert!(!resp.continue_.is_empty());
}

#[query(action = "query", list = "recentchanges", rcprop = "parsedcomment")]
struct Response5;

#[tokio::test]
async fn query_recentchanges_parsedcomment() {
    let params = Response5::params();

    let resp: Response5 = test_client::test(params).await.unwrap();
    assert_eq!(resp.items().len(), 10);
    assert!(!resp.continue_.is_empty());
}

#[query(action = "query", list = "recentchanges", rcprop = "patrolled")]
struct Response6;

#[ignore] // broken because patrolled requires user permissions
#[tokio::test]
async fn query_recentchanges_patrolled() {
    let params = Response6::params();

    let resp: Response6 = test_client::test(params).await.unwrap();
    assert_eq!(resp.items().len(), 10);
    assert!(!resp.continue_.is_empty());
}

#[query(action = "query", list = "recentchanges", rcprop = "redirect")]
struct Response7;

#[tokio::test]
async fn query_recentchanges_redirect() {
    let params = Response7::params();

    let resp: Response7 = test_client::test(params).await.unwrap();
    assert_eq!(resp.items().len(), 10);
    assert!(!resp.continue_.is_empty());
}

#[query(action = "query", list = "recentchanges", rcprop = "sha1")]
struct Response8;

#[tokio::test]
async fn query_recentchanges_sha1() {
    let params = Response8::params();

    let resp: Response8 = test_client::test(params).await.unwrap();
    assert_eq!(resp.items().len(), 10);
    assert!(!resp.continue_.is_empty());
}

#[query(action = "query", list = "recentchanges", rcprop = "sizes")]
struct Response9;

#[tokio::test]
async fn query_recentchanges_sizes() {
    let params = Response9::params();

    let resp: Response9 = test_client::test(params).await.unwrap();
    assert_eq!(resp.items().len(), 10);
    assert!(!resp.continue_.is_empty());
}

#[query(action = "query", list = "recentchanges", rcprop = "tags")]
struct Response10;

#[tokio::test]
async fn query_recentchanges_tags() {
    let params = Response10::params();

    let resp: Response10 = test_client::test(params).await.unwrap();
    assert_eq!(resp.items().len(), 10);
    assert!(!resp.continue_.is_empty());
}

#[query(action = "query", list = "recentchanges", rcprop = "timestamp")]
struct Response11;

#[tokio::test]
async fn query_recentchanges_timestamp() {
    let params = Response11::params();

    let resp: Response11 = test_client::test(params).await.unwrap();
    assert_eq!(resp.items().len(), 10);
    assert!(!resp.continue_.is_empty());
}

#[query(action = "query", list = "recentchanges", rcprop = "title")]
struct Response12;

#[tokio::test]
async fn query_recentchanges_title() {
    let params = Response12::params();

    let resp: Response12 = test_client::test(params).await.unwrap();
    assert_eq!(resp.items().len(), 10);
    assert!(!resp.continue_.is_empty());
}

#[query(action = "query", list = "recentchanges", rcprop = "user")]
struct Response13;

#[tokio::test]
async fn query_recentchanges_user() {
    let params = Response13::params();

    let resp: Response13 = test_client::test(params).await.unwrap();
    assert_eq!(resp.items().len(), 10);
    assert!(!resp.continue_.is_empty());
}

#[query(action = "query", list = "recentchanges", rcprop = "userid")]
struct Response14;

#[tokio::test]
async fn query_recentchanges_userid() {
    let params = Response14::params();

    let resp: Response14 = test_client::test(params).await.unwrap();
    assert_eq!(resp.items().len(), 10);
    assert!(!resp.continue_.is_empty());
}