diff options
| author | Bryan Newbold <bnewbold@robocracy.org> | 2019-01-09 00:28:19 -0800 | 
|---|---|---|
| committer | Bryan Newbold <bnewbold@robocracy.org> | 2019-01-09 00:31:52 -0800 | 
| commit | aef5781fdf5eca67ea7b2c04399500994090050d (patch) | |
| tree | f16e53d7714e9a980cdb6a58d14491784b90b229 /rust | |
| parent | 5dca65fa0992bedb826aa7a762dc69e1beaed2de (diff) | |
| download | fatcat-aef5781fdf5eca67ea7b2c04399500994090050d.tar.gz fatcat-aef5781fdf5eca67ea7b2c04399500994090050d.zip | |
revert pg_tmp parallel tests (for now)
I really want these to work, but even with jitter get frequent test
failures, and CI is broken.
Diffstat (limited to 'rust')
| -rw-r--r-- | rust/README.md | 4 | ||||
| -rw-r--r-- | rust/src/server.rs | 19 | ||||
| -rw-r--r-- | rust/tests/helpers.rs | 4 | 
3 files changed, 7 insertions, 20 deletions
| diff --git a/rust/README.md b/rust/README.md index 33249a44..decfc74d 100644 --- a/rust/README.md +++ b/rust/README.md @@ -42,10 +42,6 @@ Build and run:  Tests: -    cargo test - -    # if you get weird postgres errors, try running only one test at a time -    # (slow and conservative)      cargo test -- --test-threads 1  Note that most "integration" level tests are written in python and run by diff --git a/rust/src/server.rs b/rust/src/server.rs index 70e667be..6b389a97 100644 --- a/rust/src/server.rs +++ b/rust/src/server.rs @@ -7,9 +7,7 @@ use diesel;  use diesel::pg::PgConnection;  use diesel::r2d2::ConnectionManager;  use dotenv::dotenv; -use rand::Rng; -use std::process::Command; -use std::{env, thread, time}; +use std::env;  #[cfg(feature = "postgres")]  embed_migrations!("../migrations/"); @@ -59,23 +57,16 @@ pub fn create_server() -> Result<Server> {  /// CI should run tests serially.  pub fn create_test_server() -> Result<Server> {      dotenv().ok(); -    // sleep a bit so we don't have thundering herd collisions, resuliting in -    // "pg_extension_name_index" or "pg_proc_proname_args_nsp_index" or "pg_type_typname_nsp_index" -    // duplicate key violations. -    thread::sleep(time::Duration::from_millis( -        rand::thread_rng().gen_range(0, 200), -    )); -    let pg_tmp = Command::new("./tests/pg_tmp.sh") -        .output() -        .expect("run ./tests/pg_tmp.sh to get temporary postgres DB"); -    let database_url = String::from_utf8_lossy(&pg_tmp.stdout).to_string(); +    let database_url = env::var("TEST_DATABASE_URL").expect("TEST_DATABASE_URL must be set");      env::set_var("DATABASE_URL", database_url);      let mut server = create_server()?;      server.auth_confectionary = AuthConfectionary::new_dummy();      let conn = server.db_pool.get().expect("db_pool error"); -    // run migrations; this is a fresh/bare database +    // create fresh database +    diesel_migrations::run_pending_migrations(&conn).unwrap(); +    diesel_migrations::revert_latest_migration(&conn).unwrap();      diesel_migrations::run_pending_migrations(&conn).unwrap();      Ok(server)  } diff --git a/rust/tests/helpers.rs b/rust/tests/helpers.rs index 2ba94a5c..677a8855 100644 --- a/rust/tests/helpers.rs +++ b/rust/tests/helpers.rs @@ -36,7 +36,7 @@ pub fn setup_client() -> (Client, Context, Listening) {      let mut iron_server = Iron::new(chain);      iron_server.threads = 1; -    // XXX: this isn't support to block, but it is. Disabling these tests for now. +    // XXX: this isn't supposed to block, but it is. Disabling these tests for now.      let iron_server = iron_server          .http("localhost:9300")          .expect("Failed to start HTTP server"); @@ -51,7 +51,7 @@ pub fn setup_http() -> (      iron::middleware::Chain,      diesel::r2d2::PooledConnection<diesel::r2d2::ConnectionManager<diesel::PgConnection>>,  ) { -    let server = fatcat::create_test_server().unwrap(); +    let server = server::create_test_server().unwrap();      let conn = server.db_pool.get().expect("db_pool error");      // setup auth as admin user | 
