refactor: Improve error handling

This commit is contained in:
0xalivecow 2024-10-24 13:35:17 +02:00
parent 389ef14e33
commit f3e9ded953
No known key found for this signature in database
2 changed files with 18 additions and 14 deletions

View file

@ -12,7 +12,7 @@ fn main() -> Result<()> {
let json = fs::read_to_string(path_to_workload).unwrap();
let workload = kauma::utils::parse::parse_json(json)?;
let response = kauma::tasks::task_distrubute(&workload);
let response = kauma::tasks::task_distrubute(&workload)?;
println!("{}", serde_json::to_string(&response)?);
Ok(())

View file

@ -1,11 +1,7 @@
use std::collections::HashMap;
use crate::utils::parse::{Responses, Testcase, Testcases};
use tasks01::{
block2poly::block2poly,
poly2block::{poly2block},
sea128::sea128,
};
use tasks01::{block2poly::block2poly, poly2block::poly2block, sea128::sea128};
use anyhow::{anyhow, Result};
use serde_json::{json, Value};
@ -37,20 +33,24 @@ pub fn task_deploy(testcase: &Testcase) -> Result<Value> {
let json = json!({"output" : result});
Ok(json)
}
_ => Err(anyhow!("Fatal. No compatible action found")),
_ => Err(anyhow!(
"Fatal. No compatible action found. Json data was {:?}. Arguments were; {:?}",
testcase,
args
)),
}
}
pub fn task_distrubute(testcases: &Testcases) -> Responses {
pub fn task_distrubute(testcases: &Testcases) -> Result<Responses> {
let mut responses: HashMap<String, Value> = HashMap::new();
for (id, testcase) in &testcases.testcases {
responses.insert(id.to_owned(), task_deploy(testcase).unwrap());
}
Responses {
Ok(Responses {
responses: responses,
}
})
}
#[cfg(test)]
@ -76,20 +76,22 @@ mod tests {
}
#[test]
fn test_task_distribution() {
fn test_task_distribution() -> Result<()> {
let json = fs::read_to_string("src/test_json/poly2block_example.json").unwrap();
let parsed = parse_json(json).unwrap();
let expected = json!({ "responses": { "b856d760-023d-4b00-bad2-15d2b6da22fe": {"block": "ARIAAAAAAAAAAAAAAAAAgA=="}}});
assert_eq!(
serde_json::to_value(task_distrubute(&parsed)).unwrap(),
serde_json::to_value(task_distrubute(&parsed)?).unwrap(),
serde_json::to_value(expected).unwrap()
);
Ok(())
}
#[test]
fn test_task_sea128_task_full() {
fn test_task_sea128_task_full() -> Result<()> {
let json = fs::read_to_string("src/test_json/sea128.json").unwrap();
let parsed = parse_json(json).unwrap();
@ -105,8 +107,10 @@ mod tests {
});
assert_eq!(
serde_json::to_value(task_distrubute(&parsed)).unwrap(),
serde_json::to_value(task_distrubute(&parsed)?).unwrap(),
serde_json::to_value(expected).unwrap()
);
Ok(())
}
}