unwrap() can be replaced with ?

This commit is contained in:
gwenn 2024-10-27 14:08:37 +01:00
parent 9740ad8eb3
commit 4ec54f1a12
6 changed files with 37 additions and 42 deletions

View File

@ -208,21 +208,21 @@ mod test {
blob.seek(std::io::SeekFrom::Start(1)).unwrap(); blob.seek(std::io::SeekFrom::Start(1)).unwrap();
let one2ten: [u8; 10] = [1u8, 2, 3, 4, 5, 6, 7, 8, 9, 10]; let one2ten: [u8; 10] = [1u8, 2, 3, 4, 5, 6, 7, 8, 9, 10];
blob.write_at(&one2ten, 0).unwrap(); blob.write_at(&one2ten, 0)?;
let mut s = [0u8; 10]; let mut s = [0u8; 10];
blob.read_at_exact(&mut s, 0).unwrap(); blob.read_at_exact(&mut s, 0)?;
assert_eq!(&s, &one2ten, "write should go through"); assert_eq!(&s, &one2ten, "write should go through");
blob.read_at_exact(&mut s, 1).unwrap_err(); blob.read_at_exact(&mut s, 1).unwrap_err();
blob.read_at_exact(&mut s, 0).unwrap(); blob.read_at_exact(&mut s, 0)?;
assert_eq!(&s, &one2ten, "should be unchanged"); assert_eq!(&s, &one2ten, "should be unchanged");
let mut fives = [0u8; 5]; let mut fives = [0u8; 5];
blob.read_at_exact(&mut fives, 0).unwrap(); blob.read_at_exact(&mut fives, 0)?;
assert_eq!(&fives, &[1u8, 2, 3, 4, 5]); assert_eq!(&fives, &[1u8, 2, 3, 4, 5]);
blob.read_at_exact(&mut fives, 5).unwrap(); blob.read_at_exact(&mut fives, 5)?;
assert_eq!(&fives, &[6u8, 7, 8, 9, 10]); assert_eq!(&fives, &[6u8, 7, 8, 9, 10]);
blob.read_at_exact(&mut fives, 7).unwrap_err(); blob.read_at_exact(&mut fives, 7).unwrap_err();
blob.read_at_exact(&mut fives, 12).unwrap_err(); blob.read_at_exact(&mut fives, 12).unwrap_err();
@ -233,12 +233,12 @@ mod test {
.unwrap_err(); .unwrap_err();
// zero length writes are fine if in bounds // zero length writes are fine if in bounds
blob.read_at_exact(&mut [], 10).unwrap(); blob.read_at_exact(&mut [], 10)?;
blob.read_at_exact(&mut [], 0).unwrap(); blob.read_at_exact(&mut [], 0)?;
blob.read_at_exact(&mut [], 5).unwrap(); blob.read_at_exact(&mut [], 5)?;
blob.write_all_at(&[16, 17, 18, 19, 20], 5).unwrap(); blob.write_all_at(&[16, 17, 18, 19, 20], 5)?;
blob.read_at_exact(&mut s, 0).unwrap(); blob.read_at_exact(&mut s, 0)?;
assert_eq!(&s, &[1u8, 2, 3, 4, 5, 16, 17, 18, 19, 20]); assert_eq!(&s, &[1u8, 2, 3, 4, 5, 16, 17, 18, 19, 20]);
blob.write_at(&[100, 99, 98, 97, 96], 6).unwrap_err(); blob.write_at(&[100, 99, 98, 97, 96], 6).unwrap_err();
@ -247,19 +247,19 @@ mod test {
blob.write_at(&[100, 99, 98, 97, 96], i32::MAX as usize + 1) blob.write_at(&[100, 99, 98, 97, 96], i32::MAX as usize + 1)
.unwrap_err(); .unwrap_err();
blob.read_at_exact(&mut s, 0).unwrap(); blob.read_at_exact(&mut s, 0)?;
assert_eq!(&s, &[1u8, 2, 3, 4, 5, 16, 17, 18, 19, 20]); assert_eq!(&s, &[1u8, 2, 3, 4, 5, 16, 17, 18, 19, 20]);
let mut s2: [std::mem::MaybeUninit<u8>; 10] = [std::mem::MaybeUninit::uninit(); 10]; let mut s2: [std::mem::MaybeUninit<u8>; 10] = [std::mem::MaybeUninit::uninit(); 10];
{ {
let read = blob.raw_read_at_exact(&mut s2, 0).unwrap(); let read = blob.raw_read_at_exact(&mut s2, 0)?;
assert_eq!(read, &s); assert_eq!(read, &s);
assert!(std::ptr::eq(read.as_ptr(), s2.as_ptr().cast())); assert!(std::ptr::eq(read.as_ptr(), s2.as_ptr().cast()));
} }
let mut empty = []; let mut empty = [];
assert!(std::ptr::eq( assert!(std::ptr::eq(
blob.raw_read_at_exact(&mut empty, 0).unwrap().as_ptr(), blob.raw_read_at_exact(&mut empty, 0)?.as_ptr(),
empty.as_ptr().cast(), empty.as_ptr().cast(),
)); ));
blob.raw_read_at_exact(&mut s2, 5).unwrap_err(); blob.raw_read_at_exact(&mut s2, 5).unwrap_err();

View File

@ -869,8 +869,7 @@ mod test {
use super::{AuthAction, AuthContext, Authorization}; use super::{AuthAction, AuthContext, Authorization};
let db = Connection::open_in_memory()?; let db = Connection::open_in_memory()?;
db.execute_batch("CREATE TABLE foo (public TEXT, private TEXT)") db.execute_batch("CREATE TABLE foo (public TEXT, private TEXT)")?;
.unwrap();
let authorizer = move |ctx: AuthContext<'_>| match ctx.action { let authorizer = move |ctx: AuthContext<'_>| match ctx.action {
AuthAction::Read { AuthAction::Read {
@ -885,18 +884,16 @@ mod test {
db.authorizer(Some(authorizer)); db.authorizer(Some(authorizer));
db.execute_batch( db.execute_batch(
"BEGIN TRANSACTION; INSERT INTO foo VALUES ('pub txt', 'priv txt'); COMMIT;", "BEGIN TRANSACTION; INSERT INTO foo VALUES ('pub txt', 'priv txt'); COMMIT;",
) )?;
.unwrap();
db.query_row_and_then("SELECT * FROM foo", [], |row| -> Result<()> { db.query_row_and_then("SELECT * FROM foo", [], |row| -> Result<()> {
assert_eq!(row.get::<_, String>("public")?, "pub txt"); assert_eq!(row.get::<_, String>("public")?, "pub txt");
assert!(row.get::<_, Option<String>>("private")?.is_none()); assert!(row.get::<_, Option<String>>("private")?.is_none());
Ok(()) Ok(())
}) })?;
.unwrap();
db.execute_batch("DROP TABLE foo").unwrap_err(); db.execute_batch("DROP TABLE foo").unwrap_err();
db.authorizer(None::<fn(AuthContext<'_>) -> Authorization>); db.authorizer(None::<fn(AuthContext<'_>) -> Authorization>);
db.execute_batch("PRAGMA user_version=1").unwrap(); // Disallowed by first authorizer, but it's now removed. db.execute_batch("PRAGMA user_version=1")?; // Disallowed by first authorizer, but it's now removed.
Ok(()) Ok(())
} }

View File

@ -46,7 +46,7 @@
//! })?; //! })?;
//! //!
//! for person in person_iter { //! for person in person_iter {
//! println!("Found person {:?}", person.unwrap()); //! println!("Found person {:?}", person?);
//! } //! }
//! Ok(()) //! Ok(())
//! } //! }
@ -2272,11 +2272,11 @@ mod test {
#[cfg(feature = "modern_sqlite")] #[cfg(feature = "modern_sqlite")]
fn test_db_name() -> Result<()> { fn test_db_name() -> Result<()> {
let db = Connection::open_in_memory()?; let db = Connection::open_in_memory()?;
assert_eq!(db.db_name(0).unwrap(), "main"); assert_eq!(db.db_name(0)?, "main");
assert_eq!(db.db_name(1).unwrap(), "temp"); assert_eq!(db.db_name(1)?, "temp");
assert_eq!(db.db_name(2), Err(Error::InvalidDatabaseIndex(2))); assert_eq!(db.db_name(2), Err(Error::InvalidDatabaseIndex(2)));
db.execute_batch("ATTACH DATABASE ':memory:' AS xyz;")?; db.execute_batch("ATTACH DATABASE ':memory:' AS xyz;")?;
assert_eq!(db.db_name(2).unwrap(), "xyz"); assert_eq!(db.db_name(2)?, "xyz");
Ok(()) Ok(())
} }

View File

@ -1285,9 +1285,9 @@ mod test {
let conn = Connection::open_in_memory()?; let conn = Connection::open_in_memory()?;
let mut stmt = conn.prepare("")?; let mut stmt = conn.prepare("")?;
assert_eq!(0, stmt.column_count()); assert_eq!(0, stmt.column_count());
stmt.parameter_index("test").unwrap(); stmt.parameter_index("test")?;
stmt.step().unwrap_err(); stmt.step().unwrap_err();
stmt.reset().unwrap(); // SQLITE_OMIT_AUTORESET = false stmt.reset()?; // SQLITE_OMIT_AUTORESET = false
stmt.execute([]).unwrap_err(); stmt.execute([]).unwrap_err();
Ok(()) Ok(())
} }

View File

@ -285,13 +285,13 @@ mod test {
fn test_sqlite_functions() -> Result<()> { fn test_sqlite_functions() -> Result<()> {
let db = checked_memory_handle()?; let db = checked_memory_handle()?;
let result: Result<NaiveTime> = db.one_column("SELECT CURRENT_TIME"); let result: Result<NaiveTime> = db.one_column("SELECT CURRENT_TIME");
result.unwrap(); result?;
let result: Result<NaiveDate> = db.one_column("SELECT CURRENT_DATE"); let result: Result<NaiveDate> = db.one_column("SELECT CURRENT_DATE");
result.unwrap(); result?;
let result: Result<NaiveDateTime> = db.one_column("SELECT CURRENT_TIMESTAMP"); let result: Result<NaiveDateTime> = db.one_column("SELECT CURRENT_TIMESTAMP");
result.unwrap(); result?;
let result: Result<DateTime<Utc>> = db.one_column("SELECT CURRENT_TIMESTAMP"); let result: Result<DateTime<Utc>> = db.one_column("SELECT CURRENT_TIMESTAMP");
result.unwrap(); result?;
Ok(()) Ok(())
} }
@ -299,7 +299,7 @@ mod test {
fn test_naive_date_time_param() -> Result<()> { fn test_naive_date_time_param() -> Result<()> {
let db = checked_memory_handle()?; let db = checked_memory_handle()?;
let result: Result<bool> = db.query_row("SELECT 1 WHERE ?1 BETWEEN datetime('now', '-1 minute') AND datetime('now', '+1 minute')", [Utc::now().naive_utc()], |r| r.get(0)); let result: Result<bool> = db.query_row("SELECT 1 WHERE ?1 BETWEEN datetime('now', '-1 minute') AND datetime('now', '+1 minute')", [Utc::now().naive_utc()], |r| r.get(0));
result.unwrap(); result?;
Ok(()) Ok(())
} }
@ -307,7 +307,7 @@ mod test {
fn test_date_time_param() -> Result<()> { fn test_date_time_param() -> Result<()> {
let db = checked_memory_handle()?; let db = checked_memory_handle()?;
let result: Result<bool> = db.query_row("SELECT 1 WHERE ?1 BETWEEN datetime('now', '-1 minute') AND datetime('now', '+1 minute')", [Utc::now()], |r| r.get(0)); let result: Result<bool> = db.query_row("SELECT 1 WHERE ?1 BETWEEN datetime('now', '-1 minute') AND datetime('now', '+1 minute')", [Utc::now()], |r| r.get(0));
result.unwrap(); result?;
Ok(()) Ok(())
} }

View File

@ -362,12 +362,10 @@ mod test {
#[test] #[test]
fn test_sqlite_functions() -> Result<()> { fn test_sqlite_functions() -> Result<()> {
let db = checked_memory_handle()?; let db = checked_memory_handle()?;
db.one_column::<Time>("SELECT CURRENT_TIME").unwrap(); db.one_column::<Time>("SELECT CURRENT_TIME")?;
db.one_column::<Date>("SELECT CURRENT_DATE").unwrap(); db.one_column::<Date>("SELECT CURRENT_DATE")?;
db.one_column::<PrimitiveDateTime>("SELECT CURRENT_TIMESTAMP") db.one_column::<PrimitiveDateTime>("SELECT CURRENT_TIMESTAMP")?;
.unwrap(); db.one_column::<OffsetDateTime>("SELECT CURRENT_TIMESTAMP")?;
db.one_column::<OffsetDateTime>("SELECT CURRENT_TIMESTAMP")
.unwrap();
Ok(()) Ok(())
} }
@ -380,7 +378,7 @@ mod test {
[now], [now],
|r| r.get(0), |r| r.get(0),
); );
result.unwrap(); result?;
Ok(()) Ok(())
} }
@ -393,7 +391,7 @@ mod test {
[now], [now],
|r| r.get(0), |r| r.get(0),
); );
result.unwrap(); result?;
Ok(()) Ok(())
} }
@ -409,7 +407,7 @@ mod test {
[now], [now],
|r| r.get(0), |r| r.get(0),
); );
result.unwrap(); result?;
Ok(()) Ok(())
} }
@ -421,7 +419,7 @@ mod test {
[OffsetDateTime::now_utc()], [OffsetDateTime::now_utc()],
|r| r.get(0), |r| r.get(0),
); );
result.unwrap(); result?;
Ok(()) Ok(())
} }
} }