diff options
Diffstat (limited to 'rust')
| -rw-r--r-- | rust/tests/helpers.rs | 8 | ||||
| -rw-r--r-- | rust/tests/test_api_server_http.rs | 153 | 
2 files changed, 83 insertions, 78 deletions
| diff --git a/rust/tests/helpers.rs b/rust/tests/helpers.rs index 677a8855..01891eaf 100644 --- a/rust/tests/helpers.rs +++ b/rust/tests/helpers.rs @@ -9,6 +9,10 @@ use iron::{status, Chain, Headers, Iron, Listening};  use iron_test::response;  use std::str::FromStr; + +pub static TEST_ADMIN_EDITOR_ID: &str = "aaaaaaaaaaaabkvkaaaaaaaaae"; +//static TEST_ADMIN_EDITOR_ID: FatCatId = FatCatId::from_str("aaaaaaaaaaaabkvkaaaaaaaaae").unwrap(); +  // A current problem with this method is that if the test fails (eg, panics, assert fails), the  // server never gets closed, and the server thread hangs forever.  // One workaround might be to invert the function, take a closure, capture the panic/failure, and @@ -18,7 +22,7 @@ pub fn setup_client() -> (Client, Context, Listening) {      let server = server::create_test_server().unwrap();      // setup auth as admin user -    let admin_id = FatCatId::from_str("aaaaaaaaaaaabkvkaaaaaaaaae").unwrap(); +    let admin_id = FatCatId::from_str(TEST_ADMIN_EDITOR_ID).unwrap();      let token = server          .auth_confectionary          .create_token(admin_id, None) @@ -55,7 +59,7 @@ pub fn setup_http() -> (      let conn = server.db_pool.get().expect("db_pool error");      // setup auth as admin user -    let admin_id = FatCatId::from_str("aaaaaaaaaaaabkvkaaaaaaaaae").unwrap(); +    let admin_id = FatCatId::from_str(TEST_ADMIN_EDITOR_ID).unwrap();      let token = server          .auth_confectionary          .create_token(admin_id, None) diff --git a/rust/tests/test_api_server_http.rs b/rust/tests/test_api_server_http.rs index 7d4469af..4773a44e 100644 --- a/rust/tests/test_api_server_http.rs +++ b/rust/tests/test_api_server_http.rs @@ -12,7 +12,7 @@ use fatcat::editing::create_editgroup;  use fatcat::identifiers::*;  use iron::status;  use iron_test::request; -use uuid::Uuid; +use std::str::FromStr;  mod helpers; @@ -484,11 +484,13 @@ fn test_reverse_lookups() {  #[test]  fn test_post_container() { -    let (headers, router, _conn) = helpers::setup_http(); +    let (headers, router, conn) = helpers::setup_http(); +    let editor_id = FatCatId::from_str(helpers::TEST_ADMIN_EDITOR_ID).unwrap(); +    let editgroup_id = FatCatId::from_uuid(&create_editgroup(&conn, editor_id.to_uuid()).unwrap());      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/container", +            &format!("http://localhost:9411/v0/container?editgroup_id={}", editgroup_id),              headers,              r#"{"name": "test journal"}"#,              &router, @@ -516,11 +518,13 @@ fn test_post_batch_container() {  #[test]  fn test_post_creator() { -    let (headers, router, _conn) = helpers::setup_http(); +    let (headers, router, conn) = helpers::setup_http(); +    let editor_id = FatCatId::from_str(helpers::TEST_ADMIN_EDITOR_ID).unwrap(); +    let editgroup_id = FatCatId::from_uuid(&create_editgroup(&conn, editor_id.to_uuid()).unwrap());      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/creator", +            &format!( "http://localhost:9411/v0/creator?editgroup_id={}", editgroup_id),              headers,              r#"{"display_name": "some person"}"#,              &router, @@ -533,8 +537,8 @@ fn test_post_creator() {  #[test]  fn test_post_file() {      let (headers, router, conn) = helpers::setup_http(); -    let editor_id = Uuid::parse_str("00000000-0000-0000-AAAA-000000000001").unwrap(); -    let editgroup_id = uuid2fcid(&create_editgroup(&conn, editor_id).unwrap()); +    let editor_id = FatCatId::from_str(helpers::TEST_ADMIN_EDITOR_ID).unwrap(); +    let editgroup_id = FatCatId::from_uuid(&create_editgroup(&conn, editor_id.to_uuid()).unwrap());      helpers::check_http_response(          request::post( @@ -603,8 +607,8 @@ fn test_post_file() {  #[test]  fn test_post_fileset() {      let (headers, router, conn) = helpers::setup_http(); -    let editor_id = Uuid::parse_str("00000000-0000-0000-AAAA-000000000001").unwrap(); -    let editgroup_id = uuid2fcid(&create_editgroup(&conn, editor_id).unwrap()); +    let editor_id = FatCatId::from_str(helpers::TEST_ADMIN_EDITOR_ID).unwrap(); +    let editgroup_id = FatCatId::from_uuid(&create_editgroup(&conn, editor_id.to_uuid()).unwrap());      helpers::check_http_response(          request::post( @@ -663,8 +667,8 @@ fn test_post_fileset() {  #[test]  fn test_post_webcapture() {      let (headers, router, conn) = helpers::setup_http(); -    let editor_id = Uuid::parse_str("00000000-0000-0000-AAAA-000000000001").unwrap(); -    let editgroup_id = uuid2fcid(&create_editgroup(&conn, editor_id).unwrap()); +    let editor_id = FatCatId::from_str(helpers::TEST_ADMIN_EDITOR_ID).unwrap(); +    let editgroup_id = FatCatId::from_uuid(&create_editgroup(&conn, editor_id.to_uuid()).unwrap());      helpers::check_http_response(          request::post( @@ -733,8 +737,8 @@ fn test_post_webcapture() {  #[test]  fn test_post_release() {      let (headers, router, conn) = helpers::setup_http(); -    let editor_id = Uuid::parse_str("00000000-0000-0000-AAAA-000000000001").unwrap(); -    let editgroup_id = uuid2fcid(&create_editgroup(&conn, editor_id).unwrap()); +    let editor_id = FatCatId::from_str(helpers::TEST_ADMIN_EDITOR_ID).unwrap(); +    let editgroup_id = FatCatId::from_uuid(&create_editgroup(&conn, editor_id.to_uuid()).unwrap());      helpers::check_http_response(          request::post( @@ -835,11 +839,13 @@ fn test_post_release() {  #[test]  fn test_post_work() { -    let (headers, router, _conn) = helpers::setup_http(); +    let (headers, router, conn) = helpers::setup_http(); +    let editor_id = FatCatId::from_str(helpers::TEST_ADMIN_EDITOR_ID).unwrap(); +    let editgroup_id = FatCatId::from_uuid(&create_editgroup(&conn, editor_id.to_uuid()).unwrap());      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/work", +            &format!( "http://localhost:9411/v0/work?editgroup_id={}", editgroup_id),              headers.clone(),              // TODO: target_work_id              r#"{ @@ -855,10 +861,12 @@ fn test_post_work() {  #[test]  fn test_update_work() {      let (headers, router, conn) = helpers::setup_http(); +    let editor_id = FatCatId::from_str(helpers::TEST_ADMIN_EDITOR_ID).unwrap(); +    let editgroup_id = FatCatId::from_uuid(&create_editgroup(&conn, editor_id.to_uuid()).unwrap());      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/work", +            &format!("http://localhost:9411/v0/work?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{                  "extra": { "source": "other speculation" } @@ -869,13 +877,11 @@ fn test_update_work() {          None,      ); -    let editor_id = Uuid::parse_str("00000000-0000-0000-AAAA-000000000001").unwrap(); -    let editgroup_id = create_editgroup(&conn, editor_id).unwrap();      helpers::check_http_response(          request::post(              &format!(                  "http://localhost:9411/v0/editgroup/{}/accept", -                uuid2fcid(&editgroup_id) +                editgroup_id              ),              headers.clone(),              "", @@ -889,10 +895,12 @@ fn test_update_work() {  #[test]  fn test_delete_work() {      let (headers, router, conn) = helpers::setup_http(); +    let editor_id = FatCatId::from_str(helpers::TEST_ADMIN_EDITOR_ID).unwrap(); +    let editgroup_id = FatCatId::from_uuid(&create_editgroup(&conn, editor_id.to_uuid()).unwrap());      helpers::check_http_response(          request::delete( -            "http://localhost:9411/v0/work/aaaaaaaaaaaaavkvaaaaaaaaai", +            &format!("http://localhost:9411/v0/work/aaaaaaaaaaaaavkvaaaaaaaaai?editgroup_id={}", editgroup_id),              headers.clone(),              &router,          ), @@ -900,14 +908,9 @@ fn test_delete_work() {          None,      ); -    let editor_id = Uuid::parse_str("00000000-0000-0000-AAAA-000000000001").unwrap(); -    let editgroup_id = create_editgroup(&conn, editor_id).unwrap();      helpers::check_http_response(          request::post( -            &format!( -                "http://localhost:9411/v0/editgroup/{}/accept", -                uuid2fcid(&editgroup_id) -            ), +            &format!("http://localhost:9411/v0/editgroup/{}/accept", editgroup_id),              headers.clone(),              "",              &router, @@ -920,9 +923,8 @@ fn test_delete_work() {  #[test]  fn test_accept_editgroup() {      let (headers, router, conn) = helpers::setup_http(); - -    let editor_id = Uuid::parse_str("00000000-0000-0000-AAAA-000000000001").unwrap(); -    let editgroup_id = create_editgroup(&conn, editor_id).unwrap(); +    let editor_id = FatCatId::from_str(helpers::TEST_ADMIN_EDITOR_ID).unwrap(); +    let editgroup_id = FatCatId::from_uuid(&create_editgroup(&conn, editor_id.to_uuid()).unwrap());      let c: i64 = container_ident::table          .filter(container_ident::is_live.eq(false)) @@ -931,7 +933,7 @@ fn test_accept_editgroup() {          .unwrap();      assert_eq!(c, 0);      let c: i64 = changelog::table -        .filter(changelog::editgroup_id.eq(editgroup_id)) +        .filter(changelog::editgroup_id.eq(editgroup_id.to_uuid()))          .count()          .get_result(&conn)          .unwrap(); @@ -939,14 +941,11 @@ fn test_accept_editgroup() {      helpers::check_http_response(          request::post( -            &format!( -                "http://localhost:9411/v0/container?editgroup_id={}", -                uuid2fcid(&editgroup_id) -            ), +            &format!("http://localhost:9411/v0/container?editgroup_id={}", editgroup_id),              headers.clone(),              &format!(                  "{{\"name\": \"test journal 1\", \"editgroup_id\": \"{}\"}}", -                uuid2fcid(&editgroup_id) +                editgroup_id              ),              &router,          ), @@ -955,14 +954,11 @@ fn test_accept_editgroup() {      );      helpers::check_http_response(          request::post( -            &format!( -                "http://localhost:9411/v0/container?editgroup_id={}", -                uuid2fcid(&editgroup_id) -            ), +            &format!("http://localhost:9411/v0/container?editgroup_id={}", editgroup_id),              headers.clone(),              &format!(                  "{{\"name\": \"test journal 2\", \"editgroup_id\": \"{}\"}}", -                uuid2fcid(&editgroup_id) +                editgroup_id              ),              &router,          ), @@ -981,7 +977,7 @@ fn test_accept_editgroup() {          request::get(              &format!(                  "http://localhost:9411/v0/editgroup/{}", -                uuid2fcid(&editgroup_id) +                editgroup_id              ),              headers.clone(),              &router, @@ -994,7 +990,7 @@ fn test_accept_editgroup() {          request::post(              &format!(                  "http://localhost:9411/v0/editgroup/{}/accept", -                uuid2fcid(&editgroup_id) +                editgroup_id              ),              headers.clone(),              "", @@ -1011,7 +1007,7 @@ fn test_accept_editgroup() {          .unwrap();      assert_eq!(c, 0);      let c: i64 = changelog::table -        .filter(changelog::editgroup_id.eq(editgroup_id)) +        .filter(changelog::editgroup_id.eq(editgroup_id.to_uuid()))          .count()          .get_result(&conn)          .unwrap(); @@ -1045,11 +1041,13 @@ fn test_changelog() {  #[test]  fn test_400() { -    let (headers, router, _conn) = helpers::setup_http(); +    let (headers, router, conn) = helpers::setup_http(); +    let editor_id = FatCatId::from_str(helpers::TEST_ADMIN_EDITOR_ID).unwrap(); +    let editgroup_id = FatCatId::from_uuid(&create_editgroup(&conn, editor_id.to_uuid()).unwrap());      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/release", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers,              r#"{"title": "secret paper",                  "release_type": "article-journal", @@ -1119,12 +1117,14 @@ fn test_edit_gets() {  #[test]  fn test_bad_external_idents() { -    let (headers, router, _conn) = helpers::setup_http(); +    let (headers, router, conn) = helpers::setup_http(); +    let editor_id = FatCatId::from_str(helpers::TEST_ADMIN_EDITOR_ID).unwrap(); +    let editgroup_id = FatCatId::from_uuid(&create_editgroup(&conn, editor_id.to_uuid()).unwrap());      // Bad wikidata QID      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/release", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"title": "secret paper",                  "wikidata_qid": "P12345" @@ -1136,7 +1136,7 @@ fn test_bad_external_idents() {      );      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/container", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"name": "my journal",                  "wikidata_qid": "P12345" @@ -1148,7 +1148,7 @@ fn test_bad_external_idents() {      );      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/creator", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"display_name": "some body",                  "wikidata_qid": "P12345" @@ -1162,7 +1162,7 @@ fn test_bad_external_idents() {      // Bad PMCID      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/release", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"title": "secret paper",                  "pmcid": "12345" @@ -1176,7 +1176,7 @@ fn test_bad_external_idents() {      // Bad PMID      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/release", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"title": "secret paper",                  "pmid": "not-a-number" @@ -1190,7 +1190,7 @@ fn test_bad_external_idents() {      // Bad DOI      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/release", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"title": "secret paper",                  "doi": "asdf" @@ -1204,7 +1204,7 @@ fn test_bad_external_idents() {      // Good identifiers      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/release", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"title": "secret paper",                  "doi": "10.1234/abcde.781231231239", @@ -1222,15 +1222,12 @@ fn test_bad_external_idents() {  #[test]  fn test_abstracts() {      let (headers, router, conn) = helpers::setup_http(); -    let editor_id = Uuid::parse_str("00000000-0000-0000-AAAA-000000000001").unwrap(); -    let editgroup_id = uuid2fcid(&create_editgroup(&conn, editor_id).unwrap()); +    let editor_id = FatCatId::from_str(helpers::TEST_ADMIN_EDITOR_ID).unwrap(); +    let editgroup_id = FatCatId::from_uuid(&create_editgroup(&conn, editor_id.to_uuid()).unwrap());      helpers::check_http_response(          request::post( -            &format!( -                "http://localhost:9411/v0/release?editgroup_id={}", -                editgroup_id -            ), +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"title": "some paper",                  "doi": "10.1234/iiiiiii", @@ -1320,8 +1317,8 @@ fn test_abstracts() {  #[test]  fn test_contribs() {      let (headers, router, conn) = helpers::setup_http(); -    let editor_id = Uuid::parse_str("00000000-0000-0000-AAAA-000000000001").unwrap(); -    let editgroup_id = uuid2fcid(&create_editgroup(&conn, editor_id).unwrap()); +    let editor_id = FatCatId::from_str(helpers::TEST_ADMIN_EDITOR_ID).unwrap(); +    let editgroup_id = FatCatId::from_uuid(&create_editgroup(&conn, editor_id.to_uuid()).unwrap());      helpers::check_http_response(          request::post( @@ -1406,12 +1403,14 @@ fn test_post_batch_autoaccept() {  #[test]  fn test_release_dates() { -    let (headers, router, _conn) = helpers::setup_http(); +    let (headers, router, conn) = helpers::setup_http(); +    let editor_id = FatCatId::from_str(helpers::TEST_ADMIN_EDITOR_ID).unwrap(); +    let editgroup_id = FatCatId::from_uuid(&create_editgroup(&conn, editor_id.to_uuid()).unwrap());      // Ok      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/release", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"title": "secret minimal paper",                  "release_type": "article-journal", @@ -1426,7 +1425,7 @@ fn test_release_dates() {      // Ok      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/release", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"title": "secret minimal paper",                  "release_type": "article-journal", @@ -1441,7 +1440,7 @@ fn test_release_dates() {      // Ok; ISO 8601      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/release", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"title": "secret minimal paper",                  "release_type": "article-journal", @@ -1454,7 +1453,7 @@ fn test_release_dates() {      );      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/release", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"title": "secret minimal paper",                  "release_type": "article-journal", @@ -1469,7 +1468,7 @@ fn test_release_dates() {      // Ok      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/release", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"title": "secret minimal paper",                  "release_type": "article-journal", @@ -1485,7 +1484,7 @@ fn test_release_dates() {      // Ok for now, but may be excluded later      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/release", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"title": "secret minimal paper",                  "release_type": "article-journal", @@ -1501,7 +1500,7 @@ fn test_release_dates() {      // Bad: year/month only      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/release", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"title": "secret minimal paper",                  "release_type": "article-journal", @@ -1516,7 +1515,7 @@ fn test_release_dates() {      // Bad: full timestamp      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/release", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"title": "secret minimal paper",                  "release_type": "article-journal", @@ -1531,7 +1530,7 @@ fn test_release_dates() {      // Bad: bogus month/day      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/release", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"title": "secret minimal paper",                  "release_type": "article-journal", @@ -1546,12 +1545,14 @@ fn test_release_dates() {  #[test]  fn test_release_types() { -    let (headers, router, _conn) = helpers::setup_http(); +    let (headers, router, conn) = helpers::setup_http(); +    let editor_id = FatCatId::from_str(helpers::TEST_ADMIN_EDITOR_ID).unwrap(); +    let editgroup_id = FatCatId::from_uuid(&create_editgroup(&conn, editor_id.to_uuid()).unwrap());      // Ok      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/release", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"title": "secret minimal paper",                  "release_type": "article-journal" @@ -1565,7 +1566,7 @@ fn test_release_types() {      // Bad      helpers::check_http_response(          request::post( -            "http://localhost:9411/v0/release", +            &format!("http://localhost:9411/v0/release?editgroup_id={}", editgroup_id),              headers.clone(),              r#"{"title": "secret minimal paper",                  "release_type": "journal-article" @@ -1584,7 +1585,7 @@ fn test_create_editgroup() {      // We're authenticated, so don't need to supply editor_id      helpers::check_http_response(          request::post( -            &format!("http://localhost:9411/v0/editgroup",), +            "http://localhost:9411/v0/editgroup",              headers.clone(),              "{}",              &router, @@ -1596,7 +1597,7 @@ fn test_create_editgroup() {      // But can if we want to      helpers::check_http_response(          request::post( -            &format!("http://localhost:9411/v0/editgroup",), +            "http://localhost:9411/v0/editgroup",              headers.clone(),              r#"{"editor_id": "aaaaaaaaaaaabkvkaaaaaaaaae"}"#,              &router, | 
