Refactor read_password function to take just the name as argument, not the prompt.

This commit is contained in:
Oleksandr Kozachuk
2023-01-07 13:40:00 +01:00
parent 54c2c0e5a1
commit 122aeaf75b
4 changed files with 9 additions and 13 deletions
+4 -4
View File
@@ -46,7 +46,7 @@ impl<'a> LKEval<'a> {
(_, Some(s)) => Some(s.to_string()),
(None, None) => {
if read {
match (self.read_password)("Master: ".to_string()) {
match (self.read_password)("/".to_string()) {
Ok(password) => {
let name = "/".to_string();
self.cmd_correct(&out, &name, true, Some(password.clone()));
@@ -61,7 +61,7 @@ impl<'a> LKEval<'a> {
}
(Some(pn), None) => {
let password = if read {
(self.read_password)(format!("Password for {}: ", pn.lock().borrow().name)).ok()
(self.read_password)(pn.lock().borrow().name.to_string()).ok()
} else {
None
};
@@ -139,7 +139,7 @@ impl<'a> LKEval<'a> {
Some(p) => {
let pwd = match pass {
Some(pp) => pp.to_string(),
None => (self.read_password)(format!("Password for {}: ", p.lock().borrow().name)).unwrap(),
None => (self.read_password)(p.lock().borrow().name.to_string()).unwrap(),
};
self.cmd_correct(&out, &p.lock().borrow().name, true, Some(pwd.clone()));
self.state.lock().borrow_mut().secrets.insert(p.lock().borrow().name.to_string(), pwd);
@@ -148,7 +148,7 @@ impl<'a> LKEval<'a> {
if name == "/" {
let pwd = match pass {
Some(pp) => pp.to_string(),
None => (self.read_password)("Master: ".to_string()).unwrap(),
None => (self.read_password)("/".to_string()).unwrap(),
};
self.cmd_correct(&out, &"/".to_string(), true, Some(pwd.clone()));
self.state.lock().borrow_mut().secrets.insert("/".to_string(), pwd);
+1 -5
View File
@@ -320,22 +320,18 @@ mod tests {
Date::new(2022, 12, 30),
None,
));
println!("POINT 1");
assert_eq!(
LKEval::news(Command::Add(t1.clone()), lk.clone()).eval(),
LKPrint::new(LKOut::from_vecs(vec![], vec![]), false, lk.clone())
);
println!("POINT 2");
assert_eq!(
LKEval::news(Command::Add(t2.clone()), lk.clone()).eval(),
LKPrint::new(LKOut::from_vecs(vec![], vec![]), false, lk.clone())
);
println!("POINT 3");
assert_eq!(
LKEval::news(Command::Add(t3.clone()), lk.clone()).eval(),
LKPrint::new(LKOut::from_vecs(vec![], vec![]), false, lk.clone())
);
println!("POINT 4");
assert_eq!(
LKEval::news(Command::Mv("t3".to_string(), "t2".to_string()), lk.clone()).eval(),
LKPrint::new(LKOut::from_vecs(vec![], vec![]), false, lk.clone())
@@ -358,7 +354,7 @@ mod tests {
)
);
assert_eq!(
LKEval::newd(Command::Enc("t3".to_string()), lk.clone(), |p| if p == "Master: " {
LKEval::newd(Command::Enc("t3".to_string()), lk.clone(), |p| if p == "/" {
Ok("a".to_string())
} else {
Err(std::io::Error::new(std::io::ErrorKind::NotFound, "test"))
+2 -2
View File
@@ -493,7 +493,7 @@ mod tests {
assert_eq!(
pr.out,
LKOut::from_vecs(
vec!["fief gild sits can un very".to_string()],
vec!["san bud most noon jaw cash".to_string()],
vec![
"warning: password / is not marked as correct".to_string(),
"warning: password t1 is not marked as correct".to_string(),
@@ -523,6 +523,6 @@ mod tests {
]
)
);
assert_eq!(std::fs::read_to_string("test_pb_out").expect("read"), "fief gild sits can un very");
assert_eq!(std::fs::read_to_string("test_pb_out").expect("read"), "san bud most noon jaw cash");
}
}
+2 -2
View File
@@ -139,8 +139,8 @@ pub mod editor {
}
}
pub fn password(prompt: impl ToString) -> std::io::Result<String> {
rpassword::prompt_password(prompt)
pub fn password(pwname: String) -> std::io::Result<String> {
rpassword::prompt_password(format!("Password for {}: ", pwname))
}
}