diff options
| author | Jakob L. Kreuze <zerodaysfordays@sdf.org> | 2020-05-18 22:16:56 -0400 |
|---|---|---|
| committer | Jakob L. Kreuze <zerodaysfordays@sdf.org> | 2020-05-18 22:16:56 -0400 |
| commit | dcdf04fbd4f2f861128d08bfe9175e12db7067b7 (patch) | |
| tree | 73baa84ae5aadf9a1b40acf40777c6611d079060 | |
| parent | 508b6e3d77fb1c671bb3ebd6ef760ef25da2c9cc (diff) | |
Fix `add_tag`.
| -rw-r--r-- | src/main.rs | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs index 033f562..611df3e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -99,8 +99,8 @@ impl TagBase { let exists = self .conn .prepare("SELECT * FROM tags WHERE name = ?")? - .exists(params![tag]); - if let Err(_) = exists { + .exists(params![tag])?; + if !exists { self.conn .execute("INSERT INTO tags (name) VALUES(?)", params![tag])?; } @@ -128,7 +128,7 @@ impl TagBase { FROM mapping INNER JOIN images ON images.id = ? INNER JOIN tags - GROUP BY tags.name", + GROUP BY tags.name;", )? .query_map(params![image_id], |row| row.get(0))? .filter_map(|tag| tag.ok()) @@ -167,6 +167,26 @@ mod tests { .exists(params![id]) .unwrap(); assert!(exists); + let exists = tb + .conn + .prepare("SELECT filename, blake2 FROM images WHERE id = ?;") + .unwrap() + .exists(params![id + 1]) + .unwrap(); + assert!(!exists); + } + + #[test] + fn tag_image() { + let tb = TagBase::make_temporary().unwrap(); + let id = tb + .import_image(Path::new("/fake/path"), "fakehash") + .unwrap(); + tb.add_tag("test").unwrap(); + tb.tag_image(id, "test").unwrap(); + let tags = tb.tags_for_image(id).unwrap(); + assert_eq!(tags.len(), 1); + assert!(tags.contains(&String::from("test"))); } } |