database: add test for selfsig check

This commit is contained in:
Vincent Breitmoser 2019-06-11 14:29:24 +02:00
parent 6bdd1bde22
commit 05e1029037
No known key found for this signature in database
GPG Key ID: 7BD18320DEADFA11
2 changed files with 27 additions and 0 deletions

View File

@ -754,6 +754,15 @@ mod tests {
db.check_consistency().expect("inconsistent database");
}
#[test]
fn no_selfsig() {
let tmpdir = TempDir::new().unwrap();
let mut db = Filesystem::new_from_base(tmpdir.path()).unwrap();
test::test_no_selfsig(&mut db);
db.check_consistency().expect("inconsistent database");
}
#[test]
fn bad_uids() {
let tmpdir = TempDir::new().unwrap();

View File

@ -841,3 +841,21 @@ pub fn test_bad_uids<D: Database>(db: &mut D) {
unparsed_uids: 2,
}, tpk_status);
}
pub fn test_no_selfsig<D: Database>(db: &mut D) {
let (mut tpk, revocation) = TPKBuilder::new()
.generate()
.unwrap();
// don't allow upload of naked key
assert!(db.merge(tpk.clone()).is_err());
// with revocation, it's ok
tpk = tpk.merge_packets(vec![revocation.into()]).unwrap();
let tpk_status = db.merge(tpk).unwrap().into_tpk_status();
assert_eq!(TpkStatus {
is_revoked: true,
email_status: vec!(),
unparsed_uids: 0,
}, tpk_status);
}