From 286f6f5c253d49ead5abbfc0b64eced4c8d5f8c7 Mon Sep 17 00:00:00 2001 From: Billy Sheppard Date: Wed, 15 Feb 2023 23:28:29 +0000 Subject: [PATCH 1/2] handled more unwraps --- src/browser/fetcher.rs | 4 ++-- src/browser/mod.rs | 9 ++++----- src/browser/process.rs | 6 +++--- src/browser/tab/mod.rs | 4 ++-- src/testing_utils/logging.rs | 2 +- src/testing_utils/server.rs | 12 ++++++------ src/types.rs | 8 ++++---- 7 files changed, 22 insertions(+), 23 deletions(-) diff --git a/src/browser/fetcher.rs b/src/browser/fetcher.rs index 5592bcae..7e5c40eb 100644 --- a/src/browser/fetcher.rs +++ b/src/browser/fetcher.rs @@ -264,7 +264,7 @@ impl Fetcher { ); if let Some(p) = out_path.parent() { if !p.exists() { - fs::create_dir_all(&p).unwrap(); + fs::create_dir_all(&p)?; } } let mut out_file = BufWriter::new(File::create(&out_path)?); @@ -276,7 +276,7 @@ impl Fetcher { use std::os::unix::fs::PermissionsExt; if let Some(mode) = file.unix_mode() { - fs::set_permissions(&out_path, fs::Permissions::from_mode(mode)).unwrap(); + fs::set_permissions(&out_path, fs::Permissions::from_mode(mode))?; } } } diff --git a/src/browser/mod.rs b/src/browser/mod.rs index 35889650..88c4cc82 100644 --- a/src/browser/mod.rs +++ b/src/browser/mod.rs @@ -4,7 +4,7 @@ use std::sync::Arc; use std::sync::Mutex; use std::time::Duration; -use anyhow::Result; +use anyhow::{anyhow, Result}; use log::{debug, error, info, trace}; use process::Process; @@ -105,10 +105,9 @@ impl Browser { /// binary can be found on the system. pub fn default() -> Result { let launch_options = LaunchOptions::default_builder() - .path(Some(default_executable().unwrap())) - .build() - .unwrap(); - Ok(Self::new(launch_options).unwrap()) + .path(Some(default_executable().map_err(|e| anyhow!(e))?)) + .build()?; + Self::new(launch_options) } /// Allows you to drive an externally-launched Chrome process instead of launch one via [`Browser::new`]. diff --git a/src/browser/process.rs b/src/browser/process.rs index 9bd74d4e..139f9081 100644 --- a/src/browser/process.rs +++ b/src/browser/process.rs @@ -388,9 +388,9 @@ impl Process { where R: Read, { - let port_taken_re = Regex::new(r"ERROR.*bind\(\)").unwrap(); + let port_taken_re = Regex::new(r"ERROR.*bind\(\)")?; - let re = Regex::new(r"listening on (.*/devtools/browser/.*)$").unwrap(); + let re = Regex::new(r"listening on (.*/devtools/browser/.*)$")?; let extract = |text: &str| -> Option { let caps = re.captures(text); @@ -416,7 +416,7 @@ impl Process { fn ws_url_from_output(child_process: &mut Child) -> Result { let chrome_output_result = util::Wait::with_timeout(Duration::from_secs(30)).until(|| { - let my_stderr = BufReader::new(child_process.stderr.as_mut().unwrap()); + let my_stderr = BufReader::new(child_process.stderr.as_mut()?); match Self::ws_url_from_reader(my_stderr) { Ok(output_option) => output_option.map(Ok), Err(err) => Some(Err(err)), diff --git a/src/browser/tab/mod.rs b/src/browser/tab/mod.rs index 8b4e39b6..7a29179e 100644 --- a/src/browser/tab/mod.rs +++ b/src/browser/tab/mod.rs @@ -676,7 +676,7 @@ impl Tab { /// assert_eq!(attrs["id"], "foobar"); /// # /// # Ok(()) - /// # } + /// # }z /// ``` pub fn find_element(&self, selector: &str) -> Result> { let root_node_id = self.get_document()?.node_id; @@ -1727,7 +1727,7 @@ impl Tab { Some(mut ua) => { ua = ua.replace("HeadlessChrome/", "Chrome/"); - let re = regex::Regex::new(r"\(([^)]+)\)").unwrap(); + let re = regex::Regex::new(r"\(([^)]+)\)")?; ua = re.replace(&ua, "(Windows NT 10.0; Win64; x64)").to_string(); self.set_user_agent(&ua, None, None)?; diff --git a/src/testing_utils/logging.rs b/src/testing_utils/logging.rs index 20e422cd..b21eb580 100644 --- a/src/testing_utils/logging.rs +++ b/src/testing_utils/logging.rs @@ -19,7 +19,7 @@ pub fn enable_logging() { let seconds_millis = date.format("%S%.3f").to_string(); let fmt_seconds = style.set_bold(true).value(seconds_millis); - let truncated_module_path = &record.module_path().unwrap()[5..]; + let truncated_module_path = &record.module_path()?[5..]; writeln!( buf, diff --git a/src/testing_utils/server.rs b/src/testing_utils/server.rs index cf642c69..0cd59dff 100644 --- a/src/testing_utils/server.rs +++ b/src/testing_utils/server.rs @@ -13,7 +13,7 @@ impl Server { pub fn new( mut responder: impl FnMut(tiny_http::Request) -> Result<(), io::Error> + Send + 'static, ) -> Self { - let server = Arc::new(tiny_http::Server::http("127.0.0.1:0").unwrap()); + let server = Arc::new(tiny_http::Server::http("127.0.0.1:0")?); let shall_exit = Arc::new(atomic::AtomicBool::new(false)); let srv = server.clone(); let exit = shall_exit.clone(); @@ -41,7 +41,7 @@ impl Server { let response = tiny_http::Response::new( 200.into(), vec![ - tiny_http::Header::from_bytes(&b"Content-Type"[..], &b"text/html"[..]).unwrap(), + tiny_http::Header::from_bytes(&b"Content-Type"[..], &b"text/html"[..])?, ], io::Cursor::new(data), Some(data.len()), @@ -58,13 +58,13 @@ impl Server { } pub fn port(&self) -> u16 { - self.server.server_addr().to_ip().unwrap().port() + self.server.server_addr().to_ip()?.port() } pub fn exit(&mut self) -> Result<(), io::Error> { self.shall_exit.store(true, atomic::Ordering::Relaxed); match self.handler.take() { - Some(h) => h.join().unwrap(), + Some(h) => h.join()?, None => Ok(()), } } @@ -72,7 +72,7 @@ impl Server { impl Drop for Server { fn drop(&mut self) { - self.exit().unwrap() + self.exit()? } } @@ -82,7 +82,7 @@ fn basic_http_response<'a>( ) -> tiny_http::Response<&'a [u8]> { tiny_http::Response::new( 200.into(), - vec![tiny_http::Header::from_bytes(&b"Content-Type"[..], content_type.as_bytes()).unwrap()], + vec![tiny_http::Header::from_bytes(&b"Content-Type"[..], content_type.as_bytes())?], body.as_bytes(), Some(body.len()), None, diff --git a/src/types.rs b/src/types.rs index 11d9c0c2..4b1bde3b 100644 --- a/src/types.rs +++ b/src/types.rs @@ -42,7 +42,7 @@ where return Err(error.into()); } - let result: T = serde_json::from_value(response.result.unwrap()).unwrap(); + let result: T = serde_json::from_value(response.result.unwrap())?; Ok(result) } @@ -300,7 +300,7 @@ mod tests { } }); - let _event: Message = serde_json::from_value(attached_to_target_json).unwrap(); + let _event: Message = serde_json::from_value(attached_to_target_json)?; } #[test] @@ -336,7 +336,7 @@ mod tests { "targetId": "26DEBCB2A45BEFC67A84012AC32C8B2A" } }); - let event: Event = serde_json::from_value(received_target_msg_event).unwrap(); + let event: Event = serde_json::from_value(received_target_msg_event)?; match event { Event::ReceivedMessageFromTarget(ev) => { trace!("{:?}", ev); @@ -361,7 +361,7 @@ mod tests { ]; for msg_string in &example_message_strings { - let _message: super::Message = parse_raw_message(msg_string).unwrap(); + let _message: super::Message = parse_raw_message(msg_string)?; } } } From b1e13899f631553eb4836e7b829788f7e6a0f5fd Mon Sep 17 00:00:00 2001 From: Billy Sheppard Date: Wed, 15 Feb 2023 23:31:03 +0000 Subject: [PATCH 2/2] unhandled more unwraps --- src/types.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/types.rs b/src/types.rs index 4b1bde3b..740dea4e 100644 --- a/src/types.rs +++ b/src/types.rs @@ -300,7 +300,7 @@ mod tests { } }); - let _event: Message = serde_json::from_value(attached_to_target_json)?; + let _event: Message = serde_json::from_value(attached_to_target_json).unwrap(); } #[test] @@ -361,7 +361,7 @@ mod tests { ]; for msg_string in &example_message_strings { - let _message: super::Message = parse_raw_message(msg_string)?; + let _message: super::Message = parse_raw_message(msg_string).unwrap(); } } }