mirror of
https://github.com/nukesor/pueue
synced 2024-10-04 14:59:23 +00:00
Adjust tests to use temporary directory as pueue_directory
This commit is contained in:
parent
f5f26fb7b2
commit
1203cad3aa
66
Cargo.lock
generated
66
Cargo.lock
generated
|
@ -560,6 +560,12 @@ dependencies = [
|
|||
"miniz_oxide",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "fuchsia-cprng"
|
||||
version = "0.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
|
||||
|
||||
[[package]]
|
||||
name = "futures-channel"
|
||||
version = "0.3.15"
|
||||
|
@ -1136,6 +1142,7 @@ dependencies = [
|
|||
"shell-escape",
|
||||
"simplelog",
|
||||
"snap",
|
||||
"tempdir",
|
||||
"tempfile",
|
||||
"version_check",
|
||||
"whoami",
|
||||
|
@ -1145,7 +1152,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "pueue-lib"
|
||||
version = "0.12.3"
|
||||
source = "git+https://github.com/Nukesor/pueue-lib?branch=master#74f54764e5eccc76f9b339acf8ca92b65809911b"
|
||||
source = "git+https://github.com/Nukesor/pueue-lib?branch=master#050a8458ca25af5235a913166fbf58bb0d89705c"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-std",
|
||||
|
@ -1156,7 +1163,7 @@ dependencies = [
|
|||
"config",
|
||||
"dirs",
|
||||
"log",
|
||||
"rand",
|
||||
"rand 0.8.3",
|
||||
"rcgen",
|
||||
"rev_lines",
|
||||
"rustls",
|
||||
|
@ -1186,6 +1193,19 @@ dependencies = [
|
|||
"proc-macro2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand"
|
||||
version = "0.4.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
|
||||
dependencies = [
|
||||
"fuchsia-cprng",
|
||||
"libc",
|
||||
"rand_core 0.3.1",
|
||||
"rdrand",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand"
|
||||
version = "0.8.3"
|
||||
|
@ -1194,7 +1214,7 @@ checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
|
|||
dependencies = [
|
||||
"libc",
|
||||
"rand_chacha",
|
||||
"rand_core",
|
||||
"rand_core 0.6.2",
|
||||
"rand_hc",
|
||||
]
|
||||
|
||||
|
@ -1205,9 +1225,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
|
||||
dependencies = [
|
||||
"ppv-lite86",
|
||||
"rand_core",
|
||||
"rand_core 0.6.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_core"
|
||||
version = "0.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
|
||||
dependencies = [
|
||||
"rand_core 0.4.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_core"
|
||||
version = "0.4.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
|
||||
|
||||
[[package]]
|
||||
name = "rand_core"
|
||||
version = "0.6.2"
|
||||
|
@ -1223,7 +1258,7 @@ version = "0.3.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
|
||||
dependencies = [
|
||||
"rand_core",
|
||||
"rand_core 0.6.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1238,6 +1273,15 @@ dependencies = [
|
|||
"yasna",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rdrand"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
|
||||
dependencies = [
|
||||
"rand_core 0.3.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "redox_syscall"
|
||||
version = "0.2.8"
|
||||
|
@ -1525,6 +1569,16 @@ dependencies = [
|
|||
"unicode-xid",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tempdir"
|
||||
version = "0.3.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
|
||||
dependencies = [
|
||||
"rand 0.4.6",
|
||||
"remove_dir_all",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tempfile"
|
||||
version = "3.2.0"
|
||||
|
@ -1533,7 +1587,7 @@ checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
|
|||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"libc",
|
||||
"rand",
|
||||
"rand 0.8.3",
|
||||
"redox_syscall",
|
||||
"remove_dir_all",
|
||||
"winapi",
|
||||
|
|
|
@ -64,3 +64,6 @@ psutil = "3"
|
|||
|
||||
[build-dependencies]
|
||||
version_check = "0.9"
|
||||
|
||||
[dev-dependencies]
|
||||
tempdir = "0.3"
|
||||
|
|
|
@ -38,15 +38,19 @@ pub fn clean(message: CleanMessage, state: &SharedState) -> Message {
|
|||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use std::path::PathBuf;
|
||||
|
||||
use super::super::fixtures::*;
|
||||
use super::*;
|
||||
|
||||
use tempdir::TempDir;
|
||||
|
||||
fn get_message(successful_only: bool) -> CleanMessage {
|
||||
CleanMessage { successful_only }
|
||||
}
|
||||
|
||||
fn get_clean_test_state() -> SharedState {
|
||||
let state = get_state();
|
||||
fn get_clean_test_state(path: PathBuf) -> SharedState {
|
||||
let state = get_state(path);
|
||||
|
||||
{
|
||||
let mut state = state.lock().unwrap();
|
||||
|
@ -80,7 +84,8 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn clean_normal() {
|
||||
let state = get_stub_state();
|
||||
let tempdir = TempDir::new("pueue_test").expect("Failed to create test pueue directory");
|
||||
let state = get_stub_state(tempdir.into_path());
|
||||
|
||||
// Only task 1 will be removed, since it's the only TaskStatus with `Done`.
|
||||
let message = clean(get_message(false), &state);
|
||||
|
@ -97,7 +102,8 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn clean_normal_for_all_results() {
|
||||
let state = get_clean_test_state();
|
||||
let tempdir = TempDir::new("pueue_test").expect("Failed to create test pueue directory");
|
||||
let state = get_clean_test_state(tempdir.into_path());
|
||||
|
||||
// All finished tasks should removed when calling default `clean`.
|
||||
let message = clean(get_message(false), &state);
|
||||
|
@ -114,7 +120,8 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn clean_successful_only() {
|
||||
let state = get_clean_test_state();
|
||||
let tempdir = TempDir::new("pueue_test").expect("Failed to create test pueue directory");
|
||||
let state = get_clean_test_state(tempdir.into_path());
|
||||
|
||||
// Only successfully finished tasks should get removed when
|
||||
// calling `clean` with the `successful_only` flag.
|
||||
|
|
|
@ -89,6 +89,7 @@ fn shutdown(sender: &Sender<Message>, state: &SharedState) -> Message {
|
|||
#[cfg(test)]
|
||||
mod fixtures {
|
||||
use std::collections::HashMap;
|
||||
use std::path::PathBuf;
|
||||
pub use std::sync::mpsc::Sender;
|
||||
use std::sync::{Arc, Mutex};
|
||||
|
||||
|
@ -103,15 +104,18 @@ mod fixtures {
|
|||
pub use super::*;
|
||||
pub use crate::network::response_helper::*;
|
||||
|
||||
pub fn get_settings() -> Settings {
|
||||
Settings::default_config()
|
||||
pub fn get_settings(pueue_dir: PathBuf) -> Settings {
|
||||
let mut settings: Settings = Settings::default_config()
|
||||
.expect("Failed to get default config")
|
||||
.try_into()
|
||||
.expect("Failed to get test settings")
|
||||
.expect("Failed to get test settings");
|
||||
settings.shared.pueue_directory = pueue_dir;
|
||||
|
||||
settings
|
||||
}
|
||||
|
||||
pub fn get_state() -> SharedState {
|
||||
let settings = get_settings();
|
||||
pub fn get_state(pueue_dir: PathBuf) -> SharedState {
|
||||
let settings = get_settings(pueue_dir);
|
||||
let state = State::new(&settings, None);
|
||||
Arc::new(Mutex::new(state))
|
||||
}
|
||||
|
@ -130,8 +134,8 @@ mod fixtures {
|
|||
)
|
||||
}
|
||||
|
||||
pub fn get_stub_state() -> SharedState {
|
||||
let state = get_state();
|
||||
pub fn get_stub_state(pueue_dir: PathBuf) -> SharedState {
|
||||
let state = get_state(pueue_dir);
|
||||
{
|
||||
// Queued task
|
||||
let mut state = state.lock().unwrap();
|
||||
|
|
|
@ -40,12 +40,15 @@ pub fn remove(task_ids: Vec<usize>, state: &SharedState) -> Message {
|
|||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use tempdir::TempDir;
|
||||
|
||||
use super::super::fixtures::*;
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn normal_remove() {
|
||||
let state = get_stub_state();
|
||||
let tempdir = TempDir::new("pueue_test").expect("Failed to create test pueue directory");
|
||||
let state = get_stub_state(tempdir.into_path());
|
||||
|
||||
// 3 and 4 aren't allowed to be removed, since they're running.
|
||||
// The rest will succeed.
|
||||
|
@ -66,7 +69,8 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn removal_of_dependencies() {
|
||||
let state = get_stub_state();
|
||||
let tempdir = TempDir::new("pueue_test").expect("Failed to create test pueue directory");
|
||||
let state = get_stub_state(tempdir.into_path());
|
||||
|
||||
{
|
||||
let mut state = state.lock().unwrap();
|
||||
|
|
|
@ -49,6 +49,10 @@ pub fn switch(message: SwitchMessage, state: &SharedState) -> Message {
|
|||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use std::path::PathBuf;
|
||||
|
||||
use tempdir::TempDir;
|
||||
|
||||
use super::super::fixtures::*;
|
||||
use super::*;
|
||||
|
||||
|
@ -59,8 +63,8 @@ mod tests {
|
|||
}
|
||||
}
|
||||
|
||||
fn get_test_state() -> SharedState {
|
||||
let state = get_state();
|
||||
fn get_test_state(path: PathBuf) -> SharedState {
|
||||
let state = get_state(path);
|
||||
|
||||
{
|
||||
let mut state = state.lock().unwrap();
|
||||
|
@ -95,7 +99,8 @@ mod tests {
|
|||
#[test]
|
||||
/// A normal switch between two id's works perfectly fine.
|
||||
fn switch_normal() {
|
||||
let state = get_test_state();
|
||||
let tempdir = TempDir::new("pueue_test").expect("Failed to create test pueue directory");
|
||||
let state = get_test_state(tempdir.into_path());
|
||||
|
||||
let message = switch(get_message(1, 2), &state);
|
||||
|
||||
|
@ -114,7 +119,8 @@ mod tests {
|
|||
/// If any task that is specified as dependency get's switched,
|
||||
/// all dependants need to be updated.
|
||||
fn switch_task_with_dependant() {
|
||||
let state = get_test_state();
|
||||
let tempdir = TempDir::new("pueue_test").expect("Failed to create test pueue directory");
|
||||
let state = get_test_state(tempdir.into_path());
|
||||
|
||||
switch(get_message(0, 3), &state);
|
||||
|
||||
|
@ -126,7 +132,8 @@ mod tests {
|
|||
/// A task with two dependencies shouldn't experience any change, if those two dependencies
|
||||
/// switched places.
|
||||
fn switch_double_dependency() {
|
||||
let state = get_test_state();
|
||||
let tempdir = TempDir::new("pueue_test").expect("Failed to create test pueue directory");
|
||||
let state = get_test_state(tempdir.into_path());
|
||||
|
||||
switch(get_message(1, 2), &state);
|
||||
|
||||
|
@ -139,7 +146,8 @@ mod tests {
|
|||
/// You can only switch tasks that are either stashed or queued.
|
||||
/// Everything else should result in an error message.
|
||||
fn switch_invalid() {
|
||||
let state = get_stub_state();
|
||||
let tempdir = TempDir::new("pueue_test").expect("Failed to create test pueue directory");
|
||||
let state = get_state(tempdir.into_path());
|
||||
|
||||
let combinations: Vec<(usize, usize)> = vec![
|
||||
(0, 1), // Queued + Done
|
||||
|
|
Loading…
Reference in a new issue