bytebraise/data_smart/tests/
bytebraise.rs

1#[cfg(test)]
2use regex::Captures;
3
4use crate::basic_datasmart_test;
5#[cfg(test)]
6use crate::data_smart::{DataSmart, DataSmartError, DataSmartResult, VAR_EXPANSION_REGEX};
7
8basic_datasmart_test!(do_something, d, {
9    d.set_var("OVERRIDES", "test:local:bar")?;
10    d.set_var("A", "B")?;
11    d.set_var("A_test", "Q")?;
12    d.set_var("A_local_test", "QQQQQ")?;
13
14    let v = d.get_var("A").unwrap().unwrap();
15    assert_eq!(v, "QQQQQ");
16});
17
18#[test]
19fn var_expansion_regex_works() {
20    let input = "${${foo}}";
21
22    let m = VAR_EXPANSION_REGEX.replace(input, |_caps: &Captures| "OK");
23    assert_eq!(m.into_owned(), String::from("${OK}"));
24}
25
26basic_datasmart_test!(parent_stuff, d, {
27    d.set_var("A", "B")?;
28
29    let copy = d.create_copy();
30    //d.set_var("A", "Q", false);
31    let v = copy.get_var("A")?.ok_or(DataSmartError::UnwrapNoneError)?;
32    assert_eq!(v, "B");
33});
34
35#[cfg(feature = "python")]
36basic_datasmart_test!(expansion_stuff, d, {
37    d.set_var("A", "B")?;
38    d.set_var("Q", "FRIEND")?;
39    d.set_var("A_append", "Q")?;
40    d.set_var("OVERRIDES_append", "T")?;
41    d.set_var("EXP", "${A}${@d.getVar(\"Q\")}")?;
42    d.set_var_flag("Q", "wat", "1")?;
43
44    let v = d.expand("${EXP}")?.ok_or(DataSmartError::UnwrapNoneError)?;
45    assert_eq!(v, "BQFRIEND");
46});