From 93758e3ab2f86e2edf8d7f04b8786e74e2ec67d6 Mon Sep 17 00:00:00 2001 From: ThetaDev Date: Tue, 4 Jun 2024 04:19:09 +0200 Subject: [PATCH 1/4] fix: fix markdown styling --- resources/content.css | 149 +++++++++++++++++++++-------------------- src/app.rs | 2 +- src/viewer/markdown.rs | 11 ++- 3 files changed, 87 insertions(+), 75 deletions(-) diff --git a/resources/content.css b/resources/content.css index 53d7877..fdb494c 100644 --- a/resources/content.css +++ b/resources/content.css @@ -2,6 +2,7 @@ .viewer > pre { padding: 10px 20px; + font-size: 14px; } pre, code { @@ -9,7 +10,7 @@ pre, code { background-color: #1c1c1c; } -.markup { +.prose { margin: 20px 20px 0 20px; max-width: 800px; word-wrap: break-word; @@ -17,169 +18,170 @@ pre, code { font-size: 16px; line-height: 1.5 !important; } -.markup > :first-child { +.prose > :first-child { margin-top: 0 !important; } -.markup > :last-child { +.prose > :last-child { margin-bottom: 0 !important; } -.markup h1, -.markup h2, -.markup h3, -.markup h4, -.markup h5, -.markup h6 { +.prose h1, +.prose h2, +.prose h3, +.prose h4, +.prose h5, +.prose h6 { font-weight: 600; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; } -.markup h1 tt, -.markup h1 code, -.markup h2 tt, -.markup h2 code, -.markup h3 tt, -.markup h3 code, -.markup h4 tt, -.markup h4 code, -.markup h5 tt, -.markup h5 code, -.markup h6 tt, -.markup h6 code { +.prose h1 tt, +.prose h1 code, +.prose h2 tt, +.prose h2 code, +.prose h3 tt, +.prose h3 code, +.prose h4 tt, +.prose h4 code, +.prose h5 tt, +.prose h5 code, +.prose h6 tt, +.prose h6 code { font-size: inherit; } -.markup h1 { +.prose h1 { border-bottom: 1px solid var(--color-secondary); padding-bottom: 0.3em; font-size: 2em; } -.markup h2 { +.prose h2 { border-bottom: 1px solid var(--color-secondary); padding-bottom: 0.3em; font-size: 1.5em; } -.markup h3 { +.prose h3 { font-size: 1.25em; } -.markup h4 { +.prose h4 { font-size: 1em; } -.markup h5 { +.prose h5 { font-size: 0.875em; } -.markup h6 { +.prose h6 { color: var(--color-text-light); font-size: 0.85em; } -.markup p, -.markup blockquote, -.markup details, -.markup ul, -.markup ol, -.markup dl, -.markup table, -.markup pre { +.prose p, +.prose blockquote, +.prose details, +.prose ul, +.prose ol, +.prose dl, +.prose table, +.prose pre { margin-top: 0; margin-bottom: 16px; } -.markup hr { +.prose hr { background-color: var(--color-secondary); border: 0; height: 4px; margin: 16px 0; padding: 0; } -.markup ul, -.markup ol { +.prose ul, +.prose ol { padding-left: 2em; } -.markup ul ul, -.markup ul ol, -.markup ol ol, -.markup ol ul { +.prose ul ul, +.prose ul ol, +.prose ol ol, +.prose ol ul { margin-top: 0; margin-bottom: 0; } -.markup ol ol, -.markup ul ol { +.prose ol ol, +.prose ul ol { list-style-type: lower-roman; } -.markup li > p { +.prose li > p { margin-top: 16px; } -.markup li + li { +.prose li + li { margin-top: 0.25em; } -.markup dl { +.prose dl { padding: 0; } -.markup dl dt { +.prose dl dt { font-size: 1em; font-style: italic; font-weight: 600; margin-top: 16px; padding: 0; } -.markup dl dd { +.prose dl dd { margin-bottom: 16px; padding: 0 16px; } -.markup blockquote { +.prose blockquote { color: var(--color-text-light); border-left: 4px solid var(--color-secondary); margin-left: 0; padding: 0 15px; } -.markup blockquote > :first-child { +.prose blockquote > :first-child { margin-top: 0; } -.markup blockquote > :last-child { +.prose blockquote > :last-child { margin-bottom: 0; } -.markup table { +.prose table { width: max-content; max-width: 100%; display: block; overflow: auto; + border-collapse: collapse; } -.markup table th { +.prose table th { font-weight: 600; } -.markup table th, -.markup table td { +.prose table th, +.prose table td { border: 1px solid var(--color-secondary) !important; padding: 6px 13px !important; } -.markup table tr { +.prose table tr { border-top: 1px solid var(--color-secondary); } -.markup table tr:nth-child(2n) { +.prose table tr:nth-child(2n) { background-color: var(--color-secondary); } -.markup img, -.markup video { +.prose img, +.prose video { box-sizing: initial; max-width: 100%; } -.markup img[align="right"], -.markup video[align="right"] { +.prose img[align="right"], +.prose video[align="right"] { padding-left: 20px; } -.markup img[align="left"], -.markup video[align="left"] { +.prose img[align="left"], +.prose video[align="left"] { padding-right: 28px; } -.markup code { +.prose code { white-space: break-spaces; border-radius: 4px; margin: 0; padding: 0.2em 0.4em; font-size: 85%; } -.markup code br { +.prose code br { display: none; } -.markup pre { +.prose pre { border-radius: 4px; padding: 8px; line-height: 1.45; @@ -187,13 +189,16 @@ pre, code { word-break: normal; word-wrap: normal; } -.markup pre code:before, -.markup pre code:after { +.prose pre code { + padding: 0; +} +.prose pre code:before, +.prose pre code:after { content: normal; } -.markup .ui.list .list, -.markup ol.ui.list ol, -.markup ul.ui.list ul { +.prose .ui.list .list, +.prose ol.ui.list ol, +.prose ul.ui.list ul { padding-left: 2em; } diff --git a/src/app.rs b/src/app.rs index c1460b3..50036c2 100644 --- a/src/app.rs +++ b/src/app.rs @@ -72,7 +72,7 @@ pub(crate) const STYLE_CONTENT_PATH: &str = "/content1.css"; const FAVICON_BYTES: &[u8; 268] = include_bytes!("../resources/favicon.ico"); const STYLE_MAIN_BYTES: &[u8; 4057] = include_bytes!("../resources/style.css"); -const STYLE_CONTENT_BYTES: &[u8; 10063] = include_bytes!("../resources/content.css"); +const STYLE_CONTENT_BYTES: &[u8; 10079] = include_bytes!("../resources/content.css"); impl App { pub fn new() -> Self { diff --git a/src/viewer/markdown.rs b/src/viewer/markdown.rs index 624e79b..f1d158d 100644 --- a/src/viewer/markdown.rs +++ b/src/viewer/markdown.rs @@ -37,13 +37,20 @@ impl Viewer for MarkdownViewer { } fn try_render(&self, _filename: &str, _ext: &str, data: &str) -> Result { - let options = comrak::Options::default(); + let mut options = comrak::Options::default(); + options.extension.autolink = true; + options.extension.table = true; + options.extension.tasklist = true; + options.extension.strikethrough = true; + options.extension.multiline_block_quotes = true; + options.extension.superscript = true; + let mut plugins = comrak::Plugins::default(); plugins.render.codefence_syntax_highlighter = Some(&self.adapter); let html = comrak::markdown_to_html_with_plugins(data, &options, &plugins); - Ok(format!("
{html}
")) + Ok(format!("
{html}
")) } } From 8405af8fb339418dc0b17768e8ef3bc1f22d46f5 Mon Sep 17 00:00:00 2001 From: ThetaDev Date: Tue, 4 Jun 2024 04:35:32 +0200 Subject: [PATCH 2/4] fix: handling zip files containing dir entries --- README.md | 1 + src/cache.rs | 10 +++++++--- src/config.rs | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index bd9424a..e94622e 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,7 @@ Artifactview is configured using environment variables. | `REPO_BLACKLIST` | - | List of sites/users/repos that can NOT be accessed. The blacklist takes precedence over the whitelist (repos included in both lists cannot be accessed)
Example: `github.com/evil-corp/world-destruction;codeberg.org/blackhat;example.org` | | `REPO_WHITELIST` | - | List of sites/users/repos that can ONLY be accessed. If the whitelist is empty, it will be ignored and any repository can be accessed. Uses the same syntax as `REPO_BLACLIST`. | | `SITE_ALIASES` | - | Aliases for sites to make URLs shorter
Example: `gh => github.com;cb => codeberg.org` | +| `VIEWER_MAX_SIZE` | 500000 | Maximum file size to be displayed using the viewer | ## Technical details diff --git a/src/cache.rs b/src/cache.rs index 8e3bb9e..513361c 100644 --- a/src/cache.rs +++ b/src/cache.rs @@ -249,8 +249,12 @@ impl CacheEntry { .entries() .iter() .filter_map(|entry| { + let name = entry.filename().as_str().ok()?; + if name.ends_with('/') { + return None; + } Some(( - entry.filename().as_str().ok()?.to_owned(), + name.to_owned(), FileEntry { header_offset: entry.header_offset().try_into().ok()?, uncompressed_size: entry.uncompressed_size().try_into().ok()?, @@ -269,7 +273,7 @@ impl CacheEntry { } pub fn get_file(&self, path: &str, url_query: &str) -> Result { - let path = path.trim_start_matches('/'); + let path = path.trim_matches('/'); let mut index_path: Option> = None; if path.is_empty() { @@ -304,7 +308,7 @@ impl CacheEntry { } // Directory listing - let path_as_dir: Cow = if path.is_empty() || path.ends_with('/') { + let path_as_dir: Cow = if path.is_empty() { path.into() } else { format!("{path}/").into() diff --git a/src/config.rs b/src/config.rs index aca3733..c3a6256 100644 --- a/src/config.rs +++ b/src/config.rs @@ -90,7 +90,7 @@ impl Default for ConfigData { repo_blacklist: QueryFilterList::default(), repo_whitelist: QueryFilterList::default(), site_aliases: HashMap::new(), - viewer_max_size: Some(NonZeroU32::new(100_000).unwrap()), + viewer_max_size: Some(NonZeroU32::new(500_000).unwrap()), } } } From 06c09b2831d4ba9fe4095776b3c591cd64c095a9 Mon Sep 17 00:00:00 2001 From: ThetaDev Date: Tue, 4 Jun 2024 05:10:11 +0200 Subject: [PATCH 3/4] feat: add junit-parser crate --- Cargo.lock | 35 + Cargo.toml | 1 + crates/junit-parser/Cargo.toml | 36 + crates/junit-parser/src/errors.rs | 38 + crates/junit-parser/src/lib.rs | 811 ++++++++++++++ src/util.rs | 9 +- src/viewer/junit.rs | 43 + src/viewer/mod.rs | 4 +- tests/testfiles/junit/rerun.junit.xml | 1392 ++++++++++++++++++++++++ tests/testfiles/junit/simple.junit.xml | 1011 +++++++++++++++++ 10 files changed, 3378 insertions(+), 2 deletions(-) create mode 100644 crates/junit-parser/Cargo.toml create mode 100644 crates/junit-parser/src/errors.rs create mode 100644 crates/junit-parser/src/lib.rs create mode 100644 src/viewer/junit.rs create mode 100644 tests/testfiles/junit/rerun.junit.xml create mode 100644 tests/testfiles/junit/simple.junit.xml diff --git a/Cargo.lock b/Cargo.lock index ddb1bfd..780ade3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -156,6 +156,7 @@ dependencies = [ "hex", "http", "humansize", + "junit-parser", "mime", "mime_guess", "once_cell", @@ -683,6 +684,15 @@ dependencies = [ "subtle", ] +[[package]] +name = "document-features" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef5282ad69563b5fc40319526ba27e0e7363d552a896f0297d54f767717f9b95" +dependencies = [ + "litrs", +] + [[package]] name = "dotenvy" version = "0.15.7" @@ -1253,6 +1263,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "junit-parser" +version = "0.1.0" +dependencies = [ + "document-features", + "quick-xml", + "serde", + "thiserror", +] + [[package]] name = "lazy_static" version = "1.4.0" @@ -1277,6 +1297,12 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "litrs" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" + [[package]] name = "lock_api" version = "0.4.12" @@ -1705,6 +1731,15 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +[[package]] +name = "quick-xml" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" +dependencies = [ + "memchr", +] + [[package]] name = "quick_cache" version = "0.5.1" diff --git a/Cargo.toml b/Cargo.toml index e529eee..9eff7ec 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -39,6 +39,7 @@ headers = "0.4.0" hex = "0.4.3" http = "1.1.0" humansize = "2.1.3" +junit-parser = { path = "crates/junit-parser" } mime = "0.3.17" mime_guess = "2.0.4" once_cell = "1.19.0" diff --git a/crates/junit-parser/Cargo.toml b/crates/junit-parser/Cargo.toml new file mode 100644 index 0000000..6be9a6a --- /dev/null +++ b/crates/junit-parser/Cargo.toml @@ -0,0 +1,36 @@ +[package] +name = "junit-parser" +version = "0.1.0" +edition = "2021" +authors = ["Boris Faure "] +license = "BSD-2-Clause" +keywords = ["junit", "xunit", "xml", "parser", "report"] +categories = ["development-tools::testing", "parser-implementations"] +readme = "README.md" +description = "Rust library to parse JUnit XML files" +repository = "https://github.com/borisfaure/junit-parser" +documentation = "https://docs.rs/junit-parser/" +rust-version = "1.56" + +[features] +default = ["properties_as_hashmap"] +## Enables `derive(serde::{Serialize,Deserialize})` on the Test* structures. +serde = ["dep:serde"] +## Parse the `properties` element as a hashmap +properties_as_hashmap = [] +## Parse the `properties` element as a vector +properties_as_vector = [] +document-features = ["dep:document-features"] + +# docs.rs-specific configuration +[package.metadata.docs.rs] +# document all features +all-features = true +# defines the configuration attribute `docsrs` +rustdoc-args = ["--cfg", "docsrs"] + +[dependencies] +quick-xml = { version = "0.31", features = ["escape-html"] } +thiserror = "1.0.61" +serde = { version = "1.0", features = ["derive"], optional = true } +document-features = { version = "0.2", optional = true } diff --git a/crates/junit-parser/src/errors.rs b/crates/junit-parser/src/errors.rs new file mode 100644 index 0000000..4a603a6 --- /dev/null +++ b/crates/junit-parser/src/errors.rs @@ -0,0 +1,38 @@ +#![warn(missing_docs)] +use thiserror::Error; + +/// Error enumerates all possible errors returned by this library. +#[derive(Error, Debug)] +pub enum Error { + /// Error while parsing XML + #[error("Error while parsing XML")] + XMLError(#[from] ::quick_xml::Error), + /// Error while converting f64 attribute + #[error("Error while converting f64 attribute")] + ParseFloatError(#[from] std::num::ParseFloatError), + /// Error while converting u64 attribute + #[error("Error while converting u64 attribute")] + ParseIntError(#[from] std::num::ParseIntError), + /// Error while converting bytes to Utf8 + #[error("Error while converting bytes to Utf8")] + ParseUt8Error(#[from] std::str::Utf8Error), + /// Error parsing the `property` element: missing `name` + #[error("Missing `name` attribute in property")] + MissingPropertyName, +} + +impl From<::quick_xml::events::attributes::AttrError> for Error { + #[inline] + /// Convert [`::quick_xml::events::attributes`] into [`Error::XMLError`] + fn from(err: ::quick_xml::events::attributes::AttrError) -> Error { + Error::XMLError(err.into()) + } +} + +impl From<::quick_xml::escape::EscapeError> for Error { + #[inline] + /// Convert [`::quick_xml::escape::EscapeError`] into [`Error::XMLError`] + fn from(err: ::quick_xml::escape::EscapeError) -> Error { + Error::XMLError(err.into()) + } +} diff --git a/crates/junit-parser/src/lib.rs b/crates/junit-parser/src/lib.rs new file mode 100644 index 0000000..6d87276 --- /dev/null +++ b/crates/junit-parser/src/lib.rs @@ -0,0 +1,811 @@ +//! Library to parse JUnit XML files +//! +//! # Example +//! +//! Parsing a JUnit content +//! +//! ``` +//! use std::io::Cursor; +//! let xml = r#" +//! +//! +//! +//! +//! details about failure +//! +//! +//! "#; +//! let cursor = Cursor::new(xml); +//! let r = junit_parser::from_reader(cursor); +//! assert!(r.is_ok()); +//! let t = r.unwrap(); +//! assert_eq!(t.suites.len(), 1); +//! let ts = &t.suites[0]; +//! assert_eq!(ts.tests, 3); +//! assert_eq!(ts.failures, 1); +//! assert_eq!(ts.cases.len(), 3); +//! assert!(ts.cases[0].status.is_success()); +//! assert!(ts.cases[2].status.is_failure()); +//! ``` +//! +//! # Features +#![cfg_attr( + feature = "document-features", + cfg_attr(doc, doc = ::document_features::document_features!()) +)] +#![forbid(unsafe_code)] +#![deny(missing_docs)] +// Enable feature requirements in the docs from 1.57 +// See https://stackoverflow.com/questions/61417452 +#![cfg_attr(docs_rs, feature(doc_auto_cfg))] + +/// Errors +mod errors; + +pub use errors::Error; +use quick_xml::escape::unescape; +use quick_xml::events::BytesStart as XMLBytesStart; +use quick_xml::events::Event as XMLEvent; +use quick_xml::name::QName; +use quick_xml::Error as XMLError; +use quick_xml::Reader as XMLReader; +use std::borrow::Cow; +#[cfg(feature = "properties_as_hashmap")] +use std::collections::HashMap; +use std::io::prelude::*; +use std::str; +use std::vec::Vec; + +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[derive(Debug, Clone, Default)] +/// Properties associated to a [`TestSuite`] or a [`TestCase`] +pub struct Properties { + /// Hashmap of the properties + #[cfg(feature = "properties_as_hashmap")] + pub hashmap: HashMap, + /// Vector of the properties + #[cfg(feature = "properties_as_vector")] + pub vec: Vec<(String, String)>, +} + +/// Parse attributes of a `property` element +fn parse_property( + e: &XMLBytesStart, + r: Option<&mut XMLReader>, +) -> Result<(String, String), Error> { + let mut k: Option = None; + let mut v: Option = None; + for a in e.attributes() { + let a = a?; + match a.key { + QName(b"name") => k = Some(try_from_attribute_value_string(a.value)?), + QName(b"value") => v = Some(try_from_attribute_value_string(a.value)?), + _ => {} + }; + } + if let Some(r) = r { + let mut buf = Vec::new(); + loop { + match r.read_event_into(&mut buf) { + Ok(XMLEvent::End(ref e)) if e.name() == QName(b"property") => break, + Ok(XMLEvent::Eof) => { + return Err(XMLError::UnexpectedEof("property".to_string()).into()) + } + Ok(XMLEvent::Text(e)) => { + v = Some(e.unescape()?.trim().to_string()); + } + Err(err) => return Err(err.into()), + _ => (), + } + } + buf.clear(); + } + match (k, v) { + (Some(k), Some(v)) => Ok((k, v)), + (Some(k), None) => Ok((k, "".to_string())), + _ => Err(Error::MissingPropertyName), + } +} + +impl Properties { + /// Create a [`Properties`] from a XML `properties` element + fn from_reader(r: &mut XMLReader) -> Result { + let mut p = Self::default(); + let mut buf = Vec::new(); + loop { + match r.read_event_into(&mut buf) { + Ok(XMLEvent::End(ref e)) if e.name() == QName(b"properties") => break, + + Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"property") => { + let (k, v) = parse_property::(e, None)?; + p.add_property(k, v); + } + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"property") => { + let (k, v) = parse_property(e, Some(r))?; + p.add_property(k, v); + } + Ok(XMLEvent::Eof) => { + return Err(XMLError::UnexpectedEof("properties".to_string()).into()) + } + Err(err) => return Err(err.into()), + _ => (), + } + } + buf.clear(); + Ok(p) + } + + // `key` and `value` if no feature to store them + #[cfg_attr( + all( + not(feature = "properties_as_hashmap"), + not(feature = "properties_as_vector") + ), + allow(unused_variables) + )] + /// Add a property to the set of properties + fn add_property(&mut self, key: String, value: String) { + #[cfg(feature = "properties_as_hashmap")] + self.hashmap.insert(key.clone(), value.clone()); + #[cfg(feature = "properties_as_vector")] + self.vec.push((key, value)); + } +} + +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[derive(Debug, Clone, Default)] +/// Value from a `` tag +pub struct TestFailure { + /// The `message` attribute + pub message: String, + /// Body of the `` tag + pub text: String, + /// The `type` attribute + pub failure_type: String, +} +impl TestFailure { + /// Fill up `self` with attributes from the XML tag + fn parse_attributes(&mut self, e: &XMLBytesStart) -> Result<(), Error> { + for a in e.attributes() { + let a = a?; + match a.key { + QName(b"type") => self.failure_type = try_from_attribute_value_string(a.value)?, + QName(b"message") => self.message = try_from_attribute_value_string(a.value)?, + _ => {} + }; + } + Ok(()) + } + + /// New [`TestFailure`] from empty XML tag + fn new_empty(e: &XMLBytesStart) -> Result { + let mut tf = Self::default(); + tf.parse_attributes(e)?; + Ok(tf) + } + + /// New [`TestFailure`] from XML tree + fn from_reader(e: &XMLBytesStart, r: &mut XMLReader) -> Result { + let mut tf = Self::default(); + tf.parse_attributes(e)?; + let mut buf = Vec::new(); + loop { + match r.read_event_into(&mut buf) { + Ok(XMLEvent::End(ref e)) if e.name() == QName(b"failure") => break, + Ok(XMLEvent::Text(e)) => { + tf.text = e.unescape()?.trim().to_string(); + } + Ok(XMLEvent::Eof) => { + return Err(XMLError::UnexpectedEof("failure".to_string()).into()) + } + Err(err) => return Err(err.into()), + _ => (), + } + } + buf.clear(); + Ok(tf) + } +} + +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[derive(Debug, Clone, Default)] +/// Value from an `` tag +pub struct TestError { + /// The `message` attribute + pub message: String, + /// Body of the `` tag + pub text: String, + /// The `type` attribute + pub error_type: String, +} +impl TestError { + /// Fill up `self` with attributes from the XML tag + fn parse_attributes(&mut self, e: &XMLBytesStart) -> Result<(), Error> { + for a in e.attributes() { + let a = a?; + match a.key { + QName(b"type") => self.error_type = try_from_attribute_value_string(a.value)?, + QName(b"message") => self.message = try_from_attribute_value_string(a.value)?, + _ => {} + }; + } + Ok(()) + } + + /// New [`TestError`] from empty XML tag + fn new_empty(e: &XMLBytesStart) -> Result { + let mut te = Self::default(); + te.parse_attributes(e)?; + Ok(te) + } + + /// New [`TestError`] from XML tree + fn from_reader(e: &XMLBytesStart, r: &mut XMLReader) -> Result { + let mut te = Self::default(); + te.parse_attributes(e)?; + let mut buf = Vec::new(); + loop { + match r.read_event_into(&mut buf) { + Ok(XMLEvent::End(ref e)) if e.name() == QName(b"error") => break, + Ok(XMLEvent::Text(e)) => { + te.text = e.unescape()?.trim().to_string(); + } + Ok(XMLEvent::Eof) => { + return Err(XMLError::UnexpectedEof("error".to_string()).into()) + } + Err(err) => return Err(err.into()), + _ => (), + } + } + buf.clear(); + Ok(te) + } +} + +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[derive(Debug, Clone, Default)] +/// Value from a `` tag +pub struct TestSkipped { + /// The `message` attribute + pub message: String, + /// Body of the `` tag + pub text: String, + /// The `type` attribute + pub skipped_type: String, +} +impl TestSkipped { + /// Fill up `self` with attributes from the XML tag + fn parse_attributes(&mut self, e: &XMLBytesStart) -> Result<(), Error> { + for a in e.attributes() { + let a = a?; + match a.key { + QName(b"type") => self.skipped_type = try_from_attribute_value_string(a.value)?, + QName(b"message") => self.message = try_from_attribute_value_string(a.value)?, + _ => {} + }; + } + Ok(()) + } + + /// New [`TestSkipped`] from empty XML tag + fn new_empty(e: &XMLBytesStart) -> Result { + let mut ts = Self::default(); + ts.parse_attributes(e)?; + Ok(ts) + } + + /// New [`TestSkipped`] from XML tree + fn from_reader(e: &XMLBytesStart, r: &mut XMLReader) -> Result { + let mut ts = Self::default(); + ts.parse_attributes(e)?; + let mut buf = Vec::new(); + loop { + match r.read_event_into(&mut buf) { + Ok(XMLEvent::End(ref e)) if e.name() == QName(b"skipped") => break, + Ok(XMLEvent::Text(e)) => { + ts.text = e.unescape()?.trim().to_string(); + } + Ok(XMLEvent::Eof) => { + return Err(XMLError::UnexpectedEof("skipped".to_string()).into()) + } + Err(err) => return Err(err.into()), + _ => (), + } + } + buf.clear(); + Ok(ts) + } +} + +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[derive(Debug, Clone, Default)] +/// Status of a test case +pub enum TestStatus { + /// Success + #[default] + Success, + /// Test case has a `` tag + Error(TestError), + /// Test case has a `` tag + Failure(TestFailure), + /// Test case has a `` tag + Skipped(TestSkipped), +} +impl TestStatus { + /// Returns `true` if the `TestStatus` is [`Success`](#variant.Success). + pub fn is_success(&self) -> bool { + matches!(self, TestStatus::Success) + } + /// Returns `true` if the `TestStatus` is [`Error(_)`](#variant.Error). + pub fn is_error(&self) -> bool { + matches!(self, TestStatus::Error(_)) + } + /// Returns the contained [`Error(_)`](#variant.Error) value as a reference + /// + /// # Panics + /// + /// Panics if the value is not an [`Errror(_)`](#variant.Error) + pub fn error_as_ref(&self) -> &TestError { + if let TestStatus::Error(ref e) = self { + return e; + } + panic!("called `TestStatus::error()` on a value that is not TestStatus::Error(_)"); + } + + /// Returns `true` if the `TestStatus` is [`Failure(_)`](#variant.Failure). + pub fn is_failure(&self) -> bool { + matches!(self, TestStatus::Failure(_)) + } + + /// Returns the contained [`Failure(_)`](#variant.Failure) value as a reference + /// + /// # Panics + /// + /// Panics if the value is not a [`Failure(_)`](#variant.Failure) + pub fn failure_as_ref(&self) -> &TestFailure { + if let TestStatus::Failure(ref e) = self { + return e; + } + panic!("called `TestStatus::failure()` on a value that is not TestStatus::Failure(_)"); + } + + /// Returns `true` if the `TestStatus` is [`Skipped(_)`](#variant.Skipped). + pub fn is_skipped(&self) -> bool { + matches!(self, TestStatus::Skipped(_)) + } + + /// Returns the contained [`Skipped(_)`](#variant.Skipped) value as a reference + /// + /// # Panics + /// + /// Panics if the value is not a [`Skipped(_)`](#variant.Skipped) + pub fn skipped_as_ref(&self) -> &TestSkipped { + if let TestStatus::Skipped(ref e) = self { + return e; + } + panic!("called `TestStatus::skipped()` on a value that is not TestStatus::Skipped(_)"); + } +} + +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[derive(Debug, Clone, Default)] +/// A test case +pub struct TestCase { + /// How long the test case took to run, from the `time` attribute + pub time: f64, + /// Name of the test case, from the `name` attribute + /// If there is a `classname` attribute, store it as `classname::name` + /// Otherwise if there is a `group` attribute, store it as `group::name` + /// See [`TestCase::original_name`] for the original name + pub name: String, + /// Status of the test case + pub status: TestStatus, + /// Original name, from the `name` attribute + pub original_name: String, + /// Class name, from the `classname` attribute + pub classname: Option, + /// Group name, from the `group` attribute + pub group: Option, + /// File source code of the test + pub file: Option, + /// Related line in the source code + pub line: Option, + /// stdout output from the `system-out` element + pub system_out: Option, + /// stderr output from the `system-err` element + pub system_err: Option, + /// Properties of the test case + pub properties: Properties, +} +impl TestCase { + /// Fill up `self` with attributes from the XML tag + fn parse_attributes(&mut self, e: &XMLBytesStart) -> Result<(), Error> { + for a in e.attributes() { + let a = a?; + match a.key { + QName(b"time") => self.time = try_from_attribute_value_f64(a.value)?, + QName(b"name") => self.original_name = try_from_attribute_value_string(a.value)?, + QName(b"classname") => { + self.classname = Some(try_from_attribute_value_string(a.value)?) + } + QName(b"group") => self.group = Some(try_from_attribute_value_string(a.value)?), + QName(b"file") => self.file = Some(try_from_attribute_value_string(a.value)?), + QName(b"line") => self.line = Some(try_from_attribute_value_u64(a.value)?), + _ => {} + }; + } + if let Some(cn) = self.classname.as_ref() { + self.name = format!("{}::{}", cn, self.original_name); + } else if let Some(gn) = self.group.as_ref() { + self.name = format!("{}::{}", gn, self.original_name); + } else { + self.name.clone_from(&self.original_name); + } + Ok(()) + } + + /// New [`TestCase`] from empty XML tag + fn new_empty(e: &XMLBytesStart) -> Result { + let mut tc = Self::default(); + tc.parse_attributes(e)?; + Ok(tc) + } + + /// New [`TestCase`] from XML tree + fn from_reader(e: &XMLBytesStart, r: &mut XMLReader) -> Result { + let mut tc = Self::default(); + tc.parse_attributes(e)?; + let mut buf = Vec::new(); + loop { + match r.read_event_into(&mut buf) { + Ok(XMLEvent::End(ref e)) if e.name() == QName(b"testcase") => break, + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"skipped") => { + let ts = TestSkipped::from_reader(e, r)?; + tc.status = TestStatus::Skipped(ts); + } + Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"skipped") => { + let ts = TestSkipped::new_empty(e)?; + tc.status = TestStatus::Skipped(ts); + } + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"failure") => { + let tf = TestFailure::from_reader(e, r)?; + tc.status = TestStatus::Failure(tf); + } + Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"failure") => { + let tf = TestFailure::new_empty(e)?; + tc.status = TestStatus::Failure(tf); + } + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"error") => { + let te = TestError::from_reader(e, r)?; + tc.status = TestStatus::Error(te); + } + Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"error") => { + let te = TestError::new_empty(e)?; + tc.status = TestStatus::Error(te); + } + Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"system-out") => {} + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"system-out") => { + tc.system_out = parse_system(e, r)?; + } + Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"system-err") => {} + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"system-err") => { + tc.system_err = parse_system(e, r)?; + } + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"properties") => { + tc.properties = Properties::from_reader(r)?; + } + Ok(XMLEvent::Eof) => { + return Err(XMLError::UnexpectedEof("testcase".to_string()).into()) + } + Err(err) => return Err(err.into()), + _ => (), + } + } + buf.clear(); + Ok(tc) + } +} + +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[derive(Debug, Clone, Default)] +/// A test suite, containing test cases [`TestCase`](struct.TestCase.html) +pub struct TestSuite { + /// List of status of tests represented by [`TestCase`] + pub cases: Vec, + /// List of tests suites represented by [`TestSuite`] + pub suites: Vec, + /// How long the test suite took to run, from the `time` attribute + pub time: f64, + /// Number of tests in the test suite, from the `tests` attribute + pub tests: u64, + /// Number of tests in error in the test suite, from the `errors` attribute + pub errors: u64, + /// Number of tests in failure in the test suite, from the `failures` attribute + pub failures: u64, + /// Number of tests skipped in the test suites, from the `skipped` attribute + pub skipped: u64, + /// Number of assertions in the test suites, from the `assertions` attribute + pub assertions: Option, + /// Name of the test suite, from the `name` attribute + pub name: String, + /// Timestamp when the test suite was run, from the `timestamp` attribute + pub timestamp: Option, + /// Hostname where the test suite was run, from the `hostname` attribute + pub hostname: Option, + /// Identifier of the test suite, from the `id` attribute + pub id: Option, + /// Package of the test suite, from the `package` attribute + pub package: Option, + /// Source code file of the test suite, from the `file` attribute + pub file: Option, + /// Logger of the test suite, from the `log` attribute + pub log: Option, + /// URL of the test suite, from the `uri` attribute + pub url: Option, + /// Version of the test suite, from the `version` attribute + pub version: Option, + /// stdout output from the `system-out` element + pub system_out: Option, + /// stderr output from the `system-err` element + pub system_err: Option, + /// Properties of the test suite + pub properties: Properties, +} +impl TestSuite { + /// Fill up `self` with attributes from the XML tag + fn parse_attributes(&mut self, e: &XMLBytesStart) -> Result<(), Error> { + for a in e.attributes() { + let a = a?; + match a.key { + QName(b"time") => self.time = try_from_attribute_value_f64(a.value)?, + QName(b"tests") => self.tests = try_from_attribute_value_u64(a.value)?, + QName(b"errors") => self.errors = try_from_attribute_value_u64(a.value)?, + QName(b"failures") => self.failures = try_from_attribute_value_u64(a.value)?, + QName(b"skipped") => self.skipped = try_from_attribute_value_u64(a.value)?, + QName(b"assertions") => { + self.assertions = Some(try_from_attribute_value_u64(a.value)?) + } + QName(b"name") => self.name = try_from_attribute_value_string(a.value)?, + QName(b"timestamp") => { + self.timestamp = Some(try_from_attribute_value_string(a.value)?) + } + QName(b"hostname") => { + self.hostname = Some(try_from_attribute_value_string(a.value)?) + } + QName(b"id") => self.id = Some(try_from_attribute_value_string(a.value)?), + QName(b"package") => self.package = Some(try_from_attribute_value_string(a.value)?), + QName(b"file") => self.file = Some(try_from_attribute_value_string(a.value)?), + QName(b"log") => self.log = Some(try_from_attribute_value_string(a.value)?), + QName(b"url") => self.url = Some(try_from_attribute_value_string(a.value)?), + QName(b"version") => self.version = Some(try_from_attribute_value_string(a.value)?), + _ => {} + }; + } + Ok(()) + } + + /// New [`TestSuite`] from empty XML tag + fn new_empty(e: &XMLBytesStart) -> Result { + let mut ts = Self::default(); + ts.parse_attributes(e)?; + Ok(ts) + } + + /// New [`TestSuite`] from XML tree + fn from_reader(e: &XMLBytesStart, r: &mut XMLReader) -> Result { + let mut ts = Self::default(); + ts.parse_attributes(e)?; + let mut buf = Vec::new(); + loop { + match r.read_event_into(&mut buf) { + Ok(XMLEvent::End(ref e)) if e.name() == QName(b"testsuite") => break, + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"testsuite") => { + ts.suites.push(TestSuite::from_reader(e, r)?); + } + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"testcase") => { + ts.cases.push(TestCase::from_reader(e, r)?); + } + Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"testcase") => { + ts.cases.push(TestCase::new_empty(e)?); + } + Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"system-out") => {} + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"system-out") => { + ts.system_out = parse_system(e, r)?; + } + Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"system-err") => {} + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"system-err") => { + ts.system_err = parse_system(e, r)?; + } + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"properties") => { + ts.properties = Properties::from_reader(r)?; + } + Ok(XMLEvent::Eof) => { + return Err(XMLError::UnexpectedEof("testsuite".to_string()).into()) + } + Err(err) => return Err(err.into()), + _ => (), + } + } + buf.clear(); + Ok(ts) + } +} + +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[derive(Debug, Clone, Default)] +/// Struct representing a JUnit report, containing test suites [`TestSuite`](struct.TestSuite.html) +pub struct TestSuites { + /// List of tests suites represented by [`TestSuite`] + pub suites: Vec, + /// How long the test suites took to run, from the `time` attribute + pub time: f64, + /// Number of tests in the test suites, from the `tests` attribute + pub tests: u64, + /// Number of tests in error in the test suites, from the `errors` attribute + pub errors: u64, + /// Number of tests in failure in the test suites, from the `failures` attribute + pub failures: u64, + /// Number of tests skipped in the test suites, from the `skipped` attribute + pub skipped: u64, + /// Name of the test suites, from the `name` attribute + pub name: String, +} +impl TestSuites { + /// Fill up `self` with attributes from the XML tag + fn parse_attributes(&mut self, e: &XMLBytesStart) -> Result<(), Error> { + for a in e.attributes() { + let a = a?; + match a.key { + QName(b"time") => self.time = try_from_attribute_value_f64(a.value)?, + QName(b"tests") => self.tests = try_from_attribute_value_u64(a.value)?, + QName(b"errors") => self.errors = try_from_attribute_value_u64(a.value)?, + QName(b"failures") => self.failures = try_from_attribute_value_u64(a.value)?, + QName(b"skipped") => self.skipped = try_from_attribute_value_u64(a.value)?, + QName(b"name") => self.name = try_from_attribute_value_string(a.value)?, + _ => {} + }; + } + Ok(()) + } + + /// New [`TestSuites`] from empty XML tag + fn new_empty(e: &XMLBytesStart) -> Result { + let mut ts = Self::default(); + ts.parse_attributes(e)?; + Ok(ts) + } + + /// New [`TestSuites`] from XML tree + fn from_reader(e: &XMLBytesStart, r: &mut XMLReader) -> Result { + let mut ts = Self::default(); + ts.parse_attributes(e)?; + let mut buf = Vec::new(); + loop { + match r.read_event_into(&mut buf) { + Ok(XMLEvent::End(ref e)) if e.name() == QName(b"testsuites") => break, + Ok(XMLEvent::End(ref e)) if e.name() == QName(b"testrun") => break, + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"testsuite") => { + ts.suites.push(TestSuite::from_reader(e, r)?); + } + Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"testsuite") => { + ts.suites.push(TestSuite::new_empty(e)?); + } + Ok(XMLEvent::Eof) => { + return Err(XMLError::UnexpectedEof("testsuites".to_string()).into()) + } + Err(err) => return Err(err.into()), + _ => (), + } + } + buf.clear(); + Ok(ts) + } +} + +/// Try to decode attribute value as [`f64`] +fn try_from_attribute_value_f64(value: Cow<[u8]>) -> Result { + match str::from_utf8(&value)? { + "" => Ok(f64::default()), + s => Ok(s.parse::()?), + } +} + +/// Try to decode attribute value as [`u64`] +fn try_from_attribute_value_u64(value: Cow<[u8]>) -> Result { + match str::from_utf8(&value)? { + "" => Ok(u64::default()), + s => Ok(s.parse::()?), + } +} + +/// Try to decode and unescape attribute value as [`String`] +fn try_from_attribute_value_string(value: Cow<[u8]>) -> Result { + let s = str::from_utf8(&value)?; + let u = unescape(s)?; + Ok(u.to_string()) +} + +/// Parse a chunk of xml as system-out or system-err +fn parse_system( + orig: &XMLBytesStart, + r: &mut XMLReader, +) -> Result, Error> { + let mut buf = Vec::new(); + let mut res = None; + loop { + match r.read_event_into(&mut buf) { + Ok(XMLEvent::End(ref e)) if e.name() == orig.name() => break, + Ok(XMLEvent::Text(e)) => { + res = Some(e.unescape()?.to_string()); + } + Ok(XMLEvent::Eof) => { + return Err(XMLError::UnexpectedEof(format!("{:?}", orig.name())).into()); + } + Err(err) => return Err(err.into()), + _ => (), + } + } + buf.clear(); + Ok(res) +} + +/// Creates a [`TestSuites`](struct.TestSuites.html) structure from a JUnit XML data read from `reader` +/// +/// # Example +/// ``` +/// use std::io::Cursor; +/// let xml = r#" +/// +/// +/// +/// +/// details about failure +/// +/// +/// "#; +/// let cursor = Cursor::new(xml); +/// let r = junit_parser::from_reader(cursor); +/// assert!(r.is_ok()); +/// ``` +pub fn from_reader(reader: B) -> Result { + let mut r = XMLReader::from_reader(reader); + let mut buf = Vec::new(); + loop { + match r.read_event_into(&mut buf) { + Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"testsuites") => { + return TestSuites::new_empty(e); + } + Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"testrun") => { + return TestSuites::new_empty(e); + } + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"testsuites") => { + return TestSuites::from_reader(e, &mut r); + } + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"testrun") => { + return TestSuites::from_reader(e, &mut r); + } + Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"testsuite") => { + let ts = TestSuite::new_empty(e)?; + let mut suites = TestSuites::default(); + suites.suites.push(ts); + return Ok(suites); + } + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"testsuite") => { + let ts = TestSuite::from_reader(e, &mut r)?; + let mut suites = TestSuites::default(); + suites.suites.push(ts); + return Ok(suites); + } + Ok(XMLEvent::Eof) => { + return Err(XMLError::UnexpectedEof("testsuites".to_string()).into()) + } + Err(err) => return Err(err.into()), + _ => (), + } + } +} + +/// Creates a [`TestSuites`](struct.TestSuites.html) structure from a JUnit XML data read from a string +pub fn from_str(s: &str) -> Result { + from_reader(s.as_bytes()) +} diff --git a/src/util.rs b/src/util.rs index 2a0d3f7..bc74080 100644 --- a/src/util.rs +++ b/src/util.rs @@ -269,10 +269,17 @@ impl IntoResponse for ErrorJson { } #[cfg(test)] -mod tests { +pub(crate) mod tests { + use std::path::PathBuf; + use http::{header, HeaderMap}; + use once_cell::sync::Lazy; + use path_macro::path; use rstest::rstest; + pub static TESTFILES: Lazy = + Lazy::new(|| path!(env!("CARGO_MANIFEST_DIR") / "tests" / "testfiles")); + #[rstest] #[case("", false)] #[case("br", false)] diff --git a/src/viewer/junit.rs b/src/viewer/junit.rs new file mode 100644 index 0000000..767fa76 --- /dev/null +++ b/src/viewer/junit.rs @@ -0,0 +1,43 @@ +use crate::error::Error; + +use super::Viewer; + +/// JUnit format documentation: https://llg.cubic.org/docs/junit/ +pub struct JunitViewer; + +impl Viewer for JunitViewer { + fn id(&self) -> &'static str { + "junit" + } + + fn name(&self) -> &'static str { + "JUnit" + } + + fn is_applicable(&self, filename: &str, ext: &str) -> bool { + ext == "xml" && filename.contains("junit") + } + + fn try_render(&self, _filename: &str, _ext: &str, data: &str) -> Result { + let suites = junit_parser::from_str(data).unwrap(); + dbg!(&suites); + Ok(String::new()) + } +} + +#[cfg(test)] +mod tests { + use path_macro::path; + + use crate::{util::tests::TESTFILES, viewer::Viewer}; + + use super::JunitViewer; + + #[test] + fn t1() { + let data = + std::fs::read_to_string(path!(*TESTFILES / "junit" / "simple.junit.xml")).unwrap(); + let html = JunitViewer.try_render("", "", &data).unwrap(); + println!("{html}"); + } +} diff --git a/src/viewer/mod.rs b/src/viewer/mod.rs index 18a53a7..f8d10f6 100644 --- a/src/viewer/mod.rs +++ b/src/viewer/mod.rs @@ -5,6 +5,7 @@ use syntect::parsing::SyntaxSet; use crate::{error::Error, templates::ViewerLink}; mod code; +mod junit; mod markdown; pub trait Viewer: Sync + Send { @@ -16,7 +17,7 @@ pub trait Viewer: Sync + Send { } pub struct Viewers { - viewers: [Box; 2], + viewers: [Box; 3], } pub struct RenderRes { @@ -29,6 +30,7 @@ impl Viewers { let ss = Arc::new(SyntaxSet::load_defaults_newlines()); Self { viewers: [ + Box::new(junit::JunitViewer), Box::new(markdown::MarkdownViewer::new(ss.clone())), Box::new(code::CodeViewer::new(ss)), ], diff --git a/tests/testfiles/junit/rerun.junit.xml b/tests/testfiles/junit/rerun.junit.xml new file mode 100644 index 0000000..86c883a --- /dev/null +++ b/tests/testfiles/junit/rerun.junit.xml @@ -0,0 +1,1392 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: +video #247 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: +video #247 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + +running 1 test +test get_player_from_client::case_4_ios ... FAILED + +failures: + +failures: + get_player_from_client::case_4_ios + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.16s + + + thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: +video #247 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: +video #247 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + +running 1 test +test get_player_from_client::case_4_ios ... FAILED + +failures: + +failures: + get_player_from_client::case_4_ios + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.16s + + + thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: +video #247 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: +video #247 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + +running 1 test +test get_player_from_client::case_4_ios ... FAILED + +failures: + +failures: + get_player_from_client::case_4_ios + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.17s + + + thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: +video #247 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + +running 1 test +test get_player_from_client::case_4_ios ... FAILED + +failures: + +failures: + get_player_from_client::case_4_ios + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.20s + + + thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: +video #247 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + thread 'music_charts::case_2_us' panicked at tests/youtube.rs:2494:9: +expected >= 8 charts playlists, got 0 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + +running 1 test +test music_charts::case_2_us ... FAILED + +failures: + +failures: + music_charts::case_2_us + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.33s + + + thread 'music_charts::case_2_us' panicked at tests/youtube.rs:2494:9: +expected >= 8 charts playlists, got 0 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + + + + + + + + + + + + + thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_version_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_version_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + +running 1 test +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap +Snapshot: music_album_version_no_artist +Source: tests/youtube.rs:1593 +──────────────────────────────────────────────────────────────────────────────── +Expression: album +──────────────────────────────────────────────────────────────────────────────── +-old snapshot ++new results +────────────┬─────────────────────────────────────────────────────────────────── + 122 122 │ width: 544, + 123 123 │ height: 544, + 124 124 │ ), + 125 125 │ ], + 126 │- artists: [], + 127 │- artist_id: None, + 126 │+ artists: [ + 127 │+ ArtistId( + 128 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 129 │+ name: "S.p. Kodandapani", + 130 │+ ), + 131 │+ ArtistId( + 132 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 133 │+ name: "S. P. Kodandapani", + 134 │+ ), + 135 │+ ], + 136 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 128 137 │ album_type: Ep, + 129 138 │ year: None, + 130 │- by_va: true, + 139 │+ by_va: false, + 131 140 │ ), + 132 141 │ ], + 133 142 │ ) +────────────┴─────────────────────────────────────────────────────────────────── +To update snapshots run `cargo insta review` +Stopped on the first failure. Run `cargo insta test` to run all snapshots. +test music_album::case_8_version_no_artist ... FAILED + +failures: + +failures: + music_album::case_8_version_no_artist + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.32s + + + stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new +thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_version_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_version_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + +running 1 test +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap +Snapshot: music_album_version_no_artist +Source: tests/youtube.rs:1593 +──────────────────────────────────────────────────────────────────────────────── +Expression: album +──────────────────────────────────────────────────────────────────────────────── +-old snapshot ++new results +────────────┬─────────────────────────────────────────────────────────────────── + 122 122 │ width: 544, + 123 123 │ height: 544, + 124 124 │ ), + 125 125 │ ], + 126 │- artists: [], + 127 │- artist_id: None, + 126 │+ artists: [ + 127 │+ ArtistId( + 128 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 129 │+ name: "S.p. Kodandapani", + 130 │+ ), + 131 │+ ArtistId( + 132 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 133 │+ name: "S. P. Kodandapani", + 134 │+ ), + 135 │+ ], + 136 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 128 137 │ album_type: Ep, + 129 138 │ year: None, + 130 │- by_va: true, + 139 │+ by_va: false, + 131 140 │ ), + 132 141 │ ], + 133 142 │ ) +────────────┴─────────────────────────────────────────────────────────────────── +To update snapshots run `cargo insta review` +Stopped on the first failure. Run `cargo insta test` to run all snapshots. +test music_album::case_8_version_no_artist ... FAILED + +failures: + +failures: + music_album::case_8_version_no_artist + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.21s + + + stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new +thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_version_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_version_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + +running 1 test +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap +Snapshot: music_album_version_no_artist +Source: tests/youtube.rs:1593 +──────────────────────────────────────────────────────────────────────────────── +Expression: album +──────────────────────────────────────────────────────────────────────────────── +-old snapshot ++new results +────────────┬─────────────────────────────────────────────────────────────────── + 122 122 │ width: 544, + 123 123 │ height: 544, + 124 124 │ ), + 125 125 │ ], + 126 │- artists: [], + 127 │- artist_id: None, + 126 │+ artists: [ + 127 │+ ArtistId( + 128 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 129 │+ name: "S.p. Kodandapani", + 130 │+ ), + 131 │+ ArtistId( + 132 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 133 │+ name: "S. P. Kodandapani", + 134 │+ ), + 135 │+ ], + 136 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 128 137 │ album_type: Ep, + 129 138 │ year: None, + 130 │- by_va: true, + 139 │+ by_va: false, + 131 140 │ ), + 132 141 │ ], + 133 142 │ ) +────────────┴─────────────────────────────────────────────────────────────────── +To update snapshots run `cargo insta review` +Stopped on the first failure. Run `cargo insta test` to run all snapshots. +test music_album::case_8_version_no_artist ... FAILED + +failures: + +failures: + music_album::case_8_version_no_artist + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.27s + + + stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new +thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_version_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + +running 1 test +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap +Snapshot: music_album_version_no_artist +Source: tests/youtube.rs:1593 +──────────────────────────────────────────────────────────────────────────────── +Expression: album +──────────────────────────────────────────────────────────────────────────────── +-old snapshot ++new results +────────────┬─────────────────────────────────────────────────────────────────── + 122 122 │ width: 544, + 123 123 │ height: 544, + 124 124 │ ), + 125 125 │ ], + 126 │- artists: [], + 127 │- artist_id: None, + 126 │+ artists: [ + 127 │+ ArtistId( + 128 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 129 │+ name: "S.p. Kodandapani", + 130 │+ ), + 131 │+ ArtistId( + 132 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 133 │+ name: "S. P. Kodandapani", + 134 │+ ), + 135 │+ ], + 136 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 128 137 │ album_type: Ep, + 129 138 │ year: None, + 130 │- by_va: true, + 139 │+ by_va: false, + 131 140 │ ), + 132 141 │ ], + 133 142 │ ) +────────────┴─────────────────────────────────────────────────────────────────── +To update snapshots run `cargo insta review` +Stopped on the first failure. Run `cargo insta test` to run all snapshots. +test music_album::case_8_version_no_artist ... FAILED + +failures: + +failures: + music_album::case_8_version_no_artist + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.30s + + + stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new +thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_version_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + + + + + + + + + + thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + +running 1 test +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap +Snapshot: music_album_no_artist +Source: tests/youtube.rs:1593 +──────────────────────────────────────────────────────────────────────────────── +Expression: album +──────────────────────────────────────────────────────────────────────────────── +-old snapshot ++new results +────────────┬─────────────────────────────────────────────────────────────────── + 1 1 │ id: "MPREb_bqWA6mAZFWS", + 2 2 │ playlist_id: Some("OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0"), + 3 3 │ name: "Pedha Rasi Peddamma Katha", + 4 4 │ cover: "[cover]", + 5 │- artists: [], + 6 │- artist_id: None, + 5 │+ artists: [ + 6 │+ ArtistId( + 7 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 8 │+ name: "S.p. Kodandapani", + 9 │+ ), + 10 │+ ArtistId( + 11 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 12 │+ name: "S. P. Kodandapani", + 13 │+ ), + 14 │+ ], + 15 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 7 16 │ description: None, + 8 17 │ album_type: Ep, + 9 18 │ year: Some(1968), + 10 19 │ by_va: false, +────────────┴─────────────────────────────────────────────────────────────────── +To update snapshots run `cargo insta review` +Stopped on the first failure. Run `cargo insta test` to run all snapshots. +test music_album::case_9_no_artist ... FAILED + +failures: + +failures: + music_album::case_9_no_artist + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.25s + + + stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new +thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + +running 1 test +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap +Snapshot: music_album_no_artist +Source: tests/youtube.rs:1593 +──────────────────────────────────────────────────────────────────────────────── +Expression: album +──────────────────────────────────────────────────────────────────────────────── +-old snapshot ++new results +────────────┬─────────────────────────────────────────────────────────────────── + 1 1 │ id: "MPREb_bqWA6mAZFWS", + 2 2 │ playlist_id: Some("OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0"), + 3 3 │ name: "Pedha Rasi Peddamma Katha", + 4 4 │ cover: "[cover]", + 5 │- artists: [], + 6 │- artist_id: None, + 5 │+ artists: [ + 6 │+ ArtistId( + 7 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 8 │+ name: "S.p. Kodandapani", + 9 │+ ), + 10 │+ ArtistId( + 11 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 12 │+ name: "S. P. Kodandapani", + 13 │+ ), + 14 │+ ], + 15 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 7 16 │ description: None, + 8 17 │ album_type: Ep, + 9 18 │ year: Some(1968), + 10 19 │ by_va: false, +────────────┴─────────────────────────────────────────────────────────────────── +To update snapshots run `cargo insta review` +Stopped on the first failure. Run `cargo insta test` to run all snapshots. +test music_album::case_9_no_artist ... FAILED + +failures: + +failures: + music_album::case_9_no_artist + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.25s + + + stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new +thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + +running 1 test +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap +Snapshot: music_album_no_artist +Source: tests/youtube.rs:1593 +──────────────────────────────────────────────────────────────────────────────── +Expression: album +──────────────────────────────────────────────────────────────────────────────── +-old snapshot ++new results +────────────┬─────────────────────────────────────────────────────────────────── + 1 1 │ id: "MPREb_bqWA6mAZFWS", + 2 2 │ playlist_id: Some("OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0"), + 3 3 │ name: "Pedha Rasi Peddamma Katha", + 4 4 │ cover: "[cover]", + 5 │- artists: [], + 6 │- artist_id: None, + 5 │+ artists: [ + 6 │+ ArtistId( + 7 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 8 │+ name: "S.p. Kodandapani", + 9 │+ ), + 10 │+ ArtistId( + 11 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 12 │+ name: "S. P. Kodandapani", + 13 │+ ), + 14 │+ ], + 15 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 7 16 │ description: None, + 8 17 │ album_type: Ep, + 9 18 │ year: Some(1968), + 10 19 │ by_va: false, +────────────┴─────────────────────────────────────────────────────────────────── +To update snapshots run `cargo insta review` +Stopped on the first failure. Run `cargo insta test` to run all snapshots. +test music_album::case_9_no_artist ... FAILED + +failures: + +failures: + music_album::case_9_no_artist + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.30s + + + stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new +thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + +running 1 test +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap +Snapshot: music_album_no_artist +Source: tests/youtube.rs:1593 +──────────────────────────────────────────────────────────────────────────────── +Expression: album +──────────────────────────────────────────────────────────────────────────────── +-old snapshot ++new results +────────────┬─────────────────────────────────────────────────────────────────── + 1 1 │ id: "MPREb_bqWA6mAZFWS", + 2 2 │ playlist_id: Some("OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0"), + 3 3 │ name: "Pedha Rasi Peddamma Katha", + 4 4 │ cover: "[cover]", + 5 │- artists: [], + 6 │- artist_id: None, + 5 │+ artists: [ + 6 │+ ArtistId( + 7 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 8 │+ name: "S.p. Kodandapani", + 9 │+ ), + 10 │+ ArtistId( + 11 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 12 │+ name: "S. P. Kodandapani", + 13 │+ ), + 14 │+ ], + 15 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 7 16 │ description: None, + 8 17 │ album_type: Ep, + 9 18 │ year: Some(1968), + 10 19 │ by_va: false, +────────────┴─────────────────────────────────────────────────────────────────── +To update snapshots run `cargo insta review` +Stopped on the first failure. Run `cargo insta test` to run all snapshots. +test music_album::case_9_no_artist ... FAILED + +failures: + +failures: + music_album::case_9_no_artist + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.30s + + + stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new +thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testfiles/junit/simple.junit.xml b/tests/testfiles/junit/simple.junit.xml new file mode 100644 index 0000000..03e9e92 --- /dev/null +++ b/tests/testfiles/junit/simple.junit.xml @@ -0,0 +1,1011 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: +video #247 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + +running 1 test +test get_player_from_client::case_4_ios ... FAILED + +failures: + +failures: + get_player_from_client::case_4_ios + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.24s + + + thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: +video #247 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_version_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + +running 1 test +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap +Snapshot: music_album_version_no_artist +Source: tests/youtube.rs:1593 +──────────────────────────────────────────────────────────────────────────────── +Expression: album +──────────────────────────────────────────────────────────────────────────────── +-old snapshot ++new results +────────────┬─────────────────────────────────────────────────────────────────── + 122 122 │ width: 544, + 123 123 │ height: 544, + 124 124 │ ), + 125 125 │ ], + 126 │- artists: [], + 127 │- artist_id: None, + 126 │+ artists: [ + 127 │+ ArtistId( + 128 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 129 │+ name: "S.p. Kodandapani", + 130 │+ ), + 131 │+ ArtistId( + 132 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 133 │+ name: "S. P. Kodandapani", + 134 │+ ), + 135 │+ ], + 136 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 128 137 │ album_type: Ep, + 129 138 │ year: None, + 130 │- by_va: true, + 139 │+ by_va: false, + 131 140 │ ), + 132 141 │ ], + 133 142 │ ) +────────────┴─────────────────────────────────────────────────────────────────── +To update snapshots run `cargo insta review` +Stopped on the first failure. Run `cargo insta test` to run all snapshots. +test music_album::case_8_version_no_artist ... FAILED + +failures: + +failures: + music_album::case_8_version_no_artist + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.23s + + + stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new +thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_version_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + + + + thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + +running 1 test +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap +Snapshot: music_album_no_artist +Source: tests/youtube.rs:1593 +──────────────────────────────────────────────────────────────────────────────── +Expression: album +──────────────────────────────────────────────────────────────────────────────── +-old snapshot ++new results +────────────┬─────────────────────────────────────────────────────────────────── + 1 1 │ id: "MPREb_bqWA6mAZFWS", + 2 2 │ playlist_id: Some("OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0"), + 3 3 │ name: "Pedha Rasi Peddamma Katha", + 4 4 │ cover: "[cover]", + 5 │- artists: [], + 6 │- artist_id: None, + 5 │+ artists: [ + 6 │+ ArtistId( + 7 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 8 │+ name: "S.p. Kodandapani", + 9 │+ ), + 10 │+ ArtistId( + 11 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 12 │+ name: "S. P. Kodandapani", + 13 │+ ), + 14 │+ ], + 15 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 7 16 │ description: None, + 8 17 │ album_type: Ep, + 9 18 │ year: Some(1968), + 10 19 │ by_va: false, +────────────┴─────────────────────────────────────────────────────────────────── +To update snapshots run `cargo insta review` +Stopped on the first failure. Run `cargo insta test` to run all snapshots. +test music_album::case_9_no_artist ... FAILED + +failures: + +failures: + music_album::case_9_no_artist + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.28s + + + stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new +thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: +snapshot assertion for 'music_album_no_artist' failed in line 1593 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + thread 'music_playlist_cont::case_2_ytm' panicked at tests/youtube.rs:1534:5: +expected >= 227 tracks, got 128 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + +running 1 test +test music_playlist_cont::case_2_ytm ... FAILED + +failures: + +failures: + music_playlist_cont::case_2_ytm + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 1.15s + + + thread 'music_playlist_cont::case_2_ytm' panicked at tests/youtube.rs:1534:5: +expected >= 227 tracks, got 128 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + thread 'search' panicked at tests/youtube.rs:2751:9: +expected >= 10 items on page 2, got 4 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + +running 1 test +test search ... FAILED + +failures: + +failures: + search + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 2.17s + + + thread 'search' panicked at tests/youtube.rs:2751:9: +expected >= 10 items on page 2, got 4 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From ec65b6d03f13d88dbf874b72b086eec369d94475 Mon Sep 17 00:00:00 2001 From: ThetaDev Date: Tue, 4 Jun 2024 23:17:02 +0200 Subject: [PATCH 4/4] feat: add junit-parser --- .gitignore | 1 + Cargo.lock | 77 +- Cargo.toml | 1 + crates/junit-parser/Cargo.toml | 34 +- crates/junit-parser/src/errors.rs | 22 +- crates/junit-parser/src/lib.rs | 1011 ++-- .../junit_parser__tests__parse_retry.snap | 4776 +++++++++++++++++ .../junit_parser__tests__parse_simple.snap | 4662 ++++++++++++++++ .../junit_parser__tests__parse_vite.snap | 824 +++ src/viewer/junit.rs | 7 +- tests/testfiles/junit/rerun.junit.xml | 1392 ----- tests/testfiles/junit/retry.junit.xml | 1859 +++++++ tests/testfiles/junit/simple.junit.xml | 2404 +++++---- 13 files changed, 14011 insertions(+), 3059 deletions(-) create mode 100644 crates/junit-parser/src/snapshots/junit_parser__tests__parse_retry.snap create mode 100644 crates/junit-parser/src/snapshots/junit_parser__tests__parse_simple.snap create mode 100644 crates/junit-parser/src/snapshots/junit_parser__tests__parse_vite.snap delete mode 100644 tests/testfiles/junit/rerun.junit.xml create mode 100644 tests/testfiles/junit/retry.junit.xml diff --git a/.gitignore b/.gitignore index aebe389..a237387 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /target /dist /.env +*.snap.new diff --git a/Cargo.lock b/Cargo.lock index 780ade3..7238e51 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -164,6 +164,7 @@ dependencies = [ "percent-encoding", "pin-project", "proptest", + "quick-xml", "quick_cache", "rand", "regex", @@ -498,6 +499,18 @@ dependencies = [ "unicode_categories", ] +[[package]] +name = "console" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "windows-sys 0.52.0", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -621,6 +634,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", + "serde", ] [[package]] @@ -684,15 +698,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "document-features" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef5282ad69563b5fc40319526ba27e0e7363d552a896f0297d54f767717f9b95" -dependencies = [ - "litrs", -] - [[package]] name = "dotenvy" version = "0.15.7" @@ -705,6 +710,12 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + [[package]] name = "entities" version = "1.0.1" @@ -1227,6 +1238,19 @@ dependencies = [ "generic-array", ] +[[package]] +name = "insta" +version = "1.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "810ae6042d48e2c9e9215043563a58a80b877bc863228a74cf10c49d4620a6f5" +dependencies = [ + "console", + "lazy_static", + "linked-hash-map", + "serde", + "similar", +] + [[package]] name = "ipnet" version = "2.9.0" @@ -1267,10 +1291,13 @@ dependencies = [ name = "junit-parser" version = "0.1.0" dependencies = [ - "document-features", + "insta", + "once_cell", + "path_macro", "quick-xml", "serde", "thiserror", + "time", ] [[package]] @@ -1291,18 +1318,18 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + [[package]] name = "linux-raw-sys" version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" -[[package]] -name = "litrs" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" - [[package]] name = "lock_api" version = "0.4.12" @@ -2217,6 +2244,12 @@ dependencies = [ "libc", ] +[[package]] +name = "similar" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640" + [[package]] name = "slab" version = "0.4.9" @@ -2391,10 +2424,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", + "itoa", "num-conv", "powerfmt", "serde", "time-core", + "time-macros", ] [[package]] @@ -2403,6 +2438,16 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + [[package]] name = "tinyvec" version = "1.6.0" diff --git a/Cargo.toml b/Cargo.toml index 9eff7ec..8e097e6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -46,6 +46,7 @@ once_cell = "1.19.0" path_macro = "1.0.0" percent-encoding = "2.3.1" pin-project = "1.1.5" +quick-xml = { version = "0.31.0", features = ["escape-html"] } quick_cache = "0.5.1" rand = "0.8.5" regex = "1.10.4" diff --git a/crates/junit-parser/Cargo.toml b/crates/junit-parser/Cargo.toml index 6be9a6a..6bc422a 100644 --- a/crates/junit-parser/Cargo.toml +++ b/crates/junit-parser/Cargo.toml @@ -4,33 +4,15 @@ version = "0.1.0" edition = "2021" authors = ["Boris Faure "] license = "BSD-2-Clause" -keywords = ["junit", "xunit", "xml", "parser", "report"] -categories = ["development-tools::testing", "parser-implementations"] -readme = "README.md" -description = "Rust library to parse JUnit XML files" repository = "https://github.com/borisfaure/junit-parser" -documentation = "https://docs.rs/junit-parser/" -rust-version = "1.56" - -[features] -default = ["properties_as_hashmap"] -## Enables `derive(serde::{Serialize,Deserialize})` on the Test* structures. -serde = ["dep:serde"] -## Parse the `properties` element as a hashmap -properties_as_hashmap = [] -## Parse the `properties` element as a vector -properties_as_vector = [] -document-features = ["dep:document-features"] - -# docs.rs-specific configuration -[package.metadata.docs.rs] -# document all features -all-features = true -# defines the configuration attribute `docsrs` -rustdoc-args = ["--cfg", "docsrs"] [dependencies] -quick-xml = { version = "0.31", features = ["escape-html"] } +quick-xml = { version = "0.31.0", features = ["escape-html"] } thiserror = "1.0.61" -serde = { version = "1.0", features = ["derive"], optional = true } -document-features = { version = "0.2", optional = true } +time = { version = "0.3.36", features = ["parsing", "serde-well-known"] } +serde = { version = "1.0", features = ["derive"] } + +[dev-dependencies] +insta = { version = "1.39.0", features = ["json"] } +once_cell = "1.19.0" +path_macro = "1.0.0" diff --git a/crates/junit-parser/src/errors.rs b/crates/junit-parser/src/errors.rs index 4a603a6..bd9f70e 100644 --- a/crates/junit-parser/src/errors.rs +++ b/crates/junit-parser/src/errors.rs @@ -5,17 +5,19 @@ use thiserror::Error; #[derive(Error, Debug)] pub enum Error { /// Error while parsing XML - #[error("Error while parsing XML")] - XMLError(#[from] ::quick_xml::Error), + #[error("Error while parsing XML: {0}")] + Xml(#[from] ::quick_xml::Error), /// Error while converting f64 attribute - #[error("Error while converting f64 attribute")] - ParseFloatError(#[from] std::num::ParseFloatError), + #[error("Error while converting f64 attribute: {0}")] + ParseFloat(#[from] std::num::ParseFloatError), /// Error while converting u64 attribute - #[error("Error while converting u64 attribute")] - ParseIntError(#[from] std::num::ParseIntError), + #[error("Error while converting u64 attribute: {0}")] + ParseInt(#[from] std::num::ParseIntError), /// Error while converting bytes to Utf8 - #[error("Error while converting bytes to Utf8")] - ParseUt8Error(#[from] std::str::Utf8Error), + #[error("Error while converting bytes to Utf8: {0}")] + ParseUt8(#[from] std::str::Utf8Error), + #[error("Error while parsing timestamp: {0}")] + ParseTimestamp(#[from] time::error::Parse), /// Error parsing the `property` element: missing `name` #[error("Missing `name` attribute in property")] MissingPropertyName, @@ -25,7 +27,7 @@ impl From<::quick_xml::events::attributes::AttrError> for Error { #[inline] /// Convert [`::quick_xml::events::attributes`] into [`Error::XMLError`] fn from(err: ::quick_xml::events::attributes::AttrError) -> Error { - Error::XMLError(err.into()) + Error::Xml(err.into()) } } @@ -33,6 +35,6 @@ impl From<::quick_xml::escape::EscapeError> for Error { #[inline] /// Convert [`::quick_xml::escape::EscapeError`] into [`Error::XMLError`] fn from(err: ::quick_xml::escape::EscapeError) -> Error { - Error::XMLError(err.into()) + Error::Xml(err.into()) } } diff --git a/crates/junit-parser/src/lib.rs b/crates/junit-parser/src/lib.rs index 6d87276..b6a3a56 100644 --- a/crates/junit-parser/src/lib.rs +++ b/crates/junit-parser/src/lib.rs @@ -1,640 +1,25 @@ -//! Library to parse JUnit XML files -//! -//! # Example -//! -//! Parsing a JUnit content -//! -//! ``` -//! use std::io::Cursor; -//! let xml = r#" -//! -//! -//! -//! -//! details about failure -//! -//! -//! "#; -//! let cursor = Cursor::new(xml); -//! let r = junit_parser::from_reader(cursor); -//! assert!(r.is_ok()); -//! let t = r.unwrap(); -//! assert_eq!(t.suites.len(), 1); -//! let ts = &t.suites[0]; -//! assert_eq!(ts.tests, 3); -//! assert_eq!(ts.failures, 1); -//! assert_eq!(ts.cases.len(), 3); -//! assert!(ts.cases[0].status.is_success()); -//! assert!(ts.cases[2].status.is_failure()); -//! ``` -//! -//! # Features -#![cfg_attr( - feature = "document-features", - cfg_attr(doc, doc = ::document_features::document_features!()) -)] -#![forbid(unsafe_code)] -#![deny(missing_docs)] -// Enable feature requirements in the docs from 1.57 -// See https://stackoverflow.com/questions/61417452 -#![cfg_attr(docs_rs, feature(doc_auto_cfg))] +use std::borrow::Cow; +use std::io::BufRead; -/// Errors -mod errors; - -pub use errors::Error; use quick_xml::escape::unescape; use quick_xml::events::BytesStart as XMLBytesStart; use quick_xml::events::Event as XMLEvent; use quick_xml::name::QName; use quick_xml::Error as XMLError; use quick_xml::Reader as XMLReader; -use std::borrow::Cow; -#[cfg(feature = "properties_as_hashmap")] -use std::collections::HashMap; -use std::io::prelude::*; +use serde::{Deserialize, Serialize}; use std::str; -use std::vec::Vec; +use time::OffsetDateTime; -#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] -#[derive(Debug, Clone, Default)] -/// Properties associated to a [`TestSuite`] or a [`TestCase`] -pub struct Properties { - /// Hashmap of the properties - #[cfg(feature = "properties_as_hashmap")] - pub hashmap: HashMap, - /// Vector of the properties - #[cfg(feature = "properties_as_vector")] - pub vec: Vec<(String, String)>, -} +mod errors; -/// Parse attributes of a `property` element -fn parse_property( - e: &XMLBytesStart, - r: Option<&mut XMLReader>, -) -> Result<(String, String), Error> { - let mut k: Option = None; - let mut v: Option = None; - for a in e.attributes() { - let a = a?; - match a.key { - QName(b"name") => k = Some(try_from_attribute_value_string(a.value)?), - QName(b"value") => v = Some(try_from_attribute_value_string(a.value)?), - _ => {} - }; - } - if let Some(r) = r { - let mut buf = Vec::new(); - loop { - match r.read_event_into(&mut buf) { - Ok(XMLEvent::End(ref e)) if e.name() == QName(b"property") => break, - Ok(XMLEvent::Eof) => { - return Err(XMLError::UnexpectedEof("property".to_string()).into()) - } - Ok(XMLEvent::Text(e)) => { - v = Some(e.unescape()?.trim().to_string()); - } - Err(err) => return Err(err.into()), - _ => (), - } - } - buf.clear(); - } - match (k, v) { - (Some(k), Some(v)) => Ok((k, v)), - (Some(k), None) => Ok((k, "".to_string())), - _ => Err(Error::MissingPropertyName), - } -} +use errors::Error; -impl Properties { - /// Create a [`Properties`] from a XML `properties` element - fn from_reader(r: &mut XMLReader) -> Result { - let mut p = Self::default(); - let mut buf = Vec::new(); - loop { - match r.read_event_into(&mut buf) { - Ok(XMLEvent::End(ref e)) if e.name() == QName(b"properties") => break, - - Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"property") => { - let (k, v) = parse_property::(e, None)?; - p.add_property(k, v); - } - Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"property") => { - let (k, v) = parse_property(e, Some(r))?; - p.add_property(k, v); - } - Ok(XMLEvent::Eof) => { - return Err(XMLError::UnexpectedEof("properties".to_string()).into()) - } - Err(err) => return Err(err.into()), - _ => (), - } - } - buf.clear(); - Ok(p) - } - - // `key` and `value` if no feature to store them - #[cfg_attr( - all( - not(feature = "properties_as_hashmap"), - not(feature = "properties_as_vector") - ), - allow(unused_variables) - )] - /// Add a property to the set of properties - fn add_property(&mut self, key: String, value: String) { - #[cfg(feature = "properties_as_hashmap")] - self.hashmap.insert(key.clone(), value.clone()); - #[cfg(feature = "properties_as_vector")] - self.vec.push((key, value)); - } -} - -#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] -#[derive(Debug, Clone, Default)] -/// Value from a `` tag -pub struct TestFailure { - /// The `message` attribute - pub message: String, - /// Body of the `` tag - pub text: String, - /// The `type` attribute - pub failure_type: String, -} -impl TestFailure { - /// Fill up `self` with attributes from the XML tag - fn parse_attributes(&mut self, e: &XMLBytesStart) -> Result<(), Error> { - for a in e.attributes() { - let a = a?; - match a.key { - QName(b"type") => self.failure_type = try_from_attribute_value_string(a.value)?, - QName(b"message") => self.message = try_from_attribute_value_string(a.value)?, - _ => {} - }; - } - Ok(()) - } - - /// New [`TestFailure`] from empty XML tag - fn new_empty(e: &XMLBytesStart) -> Result { - let mut tf = Self::default(); - tf.parse_attributes(e)?; - Ok(tf) - } - - /// New [`TestFailure`] from XML tree - fn from_reader(e: &XMLBytesStart, r: &mut XMLReader) -> Result { - let mut tf = Self::default(); - tf.parse_attributes(e)?; - let mut buf = Vec::new(); - loop { - match r.read_event_into(&mut buf) { - Ok(XMLEvent::End(ref e)) if e.name() == QName(b"failure") => break, - Ok(XMLEvent::Text(e)) => { - tf.text = e.unescape()?.trim().to_string(); - } - Ok(XMLEvent::Eof) => { - return Err(XMLError::UnexpectedEof("failure".to_string()).into()) - } - Err(err) => return Err(err.into()), - _ => (), - } - } - buf.clear(); - Ok(tf) - } -} - -#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] -#[derive(Debug, Clone, Default)] -/// Value from an `` tag -pub struct TestError { - /// The `message` attribute - pub message: String, - /// Body of the `` tag - pub text: String, - /// The `type` attribute - pub error_type: String, -} -impl TestError { - /// Fill up `self` with attributes from the XML tag - fn parse_attributes(&mut self, e: &XMLBytesStart) -> Result<(), Error> { - for a in e.attributes() { - let a = a?; - match a.key { - QName(b"type") => self.error_type = try_from_attribute_value_string(a.value)?, - QName(b"message") => self.message = try_from_attribute_value_string(a.value)?, - _ => {} - }; - } - Ok(()) - } - - /// New [`TestError`] from empty XML tag - fn new_empty(e: &XMLBytesStart) -> Result { - let mut te = Self::default(); - te.parse_attributes(e)?; - Ok(te) - } - - /// New [`TestError`] from XML tree - fn from_reader(e: &XMLBytesStart, r: &mut XMLReader) -> Result { - let mut te = Self::default(); - te.parse_attributes(e)?; - let mut buf = Vec::new(); - loop { - match r.read_event_into(&mut buf) { - Ok(XMLEvent::End(ref e)) if e.name() == QName(b"error") => break, - Ok(XMLEvent::Text(e)) => { - te.text = e.unescape()?.trim().to_string(); - } - Ok(XMLEvent::Eof) => { - return Err(XMLError::UnexpectedEof("error".to_string()).into()) - } - Err(err) => return Err(err.into()), - _ => (), - } - } - buf.clear(); - Ok(te) - } -} - -#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] -#[derive(Debug, Clone, Default)] -/// Value from a `` tag -pub struct TestSkipped { - /// The `message` attribute - pub message: String, - /// Body of the `` tag - pub text: String, - /// The `type` attribute - pub skipped_type: String, -} -impl TestSkipped { - /// Fill up `self` with attributes from the XML tag - fn parse_attributes(&mut self, e: &XMLBytesStart) -> Result<(), Error> { - for a in e.attributes() { - let a = a?; - match a.key { - QName(b"type") => self.skipped_type = try_from_attribute_value_string(a.value)?, - QName(b"message") => self.message = try_from_attribute_value_string(a.value)?, - _ => {} - }; - } - Ok(()) - } - - /// New [`TestSkipped`] from empty XML tag - fn new_empty(e: &XMLBytesStart) -> Result { - let mut ts = Self::default(); - ts.parse_attributes(e)?; - Ok(ts) - } - - /// New [`TestSkipped`] from XML tree - fn from_reader(e: &XMLBytesStart, r: &mut XMLReader) -> Result { - let mut ts = Self::default(); - ts.parse_attributes(e)?; - let mut buf = Vec::new(); - loop { - match r.read_event_into(&mut buf) { - Ok(XMLEvent::End(ref e)) if e.name() == QName(b"skipped") => break, - Ok(XMLEvent::Text(e)) => { - ts.text = e.unescape()?.trim().to_string(); - } - Ok(XMLEvent::Eof) => { - return Err(XMLError::UnexpectedEof("skipped".to_string()).into()) - } - Err(err) => return Err(err.into()), - _ => (), - } - } - buf.clear(); - Ok(ts) - } -} - -#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] -#[derive(Debug, Clone, Default)] -/// Status of a test case -pub enum TestStatus { - /// Success - #[default] - Success, - /// Test case has a `` tag - Error(TestError), - /// Test case has a `` tag - Failure(TestFailure), - /// Test case has a `` tag - Skipped(TestSkipped), -} -impl TestStatus { - /// Returns `true` if the `TestStatus` is [`Success`](#variant.Success). - pub fn is_success(&self) -> bool { - matches!(self, TestStatus::Success) - } - /// Returns `true` if the `TestStatus` is [`Error(_)`](#variant.Error). - pub fn is_error(&self) -> bool { - matches!(self, TestStatus::Error(_)) - } - /// Returns the contained [`Error(_)`](#variant.Error) value as a reference - /// - /// # Panics - /// - /// Panics if the value is not an [`Errror(_)`](#variant.Error) - pub fn error_as_ref(&self) -> &TestError { - if let TestStatus::Error(ref e) = self { - return e; - } - panic!("called `TestStatus::error()` on a value that is not TestStatus::Error(_)"); - } - - /// Returns `true` if the `TestStatus` is [`Failure(_)`](#variant.Failure). - pub fn is_failure(&self) -> bool { - matches!(self, TestStatus::Failure(_)) - } - - /// Returns the contained [`Failure(_)`](#variant.Failure) value as a reference - /// - /// # Panics - /// - /// Panics if the value is not a [`Failure(_)`](#variant.Failure) - pub fn failure_as_ref(&self) -> &TestFailure { - if let TestStatus::Failure(ref e) = self { - return e; - } - panic!("called `TestStatus::failure()` on a value that is not TestStatus::Failure(_)"); - } - - /// Returns `true` if the `TestStatus` is [`Skipped(_)`](#variant.Skipped). - pub fn is_skipped(&self) -> bool { - matches!(self, TestStatus::Skipped(_)) - } - - /// Returns the contained [`Skipped(_)`](#variant.Skipped) value as a reference - /// - /// # Panics - /// - /// Panics if the value is not a [`Skipped(_)`](#variant.Skipped) - pub fn skipped_as_ref(&self) -> &TestSkipped { - if let TestStatus::Skipped(ref e) = self { - return e; - } - panic!("called `TestStatus::skipped()` on a value that is not TestStatus::Skipped(_)"); - } -} - -#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] -#[derive(Debug, Clone, Default)] -/// A test case -pub struct TestCase { - /// How long the test case took to run, from the `time` attribute - pub time: f64, - /// Name of the test case, from the `name` attribute - /// If there is a `classname` attribute, store it as `classname::name` - /// Otherwise if there is a `group` attribute, store it as `group::name` - /// See [`TestCase::original_name`] for the original name - pub name: String, - /// Status of the test case - pub status: TestStatus, - /// Original name, from the `name` attribute - pub original_name: String, - /// Class name, from the `classname` attribute - pub classname: Option, - /// Group name, from the `group` attribute - pub group: Option, - /// File source code of the test - pub file: Option, - /// Related line in the source code - pub line: Option, - /// stdout output from the `system-out` element - pub system_out: Option, - /// stderr output from the `system-err` element - pub system_err: Option, - /// Properties of the test case - pub properties: Properties, -} -impl TestCase { - /// Fill up `self` with attributes from the XML tag - fn parse_attributes(&mut self, e: &XMLBytesStart) -> Result<(), Error> { - for a in e.attributes() { - let a = a?; - match a.key { - QName(b"time") => self.time = try_from_attribute_value_f64(a.value)?, - QName(b"name") => self.original_name = try_from_attribute_value_string(a.value)?, - QName(b"classname") => { - self.classname = Some(try_from_attribute_value_string(a.value)?) - } - QName(b"group") => self.group = Some(try_from_attribute_value_string(a.value)?), - QName(b"file") => self.file = Some(try_from_attribute_value_string(a.value)?), - QName(b"line") => self.line = Some(try_from_attribute_value_u64(a.value)?), - _ => {} - }; - } - if let Some(cn) = self.classname.as_ref() { - self.name = format!("{}::{}", cn, self.original_name); - } else if let Some(gn) = self.group.as_ref() { - self.name = format!("{}::{}", gn, self.original_name); - } else { - self.name.clone_from(&self.original_name); - } - Ok(()) - } - - /// New [`TestCase`] from empty XML tag - fn new_empty(e: &XMLBytesStart) -> Result { - let mut tc = Self::default(); - tc.parse_attributes(e)?; - Ok(tc) - } - - /// New [`TestCase`] from XML tree - fn from_reader(e: &XMLBytesStart, r: &mut XMLReader) -> Result { - let mut tc = Self::default(); - tc.parse_attributes(e)?; - let mut buf = Vec::new(); - loop { - match r.read_event_into(&mut buf) { - Ok(XMLEvent::End(ref e)) if e.name() == QName(b"testcase") => break, - Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"skipped") => { - let ts = TestSkipped::from_reader(e, r)?; - tc.status = TestStatus::Skipped(ts); - } - Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"skipped") => { - let ts = TestSkipped::new_empty(e)?; - tc.status = TestStatus::Skipped(ts); - } - Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"failure") => { - let tf = TestFailure::from_reader(e, r)?; - tc.status = TestStatus::Failure(tf); - } - Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"failure") => { - let tf = TestFailure::new_empty(e)?; - tc.status = TestStatus::Failure(tf); - } - Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"error") => { - let te = TestError::from_reader(e, r)?; - tc.status = TestStatus::Error(te); - } - Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"error") => { - let te = TestError::new_empty(e)?; - tc.status = TestStatus::Error(te); - } - Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"system-out") => {} - Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"system-out") => { - tc.system_out = parse_system(e, r)?; - } - Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"system-err") => {} - Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"system-err") => { - tc.system_err = parse_system(e, r)?; - } - Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"properties") => { - tc.properties = Properties::from_reader(r)?; - } - Ok(XMLEvent::Eof) => { - return Err(XMLError::UnexpectedEof("testcase".to_string()).into()) - } - Err(err) => return Err(err.into()), - _ => (), - } - } - buf.clear(); - Ok(tc) - } -} - -#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] -#[derive(Debug, Clone, Default)] -/// A test suite, containing test cases [`TestCase`](struct.TestCase.html) -pub struct TestSuite { - /// List of status of tests represented by [`TestCase`] - pub cases: Vec, - /// List of tests suites represented by [`TestSuite`] - pub suites: Vec, - /// How long the test suite took to run, from the `time` attribute - pub time: f64, - /// Number of tests in the test suite, from the `tests` attribute - pub tests: u64, - /// Number of tests in error in the test suite, from the `errors` attribute - pub errors: u64, - /// Number of tests in failure in the test suite, from the `failures` attribute - pub failures: u64, - /// Number of tests skipped in the test suites, from the `skipped` attribute - pub skipped: u64, - /// Number of assertions in the test suites, from the `assertions` attribute - pub assertions: Option, - /// Name of the test suite, from the `name` attribute - pub name: String, - /// Timestamp when the test suite was run, from the `timestamp` attribute - pub timestamp: Option, - /// Hostname where the test suite was run, from the `hostname` attribute - pub hostname: Option, - /// Identifier of the test suite, from the `id` attribute - pub id: Option, - /// Package of the test suite, from the `package` attribute - pub package: Option, - /// Source code file of the test suite, from the `file` attribute - pub file: Option, - /// Logger of the test suite, from the `log` attribute - pub log: Option, - /// URL of the test suite, from the `uri` attribute - pub url: Option, - /// Version of the test suite, from the `version` attribute - pub version: Option, - /// stdout output from the `system-out` element - pub system_out: Option, - /// stderr output from the `system-err` element - pub system_err: Option, - /// Properties of the test suite - pub properties: Properties, -} -impl TestSuite { - /// Fill up `self` with attributes from the XML tag - fn parse_attributes(&mut self, e: &XMLBytesStart) -> Result<(), Error> { - for a in e.attributes() { - let a = a?; - match a.key { - QName(b"time") => self.time = try_from_attribute_value_f64(a.value)?, - QName(b"tests") => self.tests = try_from_attribute_value_u64(a.value)?, - QName(b"errors") => self.errors = try_from_attribute_value_u64(a.value)?, - QName(b"failures") => self.failures = try_from_attribute_value_u64(a.value)?, - QName(b"skipped") => self.skipped = try_from_attribute_value_u64(a.value)?, - QName(b"assertions") => { - self.assertions = Some(try_from_attribute_value_u64(a.value)?) - } - QName(b"name") => self.name = try_from_attribute_value_string(a.value)?, - QName(b"timestamp") => { - self.timestamp = Some(try_from_attribute_value_string(a.value)?) - } - QName(b"hostname") => { - self.hostname = Some(try_from_attribute_value_string(a.value)?) - } - QName(b"id") => self.id = Some(try_from_attribute_value_string(a.value)?), - QName(b"package") => self.package = Some(try_from_attribute_value_string(a.value)?), - QName(b"file") => self.file = Some(try_from_attribute_value_string(a.value)?), - QName(b"log") => self.log = Some(try_from_attribute_value_string(a.value)?), - QName(b"url") => self.url = Some(try_from_attribute_value_string(a.value)?), - QName(b"version") => self.version = Some(try_from_attribute_value_string(a.value)?), - _ => {} - }; - } - Ok(()) - } - - /// New [`TestSuite`] from empty XML tag - fn new_empty(e: &XMLBytesStart) -> Result { - let mut ts = Self::default(); - ts.parse_attributes(e)?; - Ok(ts) - } - - /// New [`TestSuite`] from XML tree - fn from_reader(e: &XMLBytesStart, r: &mut XMLReader) -> Result { - let mut ts = Self::default(); - ts.parse_attributes(e)?; - let mut buf = Vec::new(); - loop { - match r.read_event_into(&mut buf) { - Ok(XMLEvent::End(ref e)) if e.name() == QName(b"testsuite") => break, - Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"testsuite") => { - ts.suites.push(TestSuite::from_reader(e, r)?); - } - Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"testcase") => { - ts.cases.push(TestCase::from_reader(e, r)?); - } - Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"testcase") => { - ts.cases.push(TestCase::new_empty(e)?); - } - Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"system-out") => {} - Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"system-out") => { - ts.system_out = parse_system(e, r)?; - } - Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"system-err") => {} - Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"system-err") => { - ts.system_err = parse_system(e, r)?; - } - Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"properties") => { - ts.properties = Properties::from_reader(r)?; - } - Ok(XMLEvent::Eof) => { - return Err(XMLError::UnexpectedEof("testsuite".to_string()).into()) - } - Err(err) => return Err(err.into()), - _ => (), - } - } - buf.clear(); - Ok(ts) - } -} - -#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] -#[derive(Debug, Clone, Default)] -/// Struct representing a JUnit report, containing test suites [`TestSuite`](struct.TestSuite.html) +/// Struct representing a JUnit report, containing test suites +#[derive(Debug, Default, Serialize, Deserialize)] pub struct TestSuites { + /// Name of the test suites, from the `name` attribute + pub name: String, /// List of tests suites represented by [`TestSuite`] pub suites: Vec, /// How long the test suites took to run, from the `time` attribute @@ -647,9 +32,89 @@ pub struct TestSuites { pub failures: u64, /// Number of tests skipped in the test suites, from the `skipped` attribute pub skipped: u64, - /// Name of the test suites, from the `name` attribute - pub name: String, + /// Number of tests that passed after failed attempts + pub flaky: u64, } + +/// A test suite, containing test cases [`TestCase`] +#[derive(Debug, Default, Serialize, Deserialize)] +pub struct TestSuite { + /// Name of the test suite, from the `name` attribute + pub name: String, + /// Timestamp when the test suite was run, from the `timestamp` attribute + #[serde(with = "time::serde::rfc3339::option")] + pub timestamp: Option, + /// List of status of tests represented by [`TestCase`] + pub cases: Vec, + /// How long the test suite took to run, from the `time` attribute + pub time: f64, + /// Number of tests in the test suite, from the `tests` attribute + pub tests: u64, + /// Number of tests in error in the test suite, from the `errors` attribute + pub errors: u64, + /// Number of tests in failure in the test suite, from the `failures` attribute + pub failures: u64, + /// Number of tests skipped in the test suites, from the `skipped` attribute + pub skipped: u64, + /// Number of tests that passed after failed attempts + pub flaky: u64, +} + +/// A test case +#[derive(Debug, Default, Serialize, Deserialize)] +pub struct TestCase { + /// Name of the test case, from the `name` attribute + pub name: String, + /// Original name, from the `name` attribute + pub original_name: String, + /// Class name, from the `classname` attribute + pub classname: Option, + /// Timestamp when the test case was run + #[serde(with = "time::serde::rfc3339::option")] + pub timestamp: Option, + /// Run time in seconds + pub time: f64, + /// Status of the test case + pub status: TestStatus, + /// stdout output from the `system-out` element + pub system_out: Option, + /// stderr output from the `system-err` element + pub system_err: Option, + /// Previous test attempts, from `rerunFailure` and `flakyFailure` element + pub retries: Vec, +} + +#[derive(Debug, Default, Serialize, Deserialize)] +pub enum TestStatus { + #[default] + Success, + Error(Message), + Failure(Message), + Flaky, + Skipped, +} + +#[derive(Debug, Default, Serialize, Deserialize)] +pub struct Message { + pub message: String, + pub text: String, +} + +#[derive(Debug, Default, Serialize, Deserialize)] +pub struct Retry { + /// Timestamp when the retry was run + #[serde(with = "time::serde::rfc3339::option")] + pub timestamp: Option, + /// Run time in seconds + pub time: f64, + /// Status of the retry + pub status: TestStatus, + /// stdout output from the `system-out` element + pub system_out: Option, + /// stderr output from the `system-err` element + pub system_err: Option, +} + impl TestSuites { /// Fill up `self` with attributes from the XML tag fn parse_attributes(&mut self, e: &XMLBytesStart) -> Result<(), Error> { @@ -697,11 +162,259 @@ impl TestSuites { _ => (), } } - buf.clear(); + + ts.flaky = ts.suites.iter().map(|s| s.flaky).sum(); + Ok(ts) } } +impl TestSuite { + /// Fill up `self` with attributes from the XML tag + fn parse_attributes(&mut self, e: &XMLBytesStart) -> Result<(), Error> { + for a in e.attributes() { + let a = a?; + match a.key { + QName(b"time") => self.time = try_from_attribute_value_f64(a.value)?, + QName(b"tests") => self.tests = try_from_attribute_value_u64(a.value)?, + QName(b"errors") => self.errors = try_from_attribute_value_u64(a.value)?, + QName(b"failures") => self.failures = try_from_attribute_value_u64(a.value)?, + QName(b"skipped") => self.skipped = try_from_attribute_value_u64(a.value)?, + QName(b"name") => self.name = try_from_attribute_value_string(a.value)?, + QName(b"timestamp") => { + self.timestamp = Some(try_from_attribute_value_timestamp(a.value)?) + } + _ => {} + }; + } + Ok(()) + } + + /// New [`TestSuite`] from empty XML tag + fn new_empty(e: &XMLBytesStart) -> Result { + let mut ts = Self::default(); + ts.parse_attributes(e)?; + Ok(ts) + } + + /// New [`TestSuite`] from XML tree + fn from_reader(e: &XMLBytesStart, r: &mut XMLReader) -> Result { + let mut ts = Self::default(); + ts.parse_attributes(e)?; + let mut buf = Vec::new(); + loop { + match r.read_event_into(&mut buf) { + Ok(XMLEvent::End(ref e)) if e.name() == QName(b"testsuite") => break, + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"testcase") => { + ts.cases.push(TestCase::from_reader(e, r)?); + } + Ok(XMLEvent::Empty(ref e)) if e.name() == QName(b"testcase") => { + ts.cases.push(TestCase::new_empty(e)?); + } + Ok(XMLEvent::Eof) => { + return Err(XMLError::UnexpectedEof("testsuite".to_string()).into()) + } + Err(err) => return Err(err.into()), + _ => (), + } + } + + ts.flaky = ts + .cases + .iter() + .filter(|c| matches!(c.status, TestStatus::Flaky)) + .count() as u64; + + Ok(ts) + } +} + +impl TestCase { + /// Fill up `self` with attributes from the XML tag + fn parse_attributes(&mut self, e: &XMLBytesStart) -> Result<(), Error> { + for a in e.attributes() { + let a = a?; + match a.key { + QName(b"time") => self.time = try_from_attribute_value_f64(a.value)?, + QName(b"timestamp") => { + self.timestamp = Some(try_from_attribute_value_timestamp(a.value)?) + } + QName(b"name") => self.original_name = try_from_attribute_value_string(a.value)?, + QName(b"classname") => { + self.classname = Some(try_from_attribute_value_string(a.value)?) + } + _ => {} + } + } + if let Some(cn) = self.classname.as_ref() { + self.name = format!("{}::{}", cn, self.original_name); + } else { + self.name.clone_from(&self.original_name); + } + Ok(()) + } + + /// New [`TestCase`] from empty XML tag + fn new_empty(e: &XMLBytesStart) -> Result { + let mut tc = Self::default(); + tc.parse_attributes(e)?; + Ok(tc) + } + + /// New [`TestCase`] from XML tree + fn from_reader(e: &XMLBytesStart, r: &mut XMLReader) -> Result { + let mut tc = Self::default(); + tc.parse_attributes(e)?; + let mut buf = Vec::new(); + loop { + match r.read_event_into(&mut buf)? { + XMLEvent::End(ref e) if e.name() == QName(b"testcase") => break, + XMLEvent::Start(ref e) if e.name() == QName(b"skipped") => { + tc.status = TestStatus::Skipped; + } + XMLEvent::Empty(ref e) if e.name() == QName(b"skipped") => { + tc.status = TestStatus::Skipped; + } + XMLEvent::Start(ref e) if e.name() == QName(b"failure") => { + let msg = Message::from_reader(e, r)?; + tc.status = TestStatus::Failure(msg); + } + XMLEvent::Empty(ref e) if e.name() == QName(b"failure") => { + let msg = Message::new_empty(e)?; + tc.status = TestStatus::Failure(msg); + } + XMLEvent::Start(ref e) if e.name() == QName(b"error") => { + let msg = Message::from_reader(e, r)?; + tc.status = TestStatus::Error(msg); + } + XMLEvent::Empty(ref e) if e.name() == QName(b"error") => { + let msg = Message::new_empty(e)?; + tc.status = TestStatus::Error(msg); + } + XMLEvent::Start(ref e) if e.name() == QName(b"system-out") => { + tc.system_out = parse_system(e, r)?; + } + XMLEvent::Start(ref e) if e.name() == QName(b"system-err") => { + tc.system_err = parse_system(e, r)?; + } + XMLEvent::Empty(ref e) if e.name() == QName(b"rerunFailure") => { + tc.retries.push(Retry::new_empty(e)?); + } + XMLEvent::Start(ref e) if e.name() == QName(b"rerunFailure") => { + tc.retries.push(Retry::from_reader(e, r)?); + } + XMLEvent::Empty(ref e) if e.name() == QName(b"flakyFailure") => { + tc.status = TestStatus::Flaky; + tc.retries.push(Retry::new_empty(e)?); + } + XMLEvent::Start(ref e) if e.name() == QName(b"flakyFailure") => { + tc.status = TestStatus::Flaky; + tc.retries.push(Retry::from_reader(e, r)?); + } + XMLEvent::Eof => return Err(XMLError::UnexpectedEof("testcase".to_string()).into()), + _ => (), + } + } + Ok(tc) + } +} + +impl Message { + /// Fill up `self` with attributes from the XML tag + fn parse_attributes(&mut self, e: &XMLBytesStart) -> Result<(), Error> { + for a in e.attributes() { + let a = a?; + if let QName(b"message") = a.key { + self.message = try_from_attribute_value_string(a.value)? + } + } + Ok(()) + } + + /// New [`Message`] from empty XML tag + fn new_empty(e: &XMLBytesStart) -> Result { + let mut tf = Self::default(); + tf.parse_attributes(e)?; + Ok(tf) + } + + /// New [`Message`] from XML tree + fn from_reader(e: &XMLBytesStart, r: &mut XMLReader) -> Result { + let name = e.name(); + let mut msg = Self::default(); + msg.parse_attributes(e)?; + let mut buf = Vec::new(); + loop { + match r.read_event_into(&mut buf) { + Ok(XMLEvent::End(ref e)) if e.name() == name => break, + Ok(XMLEvent::Text(e)) => { + msg.text += e.unescape()?.trim(); + } + Ok(XMLEvent::Eof) => { + return Err(XMLError::UnexpectedEof("failure".to_string()).into()) + } + Err(err) => return Err(err.into()), + _ => (), + } + } + Ok(msg) + } +} + +impl Retry { + /// Fill up `self` with attributes from the XML tag + fn parse_attributes(&mut self, e: &XMLBytesStart) -> Result<(), Error> { + for a in e.attributes() { + let a = a?; + match a.key { + QName(b"time") => self.time = try_from_attribute_value_f64(a.value)?, + QName(b"timestamp") => { + self.timestamp = Some(try_from_attribute_value_timestamp(a.value)?) + } + _ => {} + }; + } + Ok(()) + } + + fn new_empty(e: &XMLBytesStart) -> Result { + let mut rt = Self::default(); + rt.parse_attributes(e)?; + Ok(rt) + } + + fn from_reader(e: &XMLBytesStart, r: &mut XMLReader) -> Result { + let name = e.name(); + let mut rt = Self::default(); + rt.parse_attributes(e)?; + + let mut msg = Message::new_empty(e)?; + let mut buf = Vec::new(); + loop { + match r.read_event_into(&mut buf) { + Ok(XMLEvent::End(ref e)) if e.name() == name => break, + Ok(XMLEvent::Text(e)) => { + msg.text += e.unescape()?.trim(); + } + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"system-out") => { + rt.system_out = parse_system(e, r)?; + } + Ok(XMLEvent::Start(ref e)) if e.name() == QName(b"system-err") => { + rt.system_err = parse_system(e, r)?; + } + Ok(XMLEvent::Eof) => { + return Err(XMLError::UnexpectedEof("failure".to_string()).into()) + } + Err(err) => return Err(err.into()), + _ => (), + } + } + + rt.status = TestStatus::Failure(msg); + Ok(rt) + } +} + /// Try to decode attribute value as [`f64`] fn try_from_attribute_value_f64(value: Cow<[u8]>) -> Result { match str::from_utf8(&value)? { @@ -725,6 +438,13 @@ fn try_from_attribute_value_string(value: Cow<[u8]>) -> Result { Ok(u.to_string()) } +/// Try to decode and unescape attribute value as [`String`] +fn try_from_attribute_value_timestamp(value: Cow<[u8]>) -> Result { + let s = str::from_utf8(&value)?; + let t = OffsetDateTime::parse(s, &time::format_description::well_known::Rfc3339)?; + Ok(t) +} + /// Parse a chunk of xml as system-out or system-err fn parse_system( orig: &XMLBytesStart, @@ -745,7 +465,6 @@ fn parse_system( _ => (), } } - buf.clear(); Ok(res) } @@ -809,3 +528,37 @@ pub fn from_reader(reader: B) -> Result { pub fn from_str(s: &str) -> Result { from_reader(s.as_bytes()) } + +#[cfg(test)] +mod tests { + use std::{fs::File, io::BufReader, path::PathBuf}; + + use once_cell::sync::Lazy; + use path_macro::path; + + use super::*; + + pub static TESTFILES: Lazy = + Lazy::new(|| path!(env!("CARGO_MANIFEST_DIR") / "testfiles")); + + fn parse_test(n: &str) { + let file = File::open(path!(*TESTFILES / format!("{n}.junit.xml"))).unwrap(); + let suites = from_reader(BufReader::new(file)).unwrap(); + insta::assert_json_snapshot!(format!("parse_{n}"), suites); + } + + #[test] + fn parse_simple() { + parse_test("simple") + } + + #[test] + fn parse_vite() { + parse_test("vite") + } + + #[test] + fn parse_retry() { + parse_test("retry") + } +} diff --git a/crates/junit-parser/src/snapshots/junit_parser__tests__parse_retry.snap b/crates/junit-parser/src/snapshots/junit_parser__tests__parse_retry.snap new file mode 100644 index 0000000..925485e --- /dev/null +++ b/crates/junit-parser/src/snapshots/junit_parser__tests__parse_retry.snap @@ -0,0 +1,4776 @@ +--- +source: crates/junit-parser/src/lib.rs +expression: suites +--- +{ + "name": "nextest-run", + "suites": [ + { + "name": "rustypipe", + "timestamp": null, + "cases": [ + { + "name": "rustypipe::client::channel::tests::channel_agegate", + "original_name": "client::channel::tests::channel_agegate", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.887+02:00", + "time": 0.01, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::t_channel_info_ctoken", + "original_name": "client::channel::tests::t_channel_info_ctoken", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.897+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::t_order_ctoken", + "original_name": "client::channel::tests::t_order_ctoken", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.905+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_05_empty", + "original_name": "client::channel::tests::map_channel_videos::case_05_empty", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.888+02:00", + "time": 0.036, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_info", + "original_name": "client::channel::tests::map_channel_info", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.887+02:00", + "time": 0.043, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_02_music", + "original_name": "client::channel::tests::map_channel_videos::case_02_music", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.888+02:00", + "time": 0.061, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_playlists", + "original_name": "client::channel::tests::map_channel_playlists", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.887+02:00", + "time": 0.079, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_12_pageheader", + "original_name": "client::channel::tests::map_channel_videos::case_12_pageheader", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.89+02:00", + "time": 0.085, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_10_shorts", + "original_name": "client::channel::tests::map_channel_videos::case_10_shorts", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.89+02:00", + "time": 0.09, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_04_live", + "original_name": "client::channel::tests::map_channel_videos::case_04_live", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.888+02:00", + "time": 0.093, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_artist::tests::map_music_artist::case_3_no_artist", + "original_name": "client::music_artist::tests::map_music_artist::case_3_no_artist", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.93+02:00", + "time": 0.057, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_11_livestreams", + "original_name": "client::channel::tests::map_channel_videos::case_11_livestreams", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.89+02:00", + "time": 0.107, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_08_richgrid2", + "original_name": "client::channel::tests::map_channel_videos::case_08_richgrid2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.889+02:00", + "time": 0.108, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_01_base", + "original_name": "client::channel::tests::map_channel_videos::case_01_base", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.887+02:00", + "time": 0.111, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_07_richgrid", + "original_name": "client::channel::tests::map_channel_videos::case_07_richgrid", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.889+02:00", + "time": 0.111, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_13_pageheader2", + "original_name": "client::channel::tests::map_channel_videos::case_13_pageheader2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.891+02:00", + "time": 0.118, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_artist::tests::map_music_artist_secondary_channel", + "original_name": "client::music_artist::tests::map_music_artist_secondary_channel", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.975+02:00", + "time": 0.036, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_03_withshorts", + "original_name": "client::channel::tests::map_channel_videos::case_03_withshorts", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.888+02:00", + "time": 0.125, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_06_upcoming", + "original_name": "client::channel::tests::map_channel_videos::case_06_upcoming", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.889+02:00", + "time": 0.131, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_artist::tests::map_music_artist::case_2_only_singles", + "original_name": "client::music_artist::tests::map_music_artist::case_2_only_singles", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.925+02:00", + "time": 0.096, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_09_coachella", + "original_name": "client::channel::tests::map_channel_videos::case_09_coachella", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.889+02:00", + "time": 0.134, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_details::tests::map_lyrics", + "original_name": "client::music_details::tests::map_lyrics", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.988+02:00", + "time": 0.039, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_details::tests::map_music_details::case_1_mv", + "original_name": "client::music_details::tests::map_music_details::case_1_mv", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.997+02:00", + "time": 0.042, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_details::tests::map_music_details::case_2_track", + "original_name": "client::music_details::tests::map_music_details::case_2_track", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.997+02:00", + "time": 0.056, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_genres::tests::map_music_genres", + "original_name": "client::music_genres::tests::map_music_genres", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.02+02:00", + "time": 0.038, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_new::tests::map_music_new_videos::case_1_default", + "original_name": "client::music_new::tests::map_music_new_videos::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.023+02:00", + "time": 0.074, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_album::case_3_single", + "original_name": "client::music_playlist::tests::map_music_album::case_3_single", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.058+02:00", + "time": 0.042, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_details::tests::map_music_radio::case_1_mv", + "original_name": "client::music_details::tests::map_music_radio::case_1_mv", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.998+02:00", + "time": 0.114, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_album::case_2_various_artists", + "original_name": "client::music_playlist::tests::map_music_album::case_2_various_artists", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.053+02:00", + "time": 0.064, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_details::tests::map_music_radio::case_2_track", + "original_name": "client::music_details::tests::map_music_radio::case_2_track", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34+02:00", + "time": 0.126, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_artist::tests::map_music_artist_no_cont", + "original_name": "client::music_artist::tests::map_music_artist_no_cont", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.966+02:00", + "time": 0.166, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_album::case_1_one_artist", + "original_name": "client::music_playlist::tests::map_music_album::case_1_one_artist", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.039+02:00", + "time": 0.095, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_details::tests::map_related", + "original_name": "client::music_details::tests::map_related", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.009+02:00", + "time": 0.134, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_album::case_7_two_columns", + "original_name": "client::music_playlist::tests::map_music_album::case_7_two_columns", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.117+02:00", + "time": 0.053, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_album::case_5_unavailable", + "original_name": "client::music_playlist::tests::map_music_album::case_5_unavailable", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.1+02:00", + "time": 0.076, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_album::case_4_description", + "original_name": "client::music_playlist::tests::map_music_album::case_4_description", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.098+02:00", + "time": 0.079, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_album::case_6_unavailable", + "original_name": "client::music_playlist::tests::map_music_album::case_6_unavailable", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.112+02:00", + "time": 0.084, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_artist::tests::map_music_artist::case_4_only_more_singles", + "original_name": "client::music_artist::tests::map_music_artist::case_4_only_more_singles", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.949+02:00", + "time": 0.255, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_playlist::case_3_nomusic", + "original_name": "client::music_playlist::tests::map_music_playlist::case_3_nomusic", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.134+02:00", + "time": 0.092, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_charts::tests::map_music_charts::case_1_default", + "original_name": "client::music_charts::tests::map_music_charts::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.98+02:00", + "time": 0.249, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_artists", + "original_name": "client::music_search::tests::map_music_search_artists", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.177+02:00", + "time": 0.056, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_playlist::case_5_n_album", + "original_name": "client::music_playlist::tests::map_music_playlist::case_5_n_album", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.169+02:00", + "time": 0.078, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_albums", + "original_name": "client::music_search::tests::map_music_search_albums", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.175+02:00", + "time": 0.092, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_main::case_1_default", + "original_name": "client::music_search::tests::map_music_search_main::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.195+02:00", + "time": 0.077, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_main::case_2_typo", + "original_name": "client::music_search::tests::map_music_search_main::case_2_typo", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.204+02:00", + "time": 0.076, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_charts::tests::map_music_charts::case_2_us", + "original_name": "client::music_charts::tests::map_music_charts::case_2_us", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.982+02:00", + "time": 0.3, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_main::case_3_radio", + "original_name": "client::music_search::tests::map_music_search_main::case_3_radio", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.226+02:00", + "time": 0.079, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_new::tests::map_music_new_videos::case_2_default", + "original_name": "client::music_new::tests::map_music_new_videos::case_2_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.026+02:00", + "time": 0.28, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_artist::tests::map_music_artist::case_1_default", + "original_name": "client::music_artist::tests::map_music_artist::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:33.913+02:00", + "time": 0.398, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_main::case_4_artist", + "original_name": "client::music_search::tests::map_music_search_main::case_4_artist", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.229+02:00", + "time": 0.082, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_suggestion::case_2_empty", + "original_name": "client::music_search::tests::map_music_search_suggestion::case_2_empty", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.272+02:00", + "time": 0.039, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_suggestion::case_1_default", + "original_name": "client::music_search::tests::map_music_search_suggestion::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.267+02:00", + "time": 0.063, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_playlists::case_1_ytm", + "original_name": "client::music_search::tests::map_music_search_playlists::case_1_ytm", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.233+02:00", + "time": 0.102, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_playlists::case_2_community", + "original_name": "client::music_search::tests::map_music_search_playlists::case_2_community", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.247+02:00", + "time": 0.089, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_tracks::case_4_no_artist_link", + "original_name": "client::music_search::tests::map_music_search_tracks::case_4_no_artist_link", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.307+02:00", + "time": 0.062, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_tracks::case_2_typo", + "original_name": "client::music_search::tests::map_music_search_tracks::case_2_typo", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.281+02:00", + "time": 0.095, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_music_playlists::case_1_playlist_related", + "original_name": "client::pagination::tests::map_continuation_music_playlists::case_1_playlist_related", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.33+02:00", + "time": 0.059, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_tracks::case_1_default", + "original_name": "client::music_search::tests::map_music_search_tracks::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.28+02:00", + "time": 0.109, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_items::case_1_search", + "original_name": "client::pagination::tests::map_continuation_items::case_1_search", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.311+02:00", + "time": 0.083, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_tracks::case_3_videos", + "original_name": "client::music_search::tests::map_music_search_tracks::case_3_videos", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.305+02:00", + "time": 0.09, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::player::tests::cipher_to_url", + "original_name": "client::player::tests::cipher_to_url", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.395+02:00", + "time": 0.011, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_playlists::case_1_channel_playlists", + "original_name": "client::pagination::tests::map_continuation_playlists::case_1_channel_playlists", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.335+02:00", + "time": 0.071, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_genres::tests::map_music_genre::case_2_mood", + "original_name": "client::music_genres::tests::map_music_genre::case_2_mood", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.013+02:00", + "time": 0.401, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_playlist::case_1_short", + "original_name": "client::music_playlist::tests::map_music_playlist::case_1_short", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.126+02:00", + "time": 0.288, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_items::case_3_recommendations", + "original_name": "client::pagination::tests::map_continuation_items::case_3_recommendations", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.312+02:00", + "time": 0.103, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_items::case_2_startpage", + "original_name": "client::pagination::tests::map_continuation_items::case_2_startpage", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.312+02:00", + "time": 0.119, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_tracks::case_2_search_tracks", + "original_name": "client::pagination::tests::map_continuation_tracks::case_2_search_tracks", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.368+02:00", + "time": 0.077, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_genres::tests::map_music_genre::case_1_default", + "original_name": "client::music_genres::tests::map_music_genre::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.011+02:00", + "time": 0.44, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_playlist::case_2_long", + "original_name": "client::music_playlist::tests::map_music_playlist::case_2_long", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.132+02:00", + "time": 0.338, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::player::tests::map_player_data::case_5_ios", + "original_name": "client::player::tests::map_player_data::case_5_ios", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.414+02:00", + "time": 0.059, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_videos::case_1_channel_videos", + "original_name": "client::pagination::tests::map_continuation_videos::case_1_channel_videos", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.389+02:00", + "time": 0.087, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::player::tests::map_player_data::case_1_desktop", + "original_name": "client::player::tests::map_player_data::case_1_desktop", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.395+02:00", + "time": 0.083, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::response::music_item::tests::map_album_type_samples", + "original_name": "client::response::music_item::tests::map_album_type_samples", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.47+02:00", + "time": 0.014, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_playlist::case_4_two_columns", + "original_name": "client::music_playlist::tests::map_music_playlist::case_4_two_columns", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.143+02:00", + "time": 0.344, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_tracks::case_3_radio_tracks", + "original_name": "client::pagination::tests::map_continuation_tracks::case_3_radio_tracks", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.376+02:00", + "time": 0.114, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::player::tests::map_player_data::case_4_android", + "original_name": "client::player::tests::map_player_data::case_4_android", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.413+02:00", + "time": 0.084, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::player::tests::map_player_data::case_2_desktop_music", + "original_name": "client::player::tests::map_player_data::case_2_desktop_music", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.405+02:00", + "time": 0.098, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::player::tests::map_player_data::case_3_tv_html5_embed", + "original_name": "client::player::tests::map_player_data::case_3_tv_html5_embed", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.406+02:00", + "time": 0.108, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::search::tests::t_map_search::case_3_empty", + "original_name": "client::search::tests::t_map_search::case_3_empty", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.478+02:00", + "time": 0.061, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::search::tests::t_map_search::case_4_ab3_channel_handles", + "original_name": "client::search::tests::t_map_search::case_4_ab3_channel_handles", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.484+02:00", + "time": 0.064, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_new::tests::map_music_new_albums::case_1_default", + "original_name": "client::music_new::tests::map_music_new_albums::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.021+02:00", + "time": 0.535, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::search::tests::t_map_search::case_2_playlists", + "original_name": "client::search::tests::t_map_search::case_2_playlists", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.476+02:00", + "time": 0.09, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_videos::case_2_playlist", + "original_name": "client::pagination::tests::map_continuation_videos::case_2_playlist", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.39+02:00", + "time": 0.184, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::playlist::tests::map_playlist_data::case_3_nomusic", + "original_name": "client::playlist::tests::map_playlist_data::case_3_nomusic", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.446+02:00", + "time": 0.153, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_tracks::case_1_playlist_tracks", + "original_name": "client::pagination::tests::map_continuation_tracks::case_1_playlist_tracks", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.336+02:00", + "time": 0.267, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_comments::case_4_frameworkupd_reply", + "original_name": "client::video_details::tests::map_comments::case_4_frameworkupd_reply", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.574+02:00", + "time": 0.054, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::playlist::tests::map_playlist_data::case_1_short", + "original_name": "client::playlist::tests::map_playlist_data::case_1_short", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.415+02:00", + "time": 0.214, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_comments::case_2_latest", + "original_name": "client::video_details::tests::map_comments::case_2_latest", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.555+02:00", + "time": 0.079, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_comments::case_1_top", + "original_name": "client::video_details::tests::map_comments::case_1_top", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.548+02:00", + "time": 0.09, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::search::tests::t_map_search::case_1_default", + "original_name": "client::search::tests::t_map_search::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.473+02:00", + "time": 0.167, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::trends::tests::map_startpage", + "original_name": "client::trends::tests::map_startpage", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.503+02:00", + "time": 0.145, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_comments::case_3_frameworkupd", + "original_name": "client::video_details::tests::map_comments::case_3_frameworkupd", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.566+02:00", + "time": 0.088, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::playlist::tests::map_playlist_data::case_2_long", + "original_name": "client::playlist::tests::map_playlist_data::case_2_long", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.43+02:00", + "time": 0.227, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::trends::tests::map_trending::case_2_page_header_renderer", + "original_name": "client::trends::tests::map_trending::case_2_page_header_renderer", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.539+02:00", + "time": 0.128, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::playlist::tests::map_playlist_data::case_4_live", + "original_name": "client::playlist::tests::map_playlist_data::case_4_live", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.451+02:00", + "time": 0.226, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details_not_found", + "original_name": "client::video_details::tests::map_video_details_not_found", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.668+02:00", + "time": 0.011, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_06_agegate", + "original_name": "client::video_details::tests::map_video_details::case_06_agegate", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.638+02:00", + "time": 0.043, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_02_music", + "original_name": "client::video_details::tests::map_video_details::case_02_music", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.603+02:00", + "time": 0.08, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_01_mv", + "original_name": "client::video_details::tests::map_video_details::case_01_mv", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.599+02:00", + "time": 0.086, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_deobfuscate_nsig", + "original_name": "deobfuscate::tests::t_deobfuscate_nsig", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.677+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_deobfuscate_sig", + "original_name": "deobfuscate::tests::t_deobfuscate_sig", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.679+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_extract_js_fn", + "original_name": "deobfuscate::tests::t_extract_js_fn", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.681+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_extract_js_fn_eviljs", + "original_name": "deobfuscate::tests::t_extract_js_fn_eviljs", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.683+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_get_nsig_fn_name", + "original_name": "deobfuscate::tests::t_get_nsig_fn_name", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.686+02:00", + "time": 0.012, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_get_nsig_fn", + "original_name": "deobfuscate::tests::t_get_nsig_fn", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.685+02:00", + "time": 0.014, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_get_sts", + "original_name": "deobfuscate::tests::t_get_sts", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.698+02:00", + "time": 0.011, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_03_ccommons", + "original_name": "client::video_details::tests::map_video_details::case_03_ccommons", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.628+02:00", + "time": 0.087, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::tests::t_extract_desktop_client_version", + "original_name": "client::tests::t_extract_desktop_client_version", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.487+02:00", + "time": 0.235, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_05_live", + "original_name": "client::video_details::tests::map_video_details::case_05_live", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.635+02:00", + "time": 0.092, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_07_ab_newdesc", + "original_name": "client::video_details::tests::map_video_details::case_07_ab_newdesc", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.64+02:00", + "time": 0.088, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_08_ab_new_cont", + "original_name": "client::video_details::tests::map_video_details::case_08_ab_new_cont", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.648+02:00", + "time": 0.091, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_04_chapters", + "original_name": "client::video_details::tests::map_video_details::case_04_chapters", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.629+02:00", + "time": 0.114, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::model::richtext::tests::to_html", + "original_name": "model::richtext::tests::to_html", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.709+02:00", + "time": 0.045, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::model::richtext::tests::to_markdown", + "original_name": "model::richtext::tests::to_markdown", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.714+02:00", + "time": 0.04, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_09_ab_no_recommends", + "original_name": "client::video_details::tests::map_video_details::case_09_ab_no_recommends", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.654+02:00", + "time": 0.116, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_10_ab_new_likes", + "original_name": "client::video_details::tests::map_video_details::case_10_ab_new_likes", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.657+02:00", + "time": 0.121, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_03", + "original_name": "param::search_filter::tests::t_filter::case_03", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.739+02:00", + "time": 0.043, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_01", + "original_name": "param::search_filter::tests::t_filter::case_01", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.727+02:00", + "time": 0.056, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_07", + "original_name": "param::search_filter::tests::t_filter::case_07", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.769+02:00", + "time": 0.013, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_06", + "original_name": "param::search_filter::tests::t_filter::case_06", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.755+02:00", + "time": 0.03, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_02", + "original_name": "param::search_filter::tests::t_filter::case_02", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.728+02:00", + "time": 0.056, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_04", + "original_name": "param::search_filter::tests::t_filter::case_04", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.743+02:00", + "time": 0.041, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_05", + "original_name": "param::search_filter::tests::t_filter::case_05", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.754+02:00", + "time": 0.03, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_08", + "original_name": "param::search_filter::tests::t_filter::case_08", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.778+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_10", + "original_name": "param::search_filter::tests::t_filter::case_10", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.783+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_11", + "original_name": "param::search_filter::tests::t_filter::case_11", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.784+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_09", + "original_name": "param::search_filter::tests::t_filter::case_09", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.783+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_13", + "original_name": "param::search_filter::tests::t_filter::case_13", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.785+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_15", + "original_name": "param::search_filter::tests::t_filter::case_15", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.786+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_14", + "original_name": "param::search_filter::tests::t_filter::case_14", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.786+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_12", + "original_name": "param::search_filter::tests::t_filter::case_12", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.785+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_16", + "original_name": "param::search_filter::tests::t_filter::case_16", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.786+02:00", + "time": 0.01, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_17", + "original_name": "param::search_filter::tests::t_filter::case_17", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.791+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_get_sig_fn_name", + "original_name": "deobfuscate::tests::t_get_sig_fn_name", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.69+02:00", + "time": 0.108, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_18", + "original_name": "param::search_filter::tests::t_filter::case_18", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.791+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_20", + "original_name": "param::search_filter::tests::t_filter::case_20", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.793+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_19", + "original_name": "param::search_filter::tests::t_filter::case_19", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.792+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_22", + "original_name": "param::search_filter::tests::t_filter::case_22", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.793+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::tests::t_get_visitor_data", + "original_name": "client::tests::t_get_visitor_data", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.497+02:00", + "time": 0.305, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_21", + "original_name": "param::search_filter::tests::t_filter::case_21", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.793+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_23", + "original_name": "param::search_filter::tests::t_filter::case_23", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.794+02:00", + "time": 0.012, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_get_player_js_url", + "original_name": "deobfuscate::tests::t_get_player_js_url", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.687+02:00", + "time": 0.119, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::model::richtext::tests::to_plaintext", + "original_name": "model::richtext::tests::to_plaintext", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.722+02:00", + "time": 0.089, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_get_sig_fn", + "original_name": "deobfuscate::tests::t_get_sig_fn", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.69+02:00", + "time": 0.122, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::tests::t_extract_music_client_version", + "original_name": "client::tests::t_extract_music_client_version", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.49+02:00", + "time": 0.324, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_audio_stream::case_1_default", + "original_name": "param::stream_filter::tests::t_select_audio_stream::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.796+02:00", + "time": 0.018, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_audio_stream::case_2_bitrate", + "original_name": "param::stream_filter::tests::t_select_audio_stream::case_2_bitrate", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.798+02:00", + "time": 0.02, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_audio_stream::case_3_m4a_format", + "original_name": "param::stream_filter::tests::t_select_audio_stream::case_3_m4a_format", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.798+02:00", + "time": 0.02, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_audio_stream::case_4_m4a_codec", + "original_name": "param::stream_filter::tests::t_select_audio_stream::case_4_m4a_codec", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.799+02:00", + "time": 0.019, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_audio_stream::case_6_br_fallback", + "original_name": "param::stream_filter::tests::t_select_audio_stream::case_6_br_fallback", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.8+02:00", + "time": 0.02, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_audio_stream::case_5_french", + "original_name": "param::stream_filter::tests::t_select_audio_stream::case_5_french", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.8+02:00", + "time": 0.02, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_audio_stream::case_8_noformat", + "original_name": "param::stream_filter::tests::t_select_audio_stream::case_8_noformat", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.802+02:00", + "time": 0.021, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_audio_stream::case_7_lang_fallback", + "original_name": "param::stream_filter::tests::t_select_audio_stream::case_7_lang_fallback", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.801+02:00", + "time": 0.023, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_audio_stream::case_1_default", + "original_name": "param::stream_filter::tests::t_select_video_audio_stream::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.806+02:00", + "time": 0.018, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_audio_stream::case_9_nocodec", + "original_name": "param::stream_filter::tests::t_select_audio_stream::case_9_nocodec", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.805+02:00", + "time": 0.019, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_audio_stream::case_2_webm", + "original_name": "param::stream_filter::tests::t_select_video_audio_stream::case_2_webm", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.807+02:00", + "time": 0.022, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_audio_stream::case_3_noaudio", + "original_name": "param::stream_filter::tests::t_select_video_audio_stream::case_3_noaudio", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.811+02:00", + "time": 0.017, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_audio_stream::case_4_novideo", + "original_name": "param::stream_filter::tests::t_select_video_audio_stream::case_4_novideo", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.812+02:00", + "time": 0.017, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_audio_stream::case_5_noformat", + "original_name": "param::stream_filter::tests::t_select_video_audio_stream::case_5_noformat", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.814+02:00", + "time": 0.016, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_only_stream::case_2_hdr", + "original_name": "param::stream_filter::tests::t_select_video_only_stream::case_2_hdr", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.818+02:00", + "time": 0.015, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_only_stream::case_3_resolution", + "original_name": "param::stream_filter::tests::t_select_video_only_stream::case_3_resolution", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.819+02:00", + "time": 0.014, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_only_stream::case_4_resolution_fps", + "original_name": "param::stream_filter::tests::t_select_video_only_stream::case_4_resolution_fps", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.82+02:00", + "time": 0.014, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_only_stream::case_6_webm_format", + "original_name": "param::stream_filter::tests::t_select_video_only_stream::case_6_webm_format", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.821+02:00", + "time": 0.015, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::tests::t_ignore_any", + "original_name": "serializer::tests::t_ignore_any", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.827+02:00", + "time": 0.01, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_only_stream::case_5_res_fallback", + "original_name": "param::stream_filter::tests::t_select_video_only_stream::case_5_res_fallback", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.82+02:00", + "time": 0.017, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_only_stream::case_1_default", + "original_name": "param::stream_filter::tests::t_select_video_only_stream::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.815+02:00", + "time": 0.022, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_only_stream::case_7_vp9_codec", + "original_name": "param::stream_filter::tests::t_select_video_only_stream::case_7_vp9_codec", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.824+02:00", + "time": 0.019, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_only_stream::case_8_noformat", + "original_name": "param::stream_filter::tests::t_select_video_only_stream::case_8_noformat", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.825+02:00", + "time": 0.018, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_only_stream::case_9_nocodec", + "original_name": "param::stream_filter::tests::t_select_video_only_stream::case_9_nocodec", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.827+02:00", + "time": 0.016, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_deserialize_text::case_2", + "original_name": "serializer::text::tests::t_deserialize_text::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.833+02:00", + "time": 0.01, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_deserialize_text::case_1", + "original_name": "serializer::text::tests::t_deserialize_text::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.831+02:00", + "time": 0.012, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_deserialize_text::case_3", + "original_name": "serializer::text::tests::t_deserialize_text::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.834+02:00", + "time": 0.012, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_deserialize_text::case_4", + "original_name": "serializer::text::tests::t_deserialize_text::case_4", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.836+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_links_empty", + "original_name": "serializer::text::tests::t_links_empty", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.844+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::trends::tests::map_trending::case_1_base", + "original_name": "client::trends::tests::map_trending::case_1_base", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.514+02:00", + "time": 0.342, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::split_text_cmp", + "original_name": "serializer::text::tests::split_text_cmp", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.829+02:00", + "time": 0.033, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::parse_language::case_2", + "original_name": "util::tests::parse_language::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.852+02:00", + "time": 0.01, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::protobuf::tests::t_parse_proto", + "original_name": "util::protobuf::tests::t_parse_proto", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.845+02:00", + "time": 0.017, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::styled_comment", + "original_name": "serializer::text::tests::styled_comment", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.829+02:00", + "time": 0.034, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::parse_language::case_1", + "original_name": "util::tests::parse_language::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.849+02:00", + "time": 0.015, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::parse_language::case_3", + "original_name": "util::tests::parse_language::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.855+02:00", + "time": 0.01, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_link_channel", + "original_name": "serializer::text::tests::t_link_channel", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.837+02:00", + "time": 0.033, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::parse_language::case_5", + "original_name": "util::tests::parse_language::case_5", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.862+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::parse_language::case_6", + "original_name": "util::tests::parse_language::case_6", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.863+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::split_words", + "original_name": "util::tests::split_words", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.863+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::split_char", + "original_name": "util::tests::split_char", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.863+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_attributed_description", + "original_name": "serializer::text::tests::t_attributed_description", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.83+02:00", + "time": 0.044, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::parse_language::case_4", + "original_name": "util::tests::parse_language::case_4", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.862+02:00", + "time": 0.012, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_link_album", + "original_name": "serializer::text::tests::t_link_album", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.837+02:00", + "time": 0.041, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_link_video", + "original_name": "serializer::text::tests::t_link_video", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.842+02:00", + "time": 0.036, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::vec_log_err::tests::skip_error", + "original_name": "serializer::vec_log_err::tests::skip_error", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.844+02:00", + "time": 0.034, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_links_artists", + "original_name": "serializer::text::tests::t_links_artists", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.844+02:00", + "time": 0.034, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_link_none", + "original_name": "serializer::text::tests::t_link_none", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.838+02:00", + "time": 0.04, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_country_from_name::case_1", + "original_name": "util::tests::t_country_from_name::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.866+02:00", + "time": 0.013, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_country_from_name::case_3", + "original_name": "util::tests::t_country_from_name::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.872+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_large_numstr::case_1", + "original_name": "util::tests::t_parse_large_numstr::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.872+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_country_from_name::case_2", + "original_name": "util::tests::t_country_from_name::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.87+02:00", + "time": 0.011, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_large_numstr::case_3", + "original_name": "util::tests::t_parse_large_numstr::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.873+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_link_web", + "original_name": "serializer::text::tests::t_link_web", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.843+02:00", + "time": 0.038, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_large_numstr::case_2", + "original_name": "util::tests::t_parse_large_numstr::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.872+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_large_numstr::case_4", + "original_name": "util::tests::t_parse_large_numstr::case_4", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.874+02:00", + "time": 0.012, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_large_numstr::case_5", + "original_name": "util::tests::t_parse_large_numstr::case_5", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.877+02:00", + "time": 0.01, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::vec_log_err::tests::log_error", + "original_name": "serializer::vec_log_err::tests::log_error", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.844+02:00", + "time": 0.044, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_large_numstr::case_7", + "original_name": "util::tests::t_parse_large_numstr::case_7", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.878+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_num::case_2", + "original_name": "util::tests::t_parse_num::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.879+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_num::case_1", + "original_name": "util::tests::t_parse_num::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.879+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_numeric_vec::case_2", + "original_name": "util::tests::t_parse_numeric_vec::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.881+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_numeric_vec::case_1", + "original_name": "util::tests::t_parse_numeric_vec::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.88+02:00", + "time": 0.011, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_large_numstr::case_6", + "original_name": "util::tests::t_parse_large_numstr::case_6", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.878+02:00", + "time": 0.012, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_video_length::case_4", + "original_name": "util::tests::t_parse_video_length::case_4", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.884+02:00", + "time": 0.012, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_numeric_vec::case_3", + "original_name": "util::tests::t_parse_numeric_vec::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.881+02:00", + "time": 0.015, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_video_length::case_1", + "original_name": "util::tests::t_parse_video_length::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.882+02:00", + "time": 0.015, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_retry_delay::case_3", + "original_name": "util::tests::t_retry_delay::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.889+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_retry_delay::case_1", + "original_name": "util::tests::t_retry_delay::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.888+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_video_length::case_2", + "original_name": "util::tests::t_parse_video_length::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.882+02:00", + "time": 0.015, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_sanitize_yt_url::case_1", + "original_name": "util::tests::t_sanitize_yt_url::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.89+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_retry_delay::case_2", + "original_name": "util::tests::t_retry_delay::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.888+02:00", + "time": 0.011, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_sanitize_yt_url::case_2", + "original_name": "util::tests::t_sanitize_yt_url::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.891+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_retry_delay::case_4", + "original_name": "util::tests::t_retry_delay::case_4", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.889+02:00", + "time": 0.011, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_video_length::case_3", + "original_name": "util::tests::t_parse_video_length::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.882+02:00", + "time": 0.017, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_video_length::case_6", + "original_name": "util::tests::t_parse_video_length::case_6", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.887+02:00", + "time": 0.013, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_video_length::case_5", + "original_name": "util::tests::t_parse_video_length::case_5", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.886+02:00", + "time": 0.019, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_sanitize_yt_url::case_3", + "original_name": "util::tests::t_sanitize_yt_url::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.892+02:00", + "time": 0.014, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_vec_try_swap_remove", + "original_name": "util::tests::t_vec_try_swap_remove", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.898+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_sanitize_yt_url::case_4", + "original_name": "util::tests::t_sanitize_yt_url::case_4", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.897+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_vec_try_remove", + "original_name": "util::tests::t_vec_try_remove", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.897+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse::case_1_de", + "original_name": "util::timeago::tests::t_parse::case_1_de", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.898+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse::case_3_nbsp", + "original_name": "util::timeago::tests::t_parse::case_3_nbsp", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.899+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse::case_2_ar", + "original_name": "util::timeago::tests::t_parse::case_2_ar", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.898+02:00", + "time": 0.011, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_date::case_2", + "original_name": "util::timeago::tests::t_parse_date::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.9+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_date::case_4", + "original_name": "util::timeago::tests::t_parse_date::case_4", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.901+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_date::case_3", + "original_name": "util::timeago::tests::t_parse_date::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.901+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_date::case_1", + "original_name": "util::timeago::tests::t_parse_date::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.9+02:00", + "time": 0.01, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_date::case_5", + "original_name": "util::timeago::tests::t_parse_date::case_5", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.901+02:00", + "time": 0.011, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_date::case_6", + "original_name": "util::timeago::tests::t_parse_date::case_6", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.905+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_video_duration2::case_1", + "original_name": "util::timeago::tests::t_parse_video_duration2::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.907+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_video_duration2::case_4", + "original_name": "util::timeago::tests::t_parse_video_duration2::case_4", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.908+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_video_duration2::case_3", + "original_name": "util::timeago::tests::t_parse_video_duration2::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.907+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_video_duration2::case_5", + "original_name": "util::timeago::tests::t_parse_video_duration2::case_5", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.908+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_to_datetime", + "original_name": "util::timeago::tests::t_to_datetime", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.911+02:00", + "time": 0.006, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_video_duration2::case_2", + "original_name": "util::timeago::tests::t_parse_video_duration2::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.907+02:00", + "time": 0.01, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_date_samples", + "original_name": "util::timeago::tests::t_parse_date_samples", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.906+02:00", + "time": 0.024, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_timeago_table", + "original_name": "util::timeago::tests::t_timeago_table", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.91+02:00", + "time": 0.024, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_testfile_short", + "original_name": "util::timeago::tests::t_testfile_short", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.91+02:00", + "time": 0.028, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_testfile", + "original_name": "util::timeago::tests::t_testfile", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.91+02:00", + "time": 0.033, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_video_duration", + "original_name": "util::timeago::tests::t_parse_video_duration", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.906+02:00", + "time": 0.073, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_large_numstr_samples", + "original_name": "util::tests::t_parse_large_numstr_samples", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.879+02:00", + "time": 0.248, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_update", + "original_name": "deobfuscate::tests::t_update", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:31:34.699+02:00", + "time": 1.823, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + } + ], + "time": 0.0, + "tests": 248, + "errors": 0, + "failures": 0, + "skipped": 0, + "flaky": 0 + }, + { + "name": "rustypipe::youtube", + "timestamp": null, + "cases": [ + { + "name": "rustypipe::youtube::channel_more::case_1_artist", + "original_name": "channel_more::case_1_artist", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:34.915+02:00", + "time": 0.117, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_not_found::case_1_not_exist", + "original_name": "channel_not_found::case_1_not_exist", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:34.923+02:00", + "time": 0.132, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_not_found::case_2_gaming", + "original_name": "channel_not_found::case_2_gaming", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:34.93+02:00", + "time": 0.134, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_not_found::case_3_movies", + "original_name": "channel_not_found::case_3_movies", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:34.934+02:00", + "time": 0.136, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_info", + "original_name": "channel_info", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:34.914+02:00", + "time": 0.159, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_more::case_4_music", + "original_name": "channel_more::case_4_music", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:34.917+02:00", + "time": 0.158, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_age_restriction", + "original_name": "channel_age_restriction", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:34.912+02:00", + "time": 0.194, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_livestreams", + "original_name": "channel_livestreams", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:34.914+02:00", + "time": 0.326, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_more::case_3_livestream", + "original_name": "channel_more::case_3_livestream", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:34.916+02:00", + "time": 0.371, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_order_latest::case_3_shorts", + "original_name": "channel_order_latest::case_3_shorts", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.065+02:00", + "time": 0.252, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_more::case_2_shorts", + "original_name": "channel_more::case_2_shorts", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:34.915+02:00", + "time": 0.413, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_not_found::case_6_live", + "original_name": "channel_not_found::case_6_live", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:34.98+02:00", + "time": 0.381, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_not_found::case_5_learning", + "original_name": "channel_not_found::case_5_learning", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:34.942+02:00", + "time": 0.452, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_order_popular::case_3_shorts", + "original_name": "channel_order_popular::case_3_shorts", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.127+02:00", + "time": 0.293, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_order_latest::case_1_videos", + "original_name": "channel_order_latest::case_1_videos", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.032+02:00", + "time": 0.396, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_order_oldest::case_1_videos", + "original_name": "channel_order_oldest::case_1_videos", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.07+02:00", + "time": 0.423, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_order_oldest::case_2_live", + "original_name": "channel_order_oldest::case_2_live", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.073+02:00", + "time": 0.436, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::ab3_search_channel_handles", + "original_name": "ab3_search_channel_handles", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:34.911+02:00", + "time": 0.608, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_tab_not_found::case_2_live", + "original_name": "channel_tab_not_found::case_2_live", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.36+02:00", + "time": 0.164, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_not_found::case_4_sports", + "original_name": "channel_not_found::case_4_sports", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:34.938+02:00", + "time": 0.598, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_order_latest::case_2_live", + "original_name": "channel_order_latest::case_2_live", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.055+02:00", + "time": 0.484, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_order_popular::case_1_videos", + "original_name": "channel_order_popular::case_1_videos", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.075+02:00", + "time": 0.474, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_tab_not_found::case_1_shorts", + "original_name": "channel_tab_not_found::case_1_shorts", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.328+02:00", + "time": 0.221, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_shorts", + "original_name": "channel_shorts", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.317+02:00", + "time": 0.237, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player::case_1_music", + "original_name": "get_player::case_1_music", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.42+02:00", + "time": 0.172, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_order_popular::case_2_live", + "original_name": "channel_order_popular::case_2_live", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.107+02:00", + "time": 0.489, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player::case_2_hdr", + "original_name": "get_player::case_2_hdr", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.428+02:00", + "time": 0.203, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_error::case_1_not_found", + "original_name": "get_player_error::case_1_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.536+02:00", + "time": 0.123, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_error::case_2_deleted", + "original_name": "get_player_error::case_2_deleted", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.539+02:00", + "time": 0.128, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player::case_4_live", + "original_name": "get_player::case_4_live", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.509+02:00", + "time": 0.161, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_error::case_3_censored", + "original_name": "get_player_error::case_3_censored", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.549+02:00", + "time": 0.128, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_playlists", + "original_name": "channel_playlists", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.24+02:00", + "time": 0.466, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player::case_3_multilanguage", + "original_name": "get_player::case_3_multilanguage", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.493+02:00", + "time": 0.221, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player::case_5_was_live", + "original_name": "get_player::case_5_was_live", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.52+02:00", + "time": 0.197, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_error::case_5_private", + "original_name": "get_player_error::case_5_private", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.554+02:00", + "time": 0.165, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_error::case_4_geoblock", + "original_name": "get_player_error::case_4_geoblock", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.55+02:00", + "time": 0.189, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_error::case_8_members_only", + "original_name": "get_player_error::case_8_members_only", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.631+02:00", + "time": 0.148, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_error::case_7_premium_only", + "original_name": "get_player_error::case_7_premium_only", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.596+02:00", + "time": 0.22, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player::case_6_agelimit", + "original_name": "get_player::case_6_agelimit", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.524+02:00", + "time": 0.299, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_error::case_6_age_restricted", + "original_name": "get_player_error::case_6_age_restricted", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.592+02:00", + "time": 0.25, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_error_paid", + "original_name": "get_player_error_paid", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.659+02:00", + "time": 0.228, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_videos", + "original_name": "channel_videos", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.394+02:00", + "time": 0.511, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_playlist::case_2_nomusic", + "original_name": "get_playlist::case_2_nomusic", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.717+02:00", + "time": 0.212, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_from_client::case_3_android", + "original_name": "get_player_from_client::case_3_android", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.677+02:00", + "time": 0.382, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_from_client::case_2_tv_html5_embed", + "original_name": "get_player_from_client::case_2_tv_html5_embed", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.67+02:00", + "time": 0.412, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_from_client::case_1_desktop", + "original_name": "get_player_from_client::case_1_desktop", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.667+02:00", + "time": 0.5, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_video_details_not_found", + "original_name": "get_video_details_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.06+02:00", + "time": 0.114, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::invalid_ctoken::case_1_desktop", + "original_name": "invalid_ctoken::case_1_desktop", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.082+02:00", + "time": 0.1, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_playlist::case_3_live", + "original_name": "get_playlist::case_3_live", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.72+02:00", + "time": 0.48, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_playlist::case_1_long", + "original_name": "get_playlist::case_1_long", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.714+02:00", + "time": 0.516, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::invalid_ctoken::case_2_music", + "original_name": "invalid_ctoken::case_2_music", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.167+02:00", + "time": 0.122, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_from_client::case_4_ios", + "original_name": "get_player_from_client::case_4_ios", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.706+02:00", + "time": 0.206, + "status": { + "Failure": { + "message": "", + "text": "thread 'get_player_from_client::case_4_ios' panicked at\n tests/youtube.rs:71:14:\n video #247\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace" + } + }, + "system_out": "\n running 1 test\n test get_player_from_client::case_4_ios ... FAILED\n\n failures:\n\n failures:\n get_player_from_client::case_4_ios\n\n test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished\n in 0.20s\n\n ", + "system_err": "thread 'get_player_from_client::case_4_ios' panicked at\n tests/youtube.rs:71:14:\n video #247\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n", + "retries": [ + { + "timestamp": "2024-05-31T22:31:35.914+02:00", + "time": 0.17, + "status": { + "Failure": { + "message": "", + "text": "thread\n 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: video\n #247 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace" + } + }, + "system_out": "\n running 1 test\n test get_player_from_client::case_4_ios ... FAILED\n\n failures:\n\n failures:\n get_player_from_client::case_4_ios\n\n test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished\n in 0.16s\n\n ", + "system_err": "thread\n 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14:\n video #247\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n" + }, + { + "timestamp": "2024-05-31T22:31:36.085+02:00", + "time": 0.168, + "status": { + "Failure": { + "message": "", + "text": "thread\n 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: video\n #247 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace" + } + }, + "system_out": "\n running 1 test\n test get_player_from_client::case_4_ios ... FAILED\n\n failures:\n\n failures:\n get_player_from_client::case_4_ios\n\n test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished\n in 0.16s\n\n ", + "system_err": "thread\n 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14:\n video #247\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n" + }, + { + "timestamp": "2024-05-31T22:31:36.254+02:00", + "time": 0.176, + "status": { + "Failure": { + "message": "", + "text": "thread\n 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: video\n #247 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace" + } + }, + "system_out": "\n running 1 test\n test get_player_from_client::case_4_ios ... FAILED\n\n failures:\n\n failures:\n get_player_from_client::case_4_ios\n\n test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished\n in 0.17s\n\n ", + "system_err": "thread\n 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14:\n video #247\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n" + } + ] + }, + { + "name": "rustypipe::youtube::music_album::case_3_single", + "original_name": "music_album::case_3_single", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.199+02:00", + "time": 0.306, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_video_details_no_desc", + "original_name": "get_video_details_no_desc", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.929+02:00", + "time": 0.633, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album::case_1_one_artist", + "original_name": "music_album::case_1_one_artist", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.174+02:00", + "time": 0.402, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album::case_5_show", + "original_name": "music_album::case_5_show", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.289+02:00", + "time": 0.305, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album::case_4_ep", + "original_name": "music_album::case_4_ep", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.23+02:00", + "time": 0.382, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album::case_2_various_artists", + "original_name": "music_album::case_2_various_artists", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.182+02:00", + "time": 0.431, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_search", + "original_name": "channel_search", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.287+02:00", + "time": 1.349, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album::case_7_no_year", + "original_name": "music_album::case_7_no_year", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.506+02:00", + "time": 0.19, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album_not_found", + "original_name": "music_album_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.575+02:00", + "time": 0.132, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_video_details_agegate", + "original_name": "get_video_details_agegate", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.816+02:00", + "time": 0.96, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_artist_albums_not_found", + "original_name": "music_artist_albums_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.708+02:00", + "time": 0.115, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_artist::case_4_no_artist", + "original_name": "music_artist::case_4_no_artist", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.636+02:00", + "time": 0.21, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_artist_not_found", + "original_name": "music_artist_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.776+02:00", + "time": 0.149, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_artist::case_2_no_more_albums", + "original_name": "music_artist::case_2_no_more_albums", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.612+02:00", + "time": 0.401, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album::case_6_unavailable", + "original_name": "music_album::case_6_unavailable", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.43+02:00", + "time": 0.598, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_artist::case_3_only_singles", + "original_name": "music_artist::case_3_only_singles", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.613+02:00", + "time": 0.417, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_video_details_ccommons", + "original_name": "get_video_details_ccommons", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.823+02:00", + "time": 1.215, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_details::case_1_mv", + "original_name": "music_details::case_1_mv", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.925+02:00", + "time": 0.174, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_details_not_found", + "original_name": "music_details_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.03+02:00", + "time": 0.093, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_charts::case_1_de", + "original_name": "music_charts::case_1_de", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.823+02:00", + "time": 0.343, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_details::case_2_track", + "original_name": "music_details::case_2_track", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.013+02:00", + "time": 0.179, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_artist::case_1_basic_all", + "original_name": "music_artist::case_1_basic_all", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.595+02:00", + "time": 0.614, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_genre_not_found", + "original_name": "music_genre_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.122+02:00", + "time": 0.128, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_details::case_3_track_details", + "original_name": "music_details::case_3_track_details", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.028+02:00", + "time": 0.232, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_genres", + "original_name": "music_genres", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.167+02:00", + "time": 0.145, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_video_details_music", + "original_name": "get_video_details_music", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.905+02:00", + "time": 1.421, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_video_details_chapters", + "original_name": "get_video_details_chapters", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.842+02:00", + "time": 1.519, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_lyrics", + "original_name": "music_lyrics", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.192+02:00", + "time": 0.248, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_lyrics_not_found", + "original_name": "music_lyrics_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.209+02:00", + "time": 0.242, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_video_details_live", + "original_name": "get_video_details_live", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.886+02:00", + "time": 1.579, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_charts::case_2_us", + "original_name": "music_charts::case_2_us", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.184+02:00", + "time": 0.316, + "status": "Flaky", + "system_out": null, + "system_err": null, + "retries": [ + { + "timestamp": "2024-05-31T22:31:36.846+02:00", + "time": 0.337, + "status": { + "Failure": { + "message": "", + "text": "thread\n 'music_charts::case_2_us' panicked at tests/youtube.rs:2494:9: expected >= 8\n charts playlists, got 0 note: run with `RUST_BACKTRACE=1` environment variable to display a\n backtrace" + } + }, + "system_out": "\n running 1 test\n test music_charts::case_2_us ... FAILED\n\n failures:\n\n failures:\n music_charts::case_2_us\n\n test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished\n in 0.33s\n\n ", + "system_err": "thread\n 'music_charts::case_2_us' panicked at tests/youtube.rs:2494:9:\n expected >= 8 charts playlists, got 0\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n" + } + ] + }, + { + "name": "rustypipe::youtube::get_video_comments", + "original_name": "get_video_comments", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.739+02:00", + "time": 1.769, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_artist::case_5_secondary_channel", + "original_name": "music_artist::case_5_secondary_channel", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.696+02:00", + "time": 0.825, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_playlist::case_3_nomusic", + "original_name": "music_playlist::case_3_nomusic", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.361+02:00", + "time": 0.218, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_playlist_not_found", + "original_name": "music_playlist_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.465+02:00", + "time": 0.134, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_new_videos", + "original_name": "music_new_videos", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.26+02:00", + "time": 0.39, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album::case_8_version_no_artist", + "original_name": "music_album::case_8_version_no_artist", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.522+02:00", + "time": 0.308, + "status": { + "Failure": { + "message": "", + "text": "thread 'music_album::case_8_version_no_artist' panicked\n at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_version_no_artist' failed in line 1593\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace" + } + }, + "system_out": "\n running 1 test\n ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap\n Snapshot: music_album_version_no_artist\n Source: tests/youtube.rs:1593\n ────────────────────────────────────────────────────────────────────────────────\n Expression: album\n ────────────────────────────────────────────────────────────────────────────────\n -old snapshot\n +new results\n ────────────┬───────────────────────────────────────────────────────────────────\n 122 122 │ width: 544,\n 123 123 │ height: 544,\n 124 124 │ ),\n 125 125 │ ],\n 126 │- artists: [],\n 127 │- artist_id: None,\n 126 │+ artists: [\n 127 │+ ArtistId(\n 128 │+ id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 129 │+ name: \"S.p. Kodandapani\",\n 130 │+ ),\n 131 │+ ArtistId(\n 132 │+ id: Some(\"UCbeyiCEAJt5buhxxLAPwVMg\"),\n 133 │+ name: \"S. P. Kodandapani\",\n 134 │+ ),\n 135 │+ ],\n 136 │+ artist_id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 128 137 │ album_type: Ep,\n 129 138 │ year: None,\n 130 │- by_va: true,\n 139 │+ by_va: false,\n 131 140 │ ),\n 132 141 │ ],\n 133 142 │ )\n ────────────┴───────────────────────────────────────────────────────────────────\n To update snapshots run `cargo insta review`\n Stopped on the first failure. Run `cargo insta test` to run all snapshots.\n test music_album::case_8_version_no_artist ... FAILED\n\n failures:\n\n failures:\n music_album::case_8_version_no_artist\n\n test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished\n in 0.30s\n\n ", + "system_err": "stored new snapshot\n /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new\n thread 'music_album::case_8_version_no_artist' panicked at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_version_no_artist' failed in line 1593\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n", + "retries": [ + { + "timestamp": "2024-05-31T22:31:36.83+02:00", + "time": 0.33, + "status": { + "Failure": { + "message": "", + "text": "thread\n 'music_album::case_8_version_no_artist' panicked at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_version_no_artist' failed in line 1593 note:\n run with `RUST_BACKTRACE=1` environment variable to display a backtrace" + } + }, + "system_out": "\n running 1 test\n ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap\n Snapshot: music_album_version_no_artist\n Source: tests/youtube.rs:1593\n ────────────────────────────────────────────────────────────────────────────────\n Expression: album\n ────────────────────────────────────────────────────────────────────────────────\n -old snapshot\n +new results\n ────────────┬───────────────────────────────────────────────────────────────────\n 122 122 │ width: 544,\n 123 123 │ height: 544,\n 124 124 │ ),\n 125 125 │ ],\n 126 │- artists: [],\n 127 │- artist_id: None,\n 126 │+ artists: [\n 127 │+ ArtistId(\n 128 │+ id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 129 │+ name: \"S.p. Kodandapani\",\n 130 │+ ),\n 131 │+ ArtistId(\n 132 │+ id: Some(\"UCbeyiCEAJt5buhxxLAPwVMg\"),\n 133 │+ name: \"S. P. Kodandapani\",\n 134 │+ ),\n 135 │+ ],\n 136 │+ artist_id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 128 137 │ album_type: Ep,\n 129 138 │ year: None,\n 130 │- by_va: true,\n 139 │+ by_va: false,\n 131 140 │ ),\n 132 141 │ ],\n 133 142 │ )\n ────────────┴───────────────────────────────────────────────────────────────────\n To update snapshots run `cargo insta review`\n Stopped on the first failure. Run `cargo insta test` to run all snapshots.\n test music_album::case_8_version_no_artist ... FAILED\n\n failures:\n\n failures:\n music_album::case_8_version_no_artist\n\n test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished\n in 0.32s\n\n ", + "system_err": "stored\n new snapshot\n /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new\n thread 'music_album::case_8_version_no_artist' panicked at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_version_no_artist' failed in line 1593\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n" + }, + { + "timestamp": "2024-05-31T22:31:37.162+02:00", + "time": 0.214, + "status": { + "Failure": { + "message": "", + "text": "thread\n 'music_album::case_8_version_no_artist' panicked at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_version_no_artist' failed in line 1593 note:\n run with `RUST_BACKTRACE=1` environment variable to display a backtrace" + } + }, + "system_out": "\n running 1 test\n ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap\n Snapshot: music_album_version_no_artist\n Source: tests/youtube.rs:1593\n ────────────────────────────────────────────────────────────────────────────────\n Expression: album\n ────────────────────────────────────────────────────────────────────────────────\n -old snapshot\n +new results\n ────────────┬───────────────────────────────────────────────────────────────────\n 122 122 │ width: 544,\n 123 123 │ height: 544,\n 124 124 │ ),\n 125 125 │ ],\n 126 │- artists: [],\n 127 │- artist_id: None,\n 126 │+ artists: [\n 127 │+ ArtistId(\n 128 │+ id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 129 │+ name: \"S.p. Kodandapani\",\n 130 │+ ),\n 131 │+ ArtistId(\n 132 │+ id: Some(\"UCbeyiCEAJt5buhxxLAPwVMg\"),\n 133 │+ name: \"S. P. Kodandapani\",\n 134 │+ ),\n 135 │+ ],\n 136 │+ artist_id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 128 137 │ album_type: Ep,\n 129 138 │ year: None,\n 130 │- by_va: true,\n 139 │+ by_va: false,\n 131 140 │ ),\n 132 141 │ ],\n 133 142 │ )\n ────────────┴───────────────────────────────────────────────────────────────────\n To update snapshots run `cargo insta review`\n Stopped on the first failure. Run `cargo insta test` to run all snapshots.\n test music_album::case_8_version_no_artist ... FAILED\n\n failures:\n\n failures:\n music_album::case_8_version_no_artist\n\n test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished\n in 0.21s\n\n ", + "system_err": "stored\n new snapshot\n /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new\n thread 'music_album::case_8_version_no_artist' panicked at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_version_no_artist' failed in line 1593\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n" + }, + { + "timestamp": "2024-05-31T22:31:37.377+02:00", + "time": 0.276, + "status": { + "Failure": { + "message": "", + "text": "thread\n 'music_album::case_8_version_no_artist' panicked at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_version_no_artist' failed in line 1593 note:\n run with `RUST_BACKTRACE=1` environment variable to display a backtrace" + } + }, + "system_out": "\n running 1 test\n ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap\n Snapshot: music_album_version_no_artist\n Source: tests/youtube.rs:1593\n ────────────────────────────────────────────────────────────────────────────────\n Expression: album\n ────────────────────────────────────────────────────────────────────────────────\n -old snapshot\n +new results\n ────────────┬───────────────────────────────────────────────────────────────────\n 122 122 │ width: 544,\n 123 123 │ height: 544,\n 124 124 │ ),\n 125 125 │ ],\n 126 │- artists: [],\n 127 │- artist_id: None,\n 126 │+ artists: [\n 127 │+ ArtistId(\n 128 │+ id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 129 │+ name: \"S.p. Kodandapani\",\n 130 │+ ),\n 131 │+ ArtistId(\n 132 │+ id: Some(\"UCbeyiCEAJt5buhxxLAPwVMg\"),\n 133 │+ name: \"S. P. Kodandapani\",\n 134 │+ ),\n 135 │+ ],\n 136 │+ artist_id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 128 137 │ album_type: Ep,\n 129 138 │ year: None,\n 130 │- by_va: true,\n 139 │+ by_va: false,\n 131 140 │ ),\n 132 141 │ ],\n 133 142 │ )\n ────────────┴───────────────────────────────────────────────────────────────────\n To update snapshots run `cargo insta review`\n Stopped on the first failure. Run `cargo insta test` to run all snapshots.\n test music_album::case_8_version_no_artist ... FAILED\n\n failures:\n\n failures:\n music_album::case_8_version_no_artist\n\n test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished\n in 0.27s\n\n ", + "system_err": "stored\n new snapshot\n /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new\n thread 'music_album::case_8_version_no_artist' panicked at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_version_no_artist' failed in line 1593\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n" + } + ] + }, + { + "name": "rustypipe::youtube::music_radio_not_found", + "original_name": "music_radio_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.521+02:00", + "time": 0.143, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_video_details", + "original_name": "get_video_details", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:35.779+02:00", + "time": 1.891, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_playlist::case_2_short", + "original_name": "music_playlist::case_2_short", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.326+02:00", + "time": 0.346, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_new_albums", + "original_name": "music_new_albums", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.25+02:00", + "time": 0.433, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album::case_9_no_artist", + "original_name": "music_album::case_9_no_artist", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:36.562+02:00", + "time": 0.306, + "status": { + "Failure": { + "message": "", + "text": "thread 'music_album::case_9_no_artist' panicked at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_no_artist' failed in line 1593\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace" + } + }, + "system_out": "\n running 1 test\n ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap\n Snapshot: music_album_no_artist\n Source: tests/youtube.rs:1593\n ────────────────────────────────────────────────────────────────────────────────\n Expression: album\n ────────────────────────────────────────────────────────────────────────────────\n -old snapshot\n +new results\n ────────────┬───────────────────────────────────────────────────────────────────\n 1 1 │ id: \"MPREb_bqWA6mAZFWS\",\n 2 2 │ playlist_id: Some(\"OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0\"),\n 3 3 │ name: \"Pedha Rasi Peddamma Katha\",\n 4 4 │ cover: \"[cover]\",\n 5 │- artists: [],\n 6 │- artist_id: None,\n 5 │+ artists: [\n 6 │+ ArtistId(\n 7 │+ id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 8 │+ name: \"S.p. Kodandapani\",\n 9 │+ ),\n 10 │+ ArtistId(\n 11 │+ id: Some(\"UCbeyiCEAJt5buhxxLAPwVMg\"),\n 12 │+ name: \"S. P. Kodandapani\",\n 13 │+ ),\n 14 │+ ],\n 15 │+ artist_id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 7 16 │ description: None,\n 8 17 │ album_type: Ep,\n 9 18 │ year: Some(1968),\n 10 19 │ by_va: false,\n ────────────┴───────────────────────────────────────────────────────────────────\n To update snapshots run `cargo insta review`\n Stopped on the first failure. Run `cargo insta test` to run all snapshots.\n test music_album::case_9_no_artist ... FAILED\n\n failures:\n\n failures:\n music_album::case_9_no_artist\n\n test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished\n in 0.30s\n\n ", + "system_err": "stored new snapshot\n /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new\n thread 'music_album::case_9_no_artist' panicked at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_no_artist' failed in line 1593\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n", + "retries": [ + { + "timestamp": "2024-05-31T22:31:36.869+02:00", + "time": 0.257, + "status": { + "Failure": { + "message": "", + "text": "thread\n 'music_album::case_9_no_artist' panicked at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_no_artist' failed in line 1593 note: run with\n `RUST_BACKTRACE=1` environment variable to display a backtrace" + } + }, + "system_out": "\n running 1 test\n ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap\n Snapshot: music_album_no_artist\n Source: tests/youtube.rs:1593\n ────────────────────────────────────────────────────────────────────────────────\n Expression: album\n ────────────────────────────────────────────────────────────────────────────────\n -old snapshot\n +new results\n ────────────┬───────────────────────────────────────────────────────────────────\n 1 1 │ id: \"MPREb_bqWA6mAZFWS\",\n 2 2 │ playlist_id: Some(\"OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0\"),\n 3 3 │ name: \"Pedha Rasi Peddamma Katha\",\n 4 4 │ cover: \"[cover]\",\n 5 │- artists: [],\n 6 │- artist_id: None,\n 5 │+ artists: [\n 6 │+ ArtistId(\n 7 │+ id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 8 │+ name: \"S.p. Kodandapani\",\n 9 │+ ),\n 10 │+ ArtistId(\n 11 │+ id: Some(\"UCbeyiCEAJt5buhxxLAPwVMg\"),\n 12 │+ name: \"S. P. Kodandapani\",\n 13 │+ ),\n 14 │+ ],\n 15 │+ artist_id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 7 16 │ description: None,\n 8 17 │ album_type: Ep,\n 9 18 │ year: Some(1968),\n 10 19 │ by_va: false,\n ────────────┴───────────────────────────────────────────────────────────────────\n To update snapshots run `cargo insta review`\n Stopped on the first failure. Run `cargo insta test` to run all snapshots.\n test music_album::case_9_no_artist ... FAILED\n\n failures:\n\n failures:\n music_album::case_9_no_artist\n\n test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished\n in 0.25s\n\n ", + "system_err": "stored\n new snapshot\n /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new\n thread 'music_album::case_9_no_artist' panicked at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_no_artist' failed in line 1593\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n" + }, + { + "timestamp": "2024-05-31T22:31:37.127+02:00", + "time": 0.26, + "status": { + "Failure": { + "message": "", + "text": "thread\n 'music_album::case_9_no_artist' panicked at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_no_artist' failed in line 1593 note: run with\n `RUST_BACKTRACE=1` environment variable to display a backtrace" + } + }, + "system_out": "\n running 1 test\n ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap\n Snapshot: music_album_no_artist\n Source: tests/youtube.rs:1593\n ────────────────────────────────────────────────────────────────────────────────\n Expression: album\n ────────────────────────────────────────────────────────────────────────────────\n -old snapshot\n +new results\n ────────────┬───────────────────────────────────────────────────────────────────\n 1 1 │ id: \"MPREb_bqWA6mAZFWS\",\n 2 2 │ playlist_id: Some(\"OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0\"),\n 3 3 │ name: \"Pedha Rasi Peddamma Katha\",\n 4 4 │ cover: \"[cover]\",\n 5 │- artists: [],\n 6 │- artist_id: None,\n 5 │+ artists: [\n 6 │+ ArtistId(\n 7 │+ id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 8 │+ name: \"S.p. Kodandapani\",\n 9 │+ ),\n 10 │+ ArtistId(\n 11 │+ id: Some(\"UCbeyiCEAJt5buhxxLAPwVMg\"),\n 12 │+ name: \"S. P. Kodandapani\",\n 13 │+ ),\n 14 │+ ],\n 15 │+ artist_id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 7 16 │ description: None,\n 8 17 │ album_type: Ep,\n 9 18 │ year: Some(1968),\n 10 19 │ by_va: false,\n ────────────┴───────────────────────────────────────────────────────────────────\n To update snapshots run `cargo insta review`\n Stopped on the first failure. Run `cargo insta test` to run all snapshots.\n test music_album::case_9_no_artist ... FAILED\n\n failures:\n\n failures:\n music_album::case_9_no_artist\n\n test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished\n in 0.25s\n\n ", + "system_err": "stored\n new snapshot\n /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new\n thread 'music_album::case_9_no_artist' panicked at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_no_artist' failed in line 1593\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n" + }, + { + "timestamp": "2024-05-31T22:31:37.388+02:00", + "time": 0.308, + "status": { + "Failure": { + "message": "", + "text": "thread\n 'music_album::case_9_no_artist' panicked at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_no_artist' failed in line 1593 note: run with\n `RUST_BACKTRACE=1` environment variable to display a backtrace" + } + }, + "system_out": "\n running 1 test\n ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap\n Snapshot: music_album_no_artist\n Source: tests/youtube.rs:1593\n ────────────────────────────────────────────────────────────────────────────────\n Expression: album\n ────────────────────────────────────────────────────────────────────────────────\n -old snapshot\n +new results\n ────────────┬───────────────────────────────────────────────────────────────────\n 1 1 │ id: \"MPREb_bqWA6mAZFWS\",\n 2 2 │ playlist_id: Some(\"OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0\"),\n 3 3 │ name: \"Pedha Rasi Peddamma Katha\",\n 4 4 │ cover: \"[cover]\",\n 5 │- artists: [],\n 6 │- artist_id: None,\n 5 │+ artists: [\n 6 │+ ArtistId(\n 7 │+ id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 8 │+ name: \"S.p. Kodandapani\",\n 9 │+ ),\n 10 │+ ArtistId(\n 11 │+ id: Some(\"UCbeyiCEAJt5buhxxLAPwVMg\"),\n 12 │+ name: \"S. P. Kodandapani\",\n 13 │+ ),\n 14 │+ ],\n 15 │+ artist_id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 7 16 │ description: None,\n 8 17 │ album_type: Ep,\n 9 18 │ year: Some(1968),\n 10 19 │ by_va: false,\n ────────────┴───────────────────────────────────────────────────────────────────\n To update snapshots run `cargo insta review`\n Stopped on the first failure. Run `cargo insta test` to run all snapshots.\n test music_album::case_9_no_artist ... FAILED\n\n failures:\n\n failures:\n music_album::case_9_no_artist\n\n test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished\n in 0.30s\n\n ", + "system_err": "stored\n new snapshot\n /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new\n thread 'music_album::case_9_no_artist' panicked at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_no_artist' failed in line 1593\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n" + } + ] + }, + { + "name": "rustypipe::youtube::music_radio_track_not_found", + "original_name": "music_radio_track_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.653+02:00", + "time": 0.135, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_playlist::case_1_long", + "original_name": "music_playlist::case_1_long", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.311+02:00", + "time": 0.586, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_related::case_1_a", + "original_name": "music_related::case_1_a", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.663+02:00", + "time": 0.435, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_playlist_cont::case_2_ytm", + "original_name": "music_playlist_cont::case_2_ytm", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.45+02:00", + "time": 0.685, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_related::case_2_b", + "original_name": "music_related::case_2_b", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.67+02:00", + "time": 0.467, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_radio_playlist_not_found", + "original_name": "music_radio_playlist_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.6+02:00", + "time": 0.546, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_playlist_related", + "original_name": "music_playlist_related", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.5+02:00", + "time": 0.721, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_albums::case_2_ep", + "original_name": "music_search_albums::case_2_ep", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.683+02:00", + "time": 0.55, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_albums::case_1_single", + "original_name": "music_search_albums::case_1_single", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.672+02:00", + "time": 0.564, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_playlist_cont::case_1_user", + "original_name": "music_playlist_cont::case_1_user", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.439+02:00", + "time": 0.799, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_artists", + "original_name": "music_search_artists", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.788+02:00", + "time": 0.473, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_radio_artist", + "original_name": "music_radio_artist", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.508+02:00", + "time": 0.833, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_suggestion::case_1_default", + "original_name": "music_search_suggestion::case_1_default", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.261+02:00", + "time": 0.122, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_radio_playlist", + "original_name": "music_radio_playlist", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.579+02:00", + "time": 0.848, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_radio_track", + "original_name": "music_radio_track", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.65+02:00", + "time": 0.842, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_suggestion::case_2_empty", + "original_name": "music_search_suggestion::case_2_empty", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.341+02:00", + "time": 0.184, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_episode::case_1_main", + "original_name": "music_search_episode::case_1_main", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.099+02:00", + "time": 0.447, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::playlist_not_found", + "original_name": "playlist_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.545+02:00", + "time": 0.096, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_playlists", + "original_name": "music_search_playlists", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.236+02:00", + "time": 0.41, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_episode::case_2_videos", + "original_name": "music_search_episode::case_2_videos", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.136+02:00", + "time": 0.542, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_channel_not_found", + "original_name": "resolve_channel_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.642+02:00", + "time": 0.094, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_01", + "original_name": "resolve_string::case_01", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.646+02:00", + "time": 0.09, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_03", + "original_name": "resolve_string::case_03", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.735+02:00", + "time": 0.027, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_playlists_community", + "original_name": "music_search_playlists_community", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.239+02:00", + "time": 0.538, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_02", + "original_name": "resolve_string::case_02", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.678+02:00", + "time": 0.101, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_main::case_1_default", + "original_name": "music_search_main::case_1_default", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.221+02:00", + "time": 0.58, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_07", + "original_name": "resolve_string::case_07", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.779+02:00", + "time": 0.025, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_main::case_2_typo", + "original_name": "music_search_main::case_2_typo", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.233+02:00", + "time": 0.574, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_08", + "original_name": "resolve_string::case_08", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.801+02:00", + "time": 0.028, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_09", + "original_name": "resolve_string::case_09", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.804+02:00", + "time": 0.027, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_04", + "original_name": "resolve_string::case_04", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.737+02:00", + "time": 0.096, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_genre::case_2_pop", + "original_name": "music_genre::case_2_pop", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.099+02:00", + "time": 1.745, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_05", + "original_name": "resolve_string::case_05", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.762+02:00", + "time": 0.094, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_11", + "original_name": "resolve_string::case_11", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.829+02:00", + "time": 0.031, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_12", + "original_name": "resolve_string::case_12", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.832+02:00", + "time": 0.03, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_genre_radio", + "original_name": "music_search_genre_radio", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.136+02:00", + "time": 0.734, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_06", + "original_name": "resolve_string::case_06", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.777+02:00", + "time": 0.097, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_03", + "original_name": "resolve_url::case_03", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.856+02:00", + "time": 0.028, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_albums::case_3_album", + "original_name": "music_search_albums::case_3_album", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.696+02:00", + "time": 1.2, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_06", + "original_name": "resolve_url::case_06", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.87+02:00", + "time": 0.027, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_07", + "original_name": "resolve_url::case_07", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.873+02:00", + "time": 0.025, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_08", + "original_name": "resolve_url::case_08", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.883+02:00", + "time": 0.027, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_10", + "original_name": "resolve_string::case_10", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.807+02:00", + "time": 0.109, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_09", + "original_name": "resolve_url::case_09", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.895+02:00", + "time": 0.028, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_10", + "original_name": "resolve_url::case_10", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.898+02:00", + "time": 0.026, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_11", + "original_name": "resolve_url::case_11", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.898+02:00", + "time": 0.028, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_12", + "original_name": "resolve_url::case_12", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.91+02:00", + "time": 0.026, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_13", + "original_name": "resolve_url::case_13", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.916+02:00", + "time": 0.027, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_02", + "original_name": "resolve_url::case_02", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.844+02:00", + "time": 0.1, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_14", + "original_name": "resolve_url::case_14", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.923+02:00", + "time": 0.027, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_16", + "original_name": "resolve_url::case_16", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.926+02:00", + "time": 0.026, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_05", + "original_name": "resolve_url::case_05", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.862+02:00", + "time": 0.094, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_04", + "original_name": "resolve_url::case_04", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.86+02:00", + "time": 0.097, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_19", + "original_name": "resolve_url::case_19", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.944+02:00", + "time": 0.029, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_18", + "original_name": "resolve_url::case_18", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.943+02:00", + "time": 0.031, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_main2", + "original_name": "music_search_main2", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.146+02:00", + "time": 0.834, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_20", + "original_name": "resolve_url::case_20", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.95+02:00", + "time": 0.031, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_15", + "original_name": "resolve_url::case_15", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.924+02:00", + "time": 0.097, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_01", + "original_name": "resolve_url::case_01", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.832+02:00", + "time": 0.193, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_17", + "original_name": "resolve_url::case_17", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.936+02:00", + "time": 0.099, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::playlist_cont", + "original_name": "playlist_cont", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.492+02:00", + "time": 0.627, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::playlist_cont2", + "original_name": "playlist_cont2", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.525+02:00", + "time": 0.636, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::search_suggestion", + "original_name": "search_suggestion", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:39.021+02:00", + "time": 0.198, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::trending", + "original_name": "trending", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:39.035+02:00", + "time": 0.23, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::search_suggestion_empty", + "original_name": "search_suggestion_empty", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:39.025+02:00", + "time": 0.337, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::search_empty", + "original_name": "search_empty", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.956+02:00", + "time": 0.504, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::search_filter_item_type::case_2_channel", + "original_name": "search_filter_item_type::case_2_channel", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.973+02:00", + "time": 0.862, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_artists_cont", + "original_name": "music_search_artists_cont", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.897+02:00", + "time": 1.951, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_videos", + "original_name": "music_search_videos", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.426+02:00", + "time": 1.536, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::search_filter_item_type::case_3_playlist", + "original_name": "search_filter_item_type::case_3_playlist", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.974+02:00", + "time": 1.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::search_filter_item_type::case_1_video", + "original_name": "search_filter_item_type::case_1_video", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.957+02:00", + "time": 1.145, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_tracks", + "original_name": "music_search_tracks", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.383+02:00", + "time": 1.845, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::search_sensitive::case_2_filter", + "original_name": "search_sensitive::case_2_filter", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.981+02:00", + "time": 1.581, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::search_sensitive::case_1_no_filter", + "original_name": "search_sensitive::case_1_no_filter", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.98+02:00", + "time": 1.661, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::search", + "original_name": "search", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:38.952+02:00", + "time": 2.02, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_genre::case_1_chill", + "original_name": "music_genre::case_1_chill", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:31:37.037+02:00", + "time": 5.251, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + } + ], + "time": 0.0, + "tests": 170, + "errors": 0, + "failures": 3, + "skipped": 0, + "flaky": 1 + } + ], + "time": 8.402, + "tests": 418, + "errors": 0, + "failures": 3, + "skipped": 0, + "flaky": 1 +} diff --git a/crates/junit-parser/src/snapshots/junit_parser__tests__parse_simple.snap b/crates/junit-parser/src/snapshots/junit_parser__tests__parse_simple.snap new file mode 100644 index 0000000..ff64c3b --- /dev/null +++ b/crates/junit-parser/src/snapshots/junit_parser__tests__parse_simple.snap @@ -0,0 +1,4662 @@ +--- +source: crates/junit-parser/src/lib.rs +expression: suites +--- +{ + "name": "nextest-run", + "suites": [ + { + "name": "rustypipe::youtube", + "timestamp": null, + "cases": [ + { + "name": "rustypipe::youtube::channel_more::case_1_artist", + "original_name": "channel_more::case_1_artist", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.689+02:00", + "time": 0.144, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_more::case_4_music", + "original_name": "channel_more::case_4_music", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.694+02:00", + "time": 0.15, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_not_found::case_3_movies", + "original_name": "channel_not_found::case_3_movies", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.722+02:00", + "time": 0.129, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_age_restriction", + "original_name": "channel_age_restriction", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.685+02:00", + "time": 0.17, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_not_found::case_1_not_exist", + "original_name": "channel_not_found::case_1_not_exist", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.696+02:00", + "time": 0.159, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_info", + "original_name": "channel_info", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.689+02:00", + "time": 0.182, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_not_found::case_2_gaming", + "original_name": "channel_not_found::case_2_gaming", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.703+02:00", + "time": 0.186, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_more::case_3_livestream", + "original_name": "channel_more::case_3_livestream", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.69+02:00", + "time": 0.373, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_livestreams", + "original_name": "channel_livestreams", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.689+02:00", + "time": 0.395, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_not_found::case_4_sports", + "original_name": "channel_not_found::case_4_sports", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.722+02:00", + "time": 0.391, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_not_found::case_6_live", + "original_name": "channel_not_found::case_6_live", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.749+02:00", + "time": 0.365, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_more::case_2_shorts", + "original_name": "channel_more::case_2_shorts", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.69+02:00", + "time": 0.432, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_order_latest::case_3_shorts", + "original_name": "channel_order_latest::case_3_shorts", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.851+02:00", + "time": 0.281, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_order_latest::case_1_videos", + "original_name": "channel_order_latest::case_1_videos", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.833+02:00", + "time": 0.372, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_not_found::case_5_learning", + "original_name": "channel_not_found::case_5_learning", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.723+02:00", + "time": 0.52, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_order_latest::case_2_live", + "original_name": "channel_order_latest::case_2_live", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.844+02:00", + "time": 0.399, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_order_popular::case_1_videos", + "original_name": "channel_order_popular::case_1_videos", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.87+02:00", + "time": 0.382, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_tab_not_found::case_1_shorts", + "original_name": "channel_tab_not_found::case_1_shorts", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.114+02:00", + "time": 0.149, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_tab_not_found::case_2_live", + "original_name": "channel_tab_not_found::case_2_live", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.122+02:00", + "time": 0.156, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_order_popular::case_2_live", + "original_name": "channel_order_popular::case_2_live", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.889+02:00", + "time": 0.406, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_order_oldest::case_1_videos", + "original_name": "channel_order_oldest::case_1_videos", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.855+02:00", + "time": 0.441, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::ab3_search_channel_handles", + "original_name": "ab3_search_channel_handles", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.683+02:00", + "time": 0.624, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_order_popular::case_3_shorts", + "original_name": "channel_order_popular::case_3_shorts", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.891+02:00", + "time": 0.426, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_playlists", + "original_name": "channel_playlists", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.064+02:00", + "time": 0.265, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_order_oldest::case_2_live", + "original_name": "channel_order_oldest::case_2_live", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:31.856+02:00", + "time": 0.476, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_shorts", + "original_name": "channel_shorts", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.113+02:00", + "time": 0.249, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_error::case_1_not_found", + "original_name": "get_player_error::case_1_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.295+02:00", + "time": 0.104, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player::case_4_live", + "original_name": "get_player::case_4_live", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.252+02:00", + "time": 0.161, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player::case_1_music", + "original_name": "get_player::case_1_music", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.205+02:00", + "time": 0.213, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_error::case_2_deleted", + "original_name": "get_player_error::case_2_deleted", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.296+02:00", + "time": 0.128, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_error::case_3_censored", + "original_name": "get_player_error::case_3_censored", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.308+02:00", + "time": 0.137, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player::case_5_was_live", + "original_name": "get_player::case_5_was_live", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.262+02:00", + "time": 0.203, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player::case_3_multilanguage", + "original_name": "get_player::case_3_multilanguage", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.244+02:00", + "time": 0.223, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_error::case_5_private", + "original_name": "get_player_error::case_5_private", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.329+02:00", + "time": 0.137, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_error::case_4_geoblock", + "original_name": "get_player_error::case_4_geoblock", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.317+02:00", + "time": 0.156, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player::case_2_hdr", + "original_name": "get_player::case_2_hdr", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.243+02:00", + "time": 0.233, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_error::case_6_age_restricted", + "original_name": "get_player_error::case_6_age_restricted", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.332+02:00", + "time": 0.213, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_videos", + "original_name": "channel_videos", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.133+02:00", + "time": 0.431, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_error::case_7_premium_only", + "original_name": "get_player_error::case_7_premium_only", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.362+02:00", + "time": 0.229, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_error::case_8_members_only", + "original_name": "get_player_error::case_8_members_only", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.398+02:00", + "time": 0.208, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player::case_6_agelimit", + "original_name": "get_player::case_6_agelimit", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.278+02:00", + "time": 0.353, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_error_paid", + "original_name": "get_player_error_paid", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.413+02:00", + "time": 0.218, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_playlist::case_2_nomusic", + "original_name": "get_playlist::case_2_nomusic", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.467+02:00", + "time": 0.213, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_from_client::case_4_ios", + "original_name": "get_player_from_client::case_4_ios", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.465+02:00", + "time": 0.252, + "status": { + "Failure": { + "message": "", + "text": "thread 'get_player_from_client::case_4_ios' panicked at\n tests/youtube.rs:71:14:\n video #247\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace" + } + }, + "system_out": "\n running 1 test\n test get_player_from_client::case_4_ios ... FAILED\n\n failures:\n\n failures:\n get_player_from_client::case_4_ios\n\n test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished\n in 0.24s\n\n ", + "system_err": "thread 'get_player_from_client::case_4_ios' panicked at\n tests/youtube.rs:71:14:\n video #247\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n", + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_from_client::case_1_desktop", + "original_name": "get_player_from_client::case_1_desktop", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.418+02:00", + "time": 0.313, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_from_client::case_2_tv_html5_embed", + "original_name": "get_player_from_client::case_2_tv_html5_embed", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.424+02:00", + "time": 0.327, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_player_from_client::case_3_android", + "original_name": "get_player_from_client::case_3_android", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.445+02:00", + "time": 0.374, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::invalid_ctoken::case_1_desktop", + "original_name": "invalid_ctoken::case_1_desktop", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.731+02:00", + "time": 0.089, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_video_details_not_found", + "original_name": "get_video_details_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.717+02:00", + "time": 0.113, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::invalid_ctoken::case_2_music", + "original_name": "invalid_ctoken::case_2_music", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.751+02:00", + "time": 0.13, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_playlist::case_1_long", + "original_name": "get_playlist::case_1_long", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.467+02:00", + "time": 0.425, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_playlist::case_3_live", + "original_name": "get_playlist::case_3_live", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.473+02:00", + "time": 0.548, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album::case_3_single", + "original_name": "music_album::case_3_single", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.83+02:00", + "time": 0.282, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album::case_5_show", + "original_name": "music_album::case_5_show", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.892+02:00", + "time": 0.251, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album::case_1_one_artist", + "original_name": "music_album::case_1_one_artist", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.819+02:00", + "time": 0.328, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album::case_2_various_artists", + "original_name": "music_album::case_2_various_artists", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.82+02:00", + "time": 0.359, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album::case_4_ep", + "original_name": "music_album::case_4_ep", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.881+02:00", + "time": 0.395, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album_not_found", + "original_name": "music_album_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.178+02:00", + "time": 0.11, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album::case_7_no_year", + "original_name": "music_album::case_7_no_year", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.112+02:00", + "time": 0.207, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album::case_8_version_no_artist", + "original_name": "music_album::case_8_version_no_artist", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.143+02:00", + "time": 0.239, + "status": { + "Failure": { + "message": "", + "text": "thread 'music_album::case_8_version_no_artist' panicked\n at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_version_no_artist' failed in line 1593\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace" + } + }, + "system_out": "\n running 1 test\n ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap\n Snapshot: music_album_version_no_artist\n Source: tests/youtube.rs:1593\n ────────────────────────────────────────────────────────────────────────────────\n Expression: album\n ────────────────────────────────────────────────────────────────────────────────\n -old snapshot\n +new results\n ────────────┬───────────────────────────────────────────────────────────────────\n 122 122 │ width: 544,\n 123 123 │ height: 544,\n 124 124 │ ),\n 125 125 │ ],\n 126 │- artists: [],\n 127 │- artist_id: None,\n 126 │+ artists: [\n 127 │+ ArtistId(\n 128 │+ id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 129 │+ name: \"S.p. Kodandapani\",\n 130 │+ ),\n 131 │+ ArtistId(\n 132 │+ id: Some(\"UCbeyiCEAJt5buhxxLAPwVMg\"),\n 133 │+ name: \"S. P. Kodandapani\",\n 134 │+ ),\n 135 │+ ],\n 136 │+ artist_id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 128 137 │ album_type: Ep,\n 129 138 │ year: None,\n 130 │- by_va: true,\n 139 │+ by_va: false,\n 131 140 │ ),\n 132 141 │ ],\n 133 142 │ )\n ────────────┴───────────────────────────────────────────────────────────────────\n To update snapshots run `cargo insta review`\n Stopped on the first failure. Run `cargo insta test` to run all snapshots.\n test music_album::case_8_version_no_artist ... FAILED\n\n failures:\n\n failures:\n music_album::case_8_version_no_artist\n\n test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished\n in 0.23s\n\n ", + "system_err": "stored new snapshot\n /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new\n thread 'music_album::case_8_version_no_artist' panicked at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_version_no_artist' failed in line 1593\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n", + "retries": [] + }, + { + "name": "rustypipe::youtube::get_video_details_agegate", + "original_name": "get_video_details_agegate", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.563+02:00", + "time": 0.869, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album::case_9_no_artist", + "original_name": "music_album::case_9_no_artist", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.147+02:00", + "time": 0.287, + "status": { + "Failure": { + "message": "", + "text": "thread 'music_album::case_9_no_artist' panicked at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_no_artist' failed in line 1593\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace" + } + }, + "system_out": "\n running 1 test\n ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap\n Snapshot: music_album_no_artist\n Source: tests/youtube.rs:1593\n ────────────────────────────────────────────────────────────────────────────────\n Expression: album\n ────────────────────────────────────────────────────────────────────────────────\n -old snapshot\n +new results\n ────────────┬───────────────────────────────────────────────────────────────────\n 1 1 │ id: \"MPREb_bqWA6mAZFWS\",\n 2 2 │ playlist_id: Some(\"OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0\"),\n 3 3 │ name: \"Pedha Rasi Peddamma Katha\",\n 4 4 │ cover: \"[cover]\",\n 5 │- artists: [],\n 6 │- artist_id: None,\n 5 │+ artists: [\n 6 │+ ArtistId(\n 7 │+ id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 8 │+ name: \"S.p. Kodandapani\",\n 9 │+ ),\n 10 │+ ArtistId(\n 11 │+ id: Some(\"UCbeyiCEAJt5buhxxLAPwVMg\"),\n 12 │+ name: \"S. P. Kodandapani\",\n 13 │+ ),\n 14 │+ ],\n 15 │+ artist_id: Some(\"UCJ59s7i18Dxj_pKVIGETNow\"),\n 7 16 │ description: None,\n 8 17 │ album_type: Ep,\n 9 18 │ year: Some(1968),\n 10 19 │ by_va: false,\n ────────────┴───────────────────────────────────────────────────────────────────\n To update snapshots run `cargo insta review`\n Stopped on the first failure. Run `cargo insta test` to run all snapshots.\n test music_album::case_9_no_artist ... FAILED\n\n failures:\n\n failures:\n music_album::case_9_no_artist\n\n test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished\n in 0.28s\n\n ", + "system_err": "stored new snapshot\n /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new\n thread 'music_album::case_9_no_artist' panicked at\n /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9:\n snapshot assertion for 'music_album_no_artist' failed in line 1593\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n", + "retries": [] + }, + { + "name": "rustypipe::youtube::music_album::case_6_unavailable", + "original_name": "music_album::case_6_unavailable", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.021+02:00", + "time": 0.441, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_video_details_no_desc", + "original_name": "get_video_details_no_desc", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.679+02:00", + "time": 0.796, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_artist::case_4_no_artist", + "original_name": "music_artist::case_4_no_artist", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.321+02:00", + "time": 0.204, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_artist_albums_not_found", + "original_name": "music_artist_albums_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.432+02:00", + "time": 0.118, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_artist_not_found", + "original_name": "music_artist_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.434+02:00", + "time": 0.121, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_artist::case_2_no_more_albums", + "original_name": "music_artist::case_2_no_more_albums", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.288+02:00", + "time": 0.329, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_artist::case_3_only_singles", + "original_name": "music_artist::case_3_only_singles", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.319+02:00", + "time": 0.361, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_details::case_1_mv", + "original_name": "music_details::case_1_mv", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.525+02:00", + "time": 0.159, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_details_not_found", + "original_name": "music_details_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.618+02:00", + "time": 0.099, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::channel_search", + "original_name": "channel_search", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.084+02:00", + "time": 1.646, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_artist::case_1_basic_all", + "original_name": "music_artist::case_1_basic_all", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.275+02:00", + "time": 0.457, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_details::case_2_track", + "original_name": "music_details::case_2_track", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.55+02:00", + "time": 0.184, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_charts::case_1_de", + "original_name": "music_charts::case_1_de", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.462+02:00", + "time": 0.313, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_details::case_3_track_details", + "original_name": "music_details::case_3_track_details", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.555+02:00", + "time": 0.246, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_charts::case_2_us", + "original_name": "music_charts::case_2_us", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.475+02:00", + "time": 0.334, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_artist::case_5_secondary_channel", + "original_name": "music_artist::case_5_secondary_channel", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.382+02:00", + "time": 0.449, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_genre_not_found", + "original_name": "music_genre_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.717+02:00", + "time": 0.146, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_genres", + "original_name": "music_genres", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.731+02:00", + "time": 0.138, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_video_details_chapters", + "original_name": "get_video_details_chapters", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.606+02:00", + "time": 1.295, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_lyrics_not_found", + "original_name": "music_lyrics_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.734+02:00", + "time": 0.203, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_video_comments", + "original_name": "get_video_comments", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.476+02:00", + "time": 1.487, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_playlist_not_found", + "original_name": "music_playlist_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.937+02:00", + "time": 0.105, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_video_details_ccommons", + "original_name": "get_video_details_ccommons", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.592+02:00", + "time": 1.462, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_playlist::case_3_nomusic", + "original_name": "music_playlist::case_3_nomusic", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.863+02:00", + "time": 0.231, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_video_details_music", + "original_name": "get_video_details_music", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.631+02:00", + "time": 1.507, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_video_details_live", + "original_name": "get_video_details_live", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.63+02:00", + "time": 1.538, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_radio_not_found", + "original_name": "music_radio_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.053+02:00", + "time": 0.126, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_playlist::case_2_short", + "original_name": "music_playlist::case_2_short", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.831+02:00", + "time": 0.389, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_new_videos", + "original_name": "music_new_videos", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.801+02:00", + "time": 0.425, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_new_albums", + "original_name": "music_new_albums", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.775+02:00", + "time": 0.475, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::get_video_details", + "original_name": "get_video_details", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:32.545+02:00", + "time": 1.715, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_playlist::case_1_long", + "original_name": "music_playlist::case_1_long", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.809+02:00", + "time": 0.452, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_radio_track_not_found", + "original_name": "music_radio_track_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.179+02:00", + "time": 0.152, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_lyrics", + "original_name": "music_lyrics", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.732+02:00", + "time": 0.612, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_related::case_1_a", + "original_name": "music_related::case_1_a", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.22+02:00", + "time": 0.429, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_playlist_cont::case_1_user", + "original_name": "music_playlist_cont::case_1_user", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.869+02:00", + "time": 0.797, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_related::case_2_b", + "original_name": "music_related::case_2_b", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.226+02:00", + "time": 0.443, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_albums::case_2_ep", + "original_name": "music_search_albums::case_2_ep", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.26+02:00", + "time": 0.44, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_radio_artist", + "original_name": "music_radio_artist", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.042+02:00", + "time": 0.678, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_playlist_related", + "original_name": "music_playlist_related", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.964+02:00", + "time": 0.757, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_radio_playlist_not_found", + "original_name": "music_radio_playlist_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.137+02:00", + "time": 0.585, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_albums::case_1_single", + "original_name": "music_search_albums::case_1_single", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.25+02:00", + "time": 0.578, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_artists", + "original_name": "music_search_artists", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.331+02:00", + "time": 0.515, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_suggestion::case_1_default", + "original_name": "music_search_suggestion::case_1_default", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.846+02:00", + "time": 0.116, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_radio_track", + "original_name": "music_radio_track", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.168+02:00", + "time": 0.809, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_playlist_cont::case_2_ytm", + "original_name": "music_playlist_cont::case_2_ytm", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.901+02:00", + "time": 1.161, + "status": { + "Failure": { + "message": "", + "text": "thread 'music_playlist_cont::case_2_ytm' panicked at\n tests/youtube.rs:1534:5:\n expected >= 227 tracks, got 128\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace" + } + }, + "system_out": "\n running 1 test\n test music_playlist_cont::case_2_ytm ... FAILED\n\n failures:\n\n failures:\n music_playlist_cont::case_2_ytm\n\n test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished\n in 1.15s\n\n ", + "system_err": "thread 'music_playlist_cont::case_2_ytm' panicked at\n tests/youtube.rs:1534:5:\n expected >= 227 tracks, got 128\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n", + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_suggestion::case_2_empty", + "original_name": "music_search_suggestion::case_2_empty", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.961+02:00", + "time": 0.124, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_radio_playlist", + "original_name": "music_radio_playlist", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.094+02:00", + "time": 1.024, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_episode::case_1_main", + "original_name": "music_search_episode::case_1_main", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.649+02:00", + "time": 0.484, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_episode::case_2_videos", + "original_name": "music_search_episode::case_2_videos", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.666+02:00", + "time": 0.469, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_playlists", + "original_name": "music_search_playlists", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.722+02:00", + "time": 0.44, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_main::case_1_default", + "original_name": "music_search_main::case_1_default", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.72+02:00", + "time": 0.465, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_main::case_2_typo", + "original_name": "music_search_main::case_2_typo", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.721+02:00", + "time": 0.496, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_03", + "original_name": "resolve_string::case_03", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.217+02:00", + "time": 0.028, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::playlist_not_found", + "original_name": "playlist_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.133+02:00", + "time": 0.115, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_channel_not_found", + "original_name": "resolve_channel_not_found", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.135+02:00", + "time": 0.114, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_genre_radio", + "original_name": "music_search_genre_radio", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.669+02:00", + "time": 0.589, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_01", + "original_name": "resolve_string::case_01", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.162+02:00", + "time": 0.099, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_07", + "original_name": "resolve_string::case_07", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.258+02:00", + "time": 0.026, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_08", + "original_name": "resolve_string::case_08", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.26+02:00", + "time": 0.028, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_02", + "original_name": "resolve_string::case_02", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.185+02:00", + "time": 0.104, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_playlists_community", + "original_name": "music_search_playlists_community", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.828+02:00", + "time": 0.478, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_09", + "original_name": "resolve_string::case_09", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.284+02:00", + "time": 0.028, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_main2", + "original_name": "music_search_main2", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.7+02:00", + "time": 0.622, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_11", + "original_name": "resolve_string::case_11", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.289+02:00", + "time": 0.038, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_12", + "original_name": "resolve_string::case_12", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.306+02:00", + "time": 0.029, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_06", + "original_name": "resolve_string::case_06", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.249+02:00", + "time": 0.103, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_04", + "original_name": "resolve_string::case_04", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.245+02:00", + "time": 0.107, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_03", + "original_name": "resolve_url::case_03", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.327+02:00", + "time": 0.026, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_05", + "original_name": "resolve_string::case_05", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.248+02:00", + "time": 0.124, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_06", + "original_name": "resolve_url::case_06", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.352+02:00", + "time": 0.026, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_07", + "original_name": "resolve_url::case_07", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.353+02:00", + "time": 0.026, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_string::case_10", + "original_name": "resolve_string::case_10", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.289+02:00", + "time": 0.098, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_genre::case_2_pop", + "original_name": "music_genre::case_2_pop", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.684+02:00", + "time": 1.709, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_08", + "original_name": "resolve_url::case_08", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.371+02:00", + "time": 0.027, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_09", + "original_name": "resolve_url::case_09", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.378+02:00", + "time": 0.026, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_10", + "original_name": "resolve_url::case_10", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.379+02:00", + "time": 0.028, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_01", + "original_name": "resolve_url::case_01", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.312+02:00", + "time": 0.096, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_11", + "original_name": "resolve_url::case_11", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.387+02:00", + "time": 0.029, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_02", + "original_name": "resolve_url::case_02", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.322+02:00", + "time": 0.094, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_13", + "original_name": "resolve_url::case_13", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.399+02:00", + "time": 0.027, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_12", + "original_name": "resolve_url::case_12", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.393+02:00", + "time": 0.034, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_04", + "original_name": "resolve_url::case_04", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.335+02:00", + "time": 0.092, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_14", + "original_name": "resolve_url::case_14", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.404+02:00", + "time": 0.028, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_16", + "original_name": "resolve_url::case_16", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.408+02:00", + "time": 0.029, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_05", + "original_name": "resolve_url::case_05", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.351+02:00", + "time": 0.094, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_18", + "original_name": "resolve_url::case_18", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.416+02:00", + "time": 0.03, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_19", + "original_name": "resolve_url::case_19", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.426+02:00", + "time": 0.041, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_20", + "original_name": "resolve_url::case_20", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.427+02:00", + "time": 0.042, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_15", + "original_name": "resolve_url::case_15", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.407+02:00", + "time": 0.102, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_albums::case_3_album", + "original_name": "music_search_albums::case_3_album", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.261+02:00", + "time": 1.255, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::resolve_url::case_17", + "original_name": "resolve_url::case_17", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.416+02:00", + "time": 0.114, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::playlist_cont", + "original_name": "playlist_cont", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.085+02:00", + "time": 0.583, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::search_suggestion", + "original_name": "search_suggestion", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.509+02:00", + "time": 0.186, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::search_suggestion_empty", + "original_name": "search_suggestion_empty", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.516+02:00", + "time": 0.222, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::playlist_cont2", + "original_name": "playlist_cont2", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.118+02:00", + "time": 0.625, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::trending", + "original_name": "trending", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.53+02:00", + "time": 0.245, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::search_empty", + "original_name": "search_empty", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.432+02:00", + "time": 0.502, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::search_filter_item_type::case_2_channel", + "original_name": "search_filter_item_type::case_2_channel", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.445+02:00", + "time": 0.804, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_artists_cont", + "original_name": "music_search_artists_cont", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.344+02:00", + "time": 2.07, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::search_filter_item_type::case_3_playlist", + "original_name": "search_filter_item_type::case_3_playlist", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.447+02:00", + "time": 1.026, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::search_filter_item_type::case_1_video", + "original_name": "search_filter_item_type::case_1_video", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.437+02:00", + "time": 1.044, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::search_sensitive::case_2_filter", + "original_name": "search_sensitive::case_2_filter", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.469+02:00", + "time": 1.306, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_videos", + "original_name": "music_search_videos", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.062+02:00", + "time": 1.74, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::music_search_tracks", + "original_name": "music_search_tracks", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:34.977+02:00", + "time": 1.846, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::search_sensitive::case_1_no_filter", + "original_name": "search_sensitive::case_1_no_filter", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.467+02:00", + "time": 1.821, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::youtube::search", + "original_name": "search", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:35.428+02:00", + "time": 2.177, + "status": { + "Failure": { + "message": "", + "text": "thread 'search' panicked at tests/youtube.rs:2751:9:\n expected >= 10 items on page 2, got 4\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace" + } + }, + "system_out": "\n running 1 test\n test search ... FAILED\n\n failures:\n\n failures:\n search\n\n test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished\n in 2.17s\n\n ", + "system_err": "thread 'search' panicked at tests/youtube.rs:2751:9:\n expected >= 10 items on page 2, got 4\n note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n", + "retries": [] + }, + { + "name": "rustypipe::youtube::music_genre::case_1_chill", + "original_name": "music_genre::case_1_chill", + "classname": "rustypipe::youtube", + "timestamp": "2024-05-31T22:35:33.68+02:00", + "time": 5.248, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + } + ], + "time": 0.0, + "tests": 170, + "errors": 0, + "failures": 5, + "skipped": 0, + "flaky": 0 + }, + { + "name": "rustypipe", + "timestamp": null, + "cases": [ + { + "name": "rustypipe::client::channel::tests::channel_agegate", + "original_name": "client::channel::tests::channel_agegate", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.709+02:00", + "time": 0.011, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::t_channel_info_ctoken", + "original_name": "client::channel::tests::t_channel_info_ctoken", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.72+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_05_empty", + "original_name": "client::channel::tests::map_channel_videos::case_05_empty", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.711+02:00", + "time": 0.036, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::t_order_ctoken", + "original_name": "client::channel::tests::t_order_ctoken", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.728+02:00", + "time": 0.034, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_02_music", + "original_name": "client::channel::tests::map_channel_videos::case_02_music", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.71+02:00", + "time": 0.054, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_info", + "original_name": "client::channel::tests::map_channel_info", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.71+02:00", + "time": 0.057, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_playlists", + "original_name": "client::channel::tests::map_channel_playlists", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.71+02:00", + "time": 0.077, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_12_pageheader", + "original_name": "client::channel::tests::map_channel_videos::case_12_pageheader", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.713+02:00", + "time": 0.086, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_04_live", + "original_name": "client::channel::tests::map_channel_videos::case_04_live", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.711+02:00", + "time": 0.089, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_10_shorts", + "original_name": "client::channel::tests::map_channel_videos::case_10_shorts", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.712+02:00", + "time": 0.094, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_06_upcoming", + "original_name": "client::channel::tests::map_channel_videos::case_06_upcoming", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.711+02:00", + "time": 0.101, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_artist::tests::map_music_artist::case_3_no_artist", + "original_name": "client::music_artist::tests::map_music_artist::case_3_no_artist", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.765+02:00", + "time": 0.052, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_11_livestreams", + "original_name": "client::channel::tests::map_channel_videos::case_11_livestreams", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.713+02:00", + "time": 0.106, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_07_richgrid", + "original_name": "client::channel::tests::map_channel_videos::case_07_richgrid", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.712+02:00", + "time": 0.108, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_09_coachella", + "original_name": "client::channel::tests::map_channel_videos::case_09_coachella", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.712+02:00", + "time": 0.122, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_13_pageheader2", + "original_name": "client::channel::tests::map_channel_videos::case_13_pageheader2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.713+02:00", + "time": 0.121, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_03_withshorts", + "original_name": "client::channel::tests::map_channel_videos::case_03_withshorts", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.711+02:00", + "time": 0.124, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_08_richgrid2", + "original_name": "client::channel::tests::map_channel_videos::case_08_richgrid2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.712+02:00", + "time": 0.125, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::channel::tests::map_channel_videos::case_01_base", + "original_name": "client::channel::tests::map_channel_videos::case_01_base", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.71+02:00", + "time": 0.127, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_artist::tests::map_music_artist_secondary_channel", + "original_name": "client::music_artist::tests::map_music_artist_secondary_channel", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.799+02:00", + "time": 0.041, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_details::tests::map_lyrics", + "original_name": "client::music_details::tests::map_lyrics", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.812+02:00", + "time": 0.035, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_artist::tests::map_music_artist::case_2_only_singles", + "original_name": "client::music_artist::tests::map_music_artist::case_2_only_singles", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.762+02:00", + "time": 0.085, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_details::tests::map_music_details::case_1_mv", + "original_name": "client::music_details::tests::map_music_details::case_1_mv", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.817+02:00", + "time": 0.045, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_details::tests::map_music_details::case_2_track", + "original_name": "client::music_details::tests::map_music_details::case_2_track", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.819+02:00", + "time": 0.049, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_genres::tests::map_music_genres", + "original_name": "client::music_genres::tests::map_music_genres", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.837+02:00", + "time": 0.043, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_new::tests::map_music_new_videos::case_1_default", + "original_name": "client::music_new::tests::map_music_new_videos::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.847+02:00", + "time": 0.078, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_album::case_3_single", + "original_name": "client::music_playlist::tests::map_music_album::case_3_single", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.88+02:00", + "time": 0.052, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_album::case_2_various_artists", + "original_name": "client::music_playlist::tests::map_music_album::case_2_various_artists", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.867+02:00", + "time": 0.074, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_artist::tests::map_music_artist_no_cont", + "original_name": "client::music_artist::tests::map_music_artist_no_cont", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.787+02:00", + "time": 0.156, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_album::case_1_one_artist", + "original_name": "client::music_playlist::tests::map_music_album::case_1_one_artist", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.862+02:00", + "time": 0.091, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_details::tests::map_music_radio::case_1_mv", + "original_name": "client::music_details::tests::map_music_radio::case_1_mv", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.819+02:00", + "time": 0.139, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_details::tests::map_related", + "original_name": "client::music_details::tests::map_related", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.835+02:00", + "time": 0.138, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_details::tests::map_music_radio::case_2_track", + "original_name": "client::music_details::tests::map_music_radio::case_2_track", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.834+02:00", + "time": 0.139, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_album::case_7_two_columns", + "original_name": "client::music_playlist::tests::map_music_album::case_7_two_columns", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.942+02:00", + "time": 0.048, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_album::case_4_description", + "original_name": "client::music_playlist::tests::map_music_album::case_4_description", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.925+02:00", + "time": 0.067, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_artist::tests::map_music_artist::case_4_only_more_singles", + "original_name": "client::music_artist::tests::map_music_artist::case_4_only_more_singles", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.766+02:00", + "time": 0.235, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_album::case_5_unavailable", + "original_name": "client::music_playlist::tests::map_music_album::case_5_unavailable", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.932+02:00", + "time": 0.075, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_charts::tests::map_music_charts::case_1_default", + "original_name": "client::music_charts::tests::map_music_charts::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.8+02:00", + "time": 0.228, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_album::case_6_unavailable", + "original_name": "client::music_playlist::tests::map_music_album::case_6_unavailable", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.942+02:00", + "time": 0.086, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_playlist::case_5_n_album", + "original_name": "client::music_playlist::tests::map_music_playlist::case_5_n_album", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.991+02:00", + "time": 0.055, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_playlist::case_3_nomusic", + "original_name": "client::music_playlist::tests::map_music_playlist::case_3_nomusic", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.973+02:00", + "time": 0.081, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_artists", + "original_name": "client::music_search::tests::map_music_search_artists", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.001+02:00", + "time": 0.059, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_albums", + "original_name": "client::music_search::tests::map_music_search_albums", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.993+02:00", + "time": 0.087, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_charts::tests::map_music_charts::case_2_us", + "original_name": "client::music_charts::tests::map_music_charts::case_2_us", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.807+02:00", + "time": 0.285, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_main::case_1_default", + "original_name": "client::music_search::tests::map_music_search_main::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.007+02:00", + "time": 0.086, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_main::case_3_radio", + "original_name": "client::music_search::tests::map_music_search_main::case_3_radio", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.029+02:00", + "time": 0.088, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_new::tests::map_music_new_videos::case_2_default", + "original_name": "client::music_new::tests::map_music_new_videos::case_2_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.848+02:00", + "time": 0.286, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_suggestion::case_2_empty", + "original_name": "client::music_search::tests::map_music_search_suggestion::case_2_empty", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.092+02:00", + "time": 0.042, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_suggestion::case_1_default", + "original_name": "client::music_search::tests::map_music_search_suggestion::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.079+02:00", + "time": 0.055, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_main::case_2_typo", + "original_name": "client::music_search::tests::map_music_search_main::case_2_typo", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.028+02:00", + "time": 0.106, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_main::case_4_artist", + "original_name": "client::music_search::tests::map_music_search_main::case_4_artist", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.046+02:00", + "time": 0.091, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_artist::tests::map_music_artist::case_1_default", + "original_name": "client::music_artist::tests::map_music_artist::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.747+02:00", + "time": 0.391, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_playlists::case_1_ytm", + "original_name": "client::music_search::tests::map_music_search_playlists::case_1_ytm", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.054+02:00", + "time": 0.094, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_playlists::case_2_community", + "original_name": "client::music_search::tests::map_music_search_playlists::case_2_community", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.061+02:00", + "time": 0.096, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_music_playlists::case_1_playlist_related", + "original_name": "client::pagination::tests::map_continuation_music_playlists::case_1_playlist_related", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.138+02:00", + "time": 0.053, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_tracks::case_1_default", + "original_name": "client::music_search::tests::map_music_search_tracks::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.093+02:00", + "time": 0.1, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_tracks::case_4_no_artist_link", + "original_name": "client::music_search::tests::map_music_search_tracks::case_4_no_artist_link", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.134+02:00", + "time": 0.062, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_items::case_3_recommendations", + "original_name": "client::pagination::tests::map_continuation_items::case_3_recommendations", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.137+02:00", + "time": 0.074, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_playlists::case_1_channel_playlists", + "original_name": "client::pagination::tests::map_continuation_playlists::case_1_channel_playlists", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.147+02:00", + "time": 0.065, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::player::tests::cipher_to_url", + "original_name": "client::player::tests::cipher_to_url", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.213+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_items::case_1_search", + "original_name": "client::pagination::tests::map_continuation_items::case_1_search", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.135+02:00", + "time": 0.091, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_tracks::case_3_videos", + "original_name": "client::music_search::tests::map_music_search_tracks::case_3_videos", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.134+02:00", + "time": 0.093, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_items::case_2_startpage", + "original_name": "client::pagination::tests::map_continuation_items::case_2_startpage", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.135+02:00", + "time": 0.095, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_search::tests::map_music_search_tracks::case_2_typo", + "original_name": "client::music_search::tests::map_music_search_tracks::case_2_typo", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.117+02:00", + "time": 0.116, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_genres::tests::map_music_genre::case_2_mood", + "original_name": "client::music_genres::tests::map_music_genre::case_2_mood", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.837+02:00", + "time": 0.396, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_playlist::case_1_short", + "original_name": "client::music_playlist::tests::map_music_playlist::case_1_short", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.953+02:00", + "time": 0.303, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_tracks::case_2_search_tracks", + "original_name": "client::pagination::tests::map_continuation_tracks::case_2_search_tracks", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.191+02:00", + "time": 0.081, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_videos::case_1_channel_videos", + "original_name": "client::pagination::tests::map_continuation_videos::case_1_channel_videos", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.196+02:00", + "time": 0.092, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::player::tests::map_player_data::case_4_android", + "original_name": "client::player::tests::map_player_data::case_4_android", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.23+02:00", + "time": 0.062, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_playlist::case_4_two_columns", + "original_name": "client::music_playlist::tests::map_music_playlist::case_4_two_columns", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.974+02:00", + "time": 0.321, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::player::tests::map_player_data::case_5_ios", + "original_name": "client::player::tests::map_player_data::case_5_ios", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.233+02:00", + "time": 0.066, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::player::tests::map_player_data::case_3_tv_html5_embed", + "original_name": "client::player::tests::map_player_data::case_3_tv_html5_embed", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.227+02:00", + "time": 0.076, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::response::music_item::tests::map_album_type_samples", + "original_name": "client::response::music_item::tests::map_album_type_samples", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.292+02:00", + "time": 0.011, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_playlist::tests::map_music_playlist::case_2_long", + "original_name": "client::music_playlist::tests::map_music_playlist::case_2_long", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.959+02:00", + "time": 0.344, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::player::tests::map_player_data::case_2_desktop_music", + "original_name": "client::player::tests::map_player_data::case_2_desktop_music", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.226+02:00", + "time": 0.081, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_genres::tests::map_music_genre::case_1_default", + "original_name": "client::music_genres::tests::map_music_genre::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.835+02:00", + "time": 0.473, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_tracks::case_3_radio_tracks", + "original_name": "client::pagination::tests::map_continuation_tracks::case_3_radio_tracks", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.193+02:00", + "time": 0.127, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::player::tests::map_player_data::case_1_desktop", + "original_name": "client::player::tests::map_player_data::case_1_desktop", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.221+02:00", + "time": 0.108, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::search::tests::t_map_search::case_3_empty", + "original_name": "client::search::tests::t_map_search::case_3_empty", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.303+02:00", + "time": 0.039, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::search::tests::t_map_search::case_2_playlists", + "original_name": "client::search::tests::t_map_search::case_2_playlists", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.299+02:00", + "time": 0.063, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::music_new::tests::map_music_new_albums::case_1_default", + "original_name": "client::music_new::tests::map_music_new_albums::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:30.841+02:00", + "time": 0.533, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::search::tests::t_map_search::case_4_ab3_channel_handles", + "original_name": "client::search::tests::t_map_search::case_4_ab3_channel_handles", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.303+02:00", + "time": 0.072, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_videos::case_2_playlist", + "original_name": "client::pagination::tests::map_continuation_videos::case_2_playlist", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.211+02:00", + "time": 0.177, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::tests::t_get_visitor_data", + "original_name": "client::tests::t_get_visitor_data", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.308+02:00", + "time": 0.109, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::playlist::tests::map_playlist_data::case_1_short", + "original_name": "client::playlist::tests::map_playlist_data::case_1_short", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.233+02:00", + "time": 0.188, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::playlist::tests::map_playlist_data::case_3_nomusic", + "original_name": "client::playlist::tests::map_playlist_data::case_3_nomusic", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.272+02:00", + "time": 0.159, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::pagination::tests::map_continuation_tracks::case_1_playlist_tracks", + "original_name": "client::pagination::tests::map_continuation_tracks::case_1_playlist_tracks", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.157+02:00", + "time": 0.291, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::search::tests::t_map_search::case_1_default", + "original_name": "client::search::tests::t_map_search::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.294+02:00", + "time": 0.161, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_comments::case_4_frameworkupd_reply", + "original_name": "client::video_details::tests::map_comments::case_4_frameworkupd_reply", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.388+02:00", + "time": 0.079, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_comments::case_1_top", + "original_name": "client::video_details::tests::map_comments::case_1_top", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.362+02:00", + "time": 0.108, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::trends::tests::map_trending::case_2_page_header_renderer", + "original_name": "client::trends::tests::map_trending::case_2_page_header_renderer", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.342+02:00", + "time": 0.131, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_comments::case_2_latest", + "original_name": "client::video_details::tests::map_comments::case_2_latest", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.373+02:00", + "time": 0.101, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::trends::tests::map_startpage", + "original_name": "client::trends::tests::map_startpage", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.32+02:00", + "time": 0.158, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::playlist::tests::map_playlist_data::case_2_long", + "original_name": "client::playlist::tests::map_playlist_data::case_2_long", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.256+02:00", + "time": 0.228, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details_not_found", + "original_name": "client::video_details::tests::map_video_details_not_found", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.484+02:00", + "time": 0.011, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_comments::case_3_frameworkupd", + "original_name": "client::video_details::tests::map_comments::case_3_frameworkupd", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.376+02:00", + "time": 0.12, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_deobfuscate_nsig", + "original_name": "deobfuscate::tests::t_deobfuscate_nsig", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.495+02:00", + "time": 0.006, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_deobfuscate_sig", + "original_name": "deobfuscate::tests::t_deobfuscate_sig", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.495+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_02_music", + "original_name": "client::video_details::tests::map_video_details::case_02_music", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.422+02:00", + "time": 0.081, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_06_agegate", + "original_name": "client::video_details::tests::map_video_details::case_06_agegate", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.467+02:00", + "time": 0.04, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_extract_js_fn", + "original_name": "deobfuscate::tests::t_extract_js_fn", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.501+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::playlist::tests::map_playlist_data::case_4_live", + "original_name": "client::playlist::tests::map_playlist_data::case_4_live", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.288+02:00", + "time": 0.224, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_01_mv", + "original_name": "client::video_details::tests::map_video_details::case_01_mv", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.417+02:00", + "time": 0.095, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_extract_js_fn_eviljs", + "original_name": "deobfuscate::tests::t_extract_js_fn_eviljs", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.503+02:00", + "time": 0.011, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_get_nsig_fn", + "original_name": "deobfuscate::tests::t_get_nsig_fn", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.503+02:00", + "time": 0.012, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_get_nsig_fn_name", + "original_name": "deobfuscate::tests::t_get_nsig_fn_name", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.508+02:00", + "time": 0.022, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_get_sts", + "original_name": "deobfuscate::tests::t_get_sts", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.514+02:00", + "time": 0.015, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::tests::t_extract_desktop_client_version", + "original_name": "client::tests::t_extract_desktop_client_version", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.304+02:00", + "time": 0.226, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_03_ccommons", + "original_name": "client::video_details::tests::map_video_details::case_03_ccommons", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.431+02:00", + "time": 0.104, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::tests::t_extract_music_client_version", + "original_name": "client::tests::t_extract_music_client_version", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.307+02:00", + "time": 0.233, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_01", + "original_name": "param::search_filter::tests::t_filter::case_01", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.535+02:00", + "time": 0.013, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_02", + "original_name": "param::search_filter::tests::t_filter::case_02", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.541+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_05_live", + "original_name": "client::video_details::tests::map_video_details::case_05_live", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.456+02:00", + "time": 0.095, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_03", + "original_name": "param::search_filter::tests::t_filter::case_03", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.547+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_04", + "original_name": "param::search_filter::tests::t_filter::case_04", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.548+02:00", + "time": 0.006, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_06", + "original_name": "param::search_filter::tests::t_filter::case_06", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.554+02:00", + "time": 0.006, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_05", + "original_name": "param::search_filter::tests::t_filter::case_05", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.551+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_08_ab_new_cont", + "original_name": "client::video_details::tests::map_video_details::case_08_ab_new_cont", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.473+02:00", + "time": 0.088, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_07_ab_newdesc", + "original_name": "client::video_details::tests::map_video_details::case_07_ab_newdesc", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.47+02:00", + "time": 0.093, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_07", + "original_name": "param::search_filter::tests::t_filter::case_07", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.555+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::model::richtext::tests::to_plaintext", + "original_name": "model::richtext::tests::to_plaintext", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.534+02:00", + "time": 0.031, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_09", + "original_name": "param::search_filter::tests::t_filter::case_09", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.56+02:00", + "time": 0.006, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::model::richtext::tests::to_markdown", + "original_name": "model::richtext::tests::to_markdown", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.534+02:00", + "time": 0.032, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::model::richtext::tests::to_html", + "original_name": "model::richtext::tests::to_html", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.529+02:00", + "time": 0.037, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_08", + "original_name": "param::search_filter::tests::t_filter::case_08", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.56+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_10", + "original_name": "param::search_filter::tests::t_filter::case_10", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.562+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_04_chapters", + "original_name": "client::video_details::tests::map_video_details::case_04_chapters", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.447+02:00", + "time": 0.122, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_12", + "original_name": "param::search_filter::tests::t_filter::case_12", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.563+02:00", + "time": 0.006, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_11", + "original_name": "param::search_filter::tests::t_filter::case_11", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.562+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_14", + "original_name": "param::search_filter::tests::t_filter::case_14", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.566+02:00", + "time": 0.006, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_15", + "original_name": "param::search_filter::tests::t_filter::case_15", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.566+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_13", + "original_name": "param::search_filter::tests::t_filter::case_13", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.565+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_16", + "original_name": "param::search_filter::tests::t_filter::case_16", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.567+02:00", + "time": 0.006, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_17", + "original_name": "param::search_filter::tests::t_filter::case_17", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.567+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_18", + "original_name": "param::search_filter::tests::t_filter::case_18", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.568+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_20", + "original_name": "param::search_filter::tests::t_filter::case_20", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.571+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_19", + "original_name": "param::search_filter::tests::t_filter::case_19", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.569+02:00", + "time": 0.01, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_21", + "original_name": "param::search_filter::tests::t_filter::case_21", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.571+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_22", + "original_name": "param::search_filter::tests::t_filter::case_22", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.573+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::search_filter::tests::t_filter::case_23", + "original_name": "param::search_filter::tests::t_filter::case_23", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.573+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_audio_stream::case_1_default", + "original_name": "param::stream_filter::tests::t_select_audio_stream::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.574+02:00", + "time": 0.015, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_audio_stream::case_2_bitrate", + "original_name": "param::stream_filter::tests::t_select_audio_stream::case_2_bitrate", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.574+02:00", + "time": 0.017, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_audio_stream::case_3_m4a_format", + "original_name": "param::stream_filter::tests::t_select_audio_stream::case_3_m4a_format", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.575+02:00", + "time": 0.017, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_audio_stream::case_6_br_fallback", + "original_name": "param::stream_filter::tests::t_select_audio_stream::case_6_br_fallback", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.579+02:00", + "time": 0.017, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_audio_stream::case_7_lang_fallback", + "original_name": "param::stream_filter::tests::t_select_audio_stream::case_7_lang_fallback", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.58+02:00", + "time": 0.017, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_audio_stream::case_9_nocodec", + "original_name": "param::stream_filter::tests::t_select_audio_stream::case_9_nocodec", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.58+02:00", + "time": 0.016, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_audio_stream::case_8_noformat", + "original_name": "param::stream_filter::tests::t_select_audio_stream::case_8_noformat", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.58+02:00", + "time": 0.018, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_audio_stream::case_4_m4a_codec", + "original_name": "param::stream_filter::tests::t_select_audio_stream::case_4_m4a_codec", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.578+02:00", + "time": 0.022, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_09_ab_no_recommends", + "original_name": "client::video_details::tests::map_video_details::case_09_ab_no_recommends", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.475+02:00", + "time": 0.126, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_audio_stream::case_1_default", + "original_name": "param::stream_filter::tests::t_select_video_audio_stream::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.589+02:00", + "time": 0.013, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_audio_stream::case_2_webm", + "original_name": "param::stream_filter::tests::t_select_video_audio_stream::case_2_webm", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.591+02:00", + "time": 0.013, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_audio_stream::case_5_french", + "original_name": "param::stream_filter::tests::t_select_audio_stream::case_5_french", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.578+02:00", + "time": 0.026, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_audio_stream::case_3_noaudio", + "original_name": "param::stream_filter::tests::t_select_video_audio_stream::case_3_noaudio", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.592+02:00", + "time": 0.013, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::video_details::tests::map_video_details::case_10_ab_new_likes", + "original_name": "client::video_details::tests::map_video_details::case_10_ab_new_likes", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.478+02:00", + "time": 0.131, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_audio_stream::case_4_novideo", + "original_name": "param::stream_filter::tests::t_select_video_audio_stream::case_4_novideo", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.596+02:00", + "time": 0.013, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_only_stream::case_2_hdr", + "original_name": "param::stream_filter::tests::t_select_video_only_stream::case_2_hdr", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.598+02:00", + "time": 0.012, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_only_stream::case_1_default", + "original_name": "param::stream_filter::tests::t_select_video_only_stream::case_1_default", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.597+02:00", + "time": 0.013, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_audio_stream::case_5_noformat", + "original_name": "param::stream_filter::tests::t_select_video_audio_stream::case_5_noformat", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.597+02:00", + "time": 0.014, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_only_stream::case_3_resolution", + "original_name": "param::stream_filter::tests::t_select_video_only_stream::case_3_resolution", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.599+02:00", + "time": 0.012, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_only_stream::case_5_res_fallback", + "original_name": "param::stream_filter::tests::t_select_video_only_stream::case_5_res_fallback", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.602+02:00", + "time": 0.013, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_get_player_js_url", + "original_name": "deobfuscate::tests::t_get_player_js_url", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.51+02:00", + "time": 0.106, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_only_stream::case_7_vp9_codec", + "original_name": "param::stream_filter::tests::t_select_video_only_stream::case_7_vp9_codec", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.604+02:00", + "time": 0.012, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::tests::t_ignore_any", + "original_name": "serializer::tests::t_ignore_any", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.609+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_only_stream::case_8_noformat", + "original_name": "param::stream_filter::tests::t_select_video_only_stream::case_8_noformat", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.605+02:00", + "time": 0.013, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_only_stream::case_6_webm_format", + "original_name": "param::stream_filter::tests::t_select_video_only_stream::case_6_webm_format", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.604+02:00", + "time": 0.014, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_deserialize_text::case_1", + "original_name": "serializer::text::tests::t_deserialize_text::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.612+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_only_stream::case_4_resolution_fps", + "original_name": "param::stream_filter::tests::t_select_video_only_stream::case_4_resolution_fps", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.601+02:00", + "time": 0.019, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::param::stream_filter::tests::t_select_video_only_stream::case_9_nocodec", + "original_name": "param::stream_filter::tests::t_select_video_only_stream::case_9_nocodec", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.608+02:00", + "time": 0.014, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_deserialize_text::case_2", + "original_name": "serializer::text::tests::t_deserialize_text::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.615+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_deserialize_text::case_3", + "original_name": "serializer::text::tests::t_deserialize_text::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.615+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_deserialize_text::case_4", + "original_name": "serializer::text::tests::t_deserialize_text::case_4", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.617+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_links_empty", + "original_name": "serializer::text::tests::t_links_empty", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.624+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_get_sig_fn", + "original_name": "deobfuscate::tests::t_get_sig_fn", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.512+02:00", + "time": 0.122, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_get_sig_fn_name", + "original_name": "deobfuscate::tests::t_get_sig_fn_name", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.513+02:00", + "time": 0.125, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::protobuf::tests::t_parse_proto", + "original_name": "util::protobuf::tests::t_parse_proto", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.631+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::parse_language::case_1", + "original_name": "util::tests::parse_language::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.634+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::split_text_cmp", + "original_name": "serializer::text::tests::split_text_cmp", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.61+02:00", + "time": 0.034, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::styled_comment", + "original_name": "serializer::text::tests::styled_comment", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.61+02:00", + "time": 0.034, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::parse_language::case_2", + "original_name": "util::tests::parse_language::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.638+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_attributed_description", + "original_name": "serializer::text::tests::t_attributed_description", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.611+02:00", + "time": 0.036, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::parse_language::case_3", + "original_name": "util::tests::parse_language::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.639+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::parse_language::case_4", + "original_name": "util::tests::parse_language::case_4", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.642+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_link_channel", + "original_name": "serializer::text::tests::t_link_channel", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.618+02:00", + "time": 0.032, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_link_none", + "original_name": "serializer::text::tests::t_link_none", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.618+02:00", + "time": 0.033, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::parse_language::case_5", + "original_name": "util::tests::parse_language::case_5", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.644+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::parse_language::case_6", + "original_name": "util::tests::parse_language::case_6", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.644+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_link_video", + "original_name": "serializer::text::tests::t_link_video", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.619+02:00", + "time": 0.032, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_link_web", + "original_name": "serializer::text::tests::t_link_web", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.62+02:00", + "time": 0.034, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_link_album", + "original_name": "serializer::text::tests::t_link_album", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.617+02:00", + "time": 0.037, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::split_words", + "original_name": "util::tests::split_words", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.647+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::split_char", + "original_name": "util::tests::split_char", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.645+02:00", + "time": 0.011, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::vec_log_err::tests::skip_error", + "original_name": "serializer::vec_log_err::tests::skip_error", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.625+02:00", + "time": 0.031, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::text::tests::t_links_artists", + "original_name": "serializer::text::tests::t_links_artists", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.622+02:00", + "time": 0.034, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::serializer::vec_log_err::tests::log_error", + "original_name": "serializer::vec_log_err::tests::log_error", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.624+02:00", + "time": 0.033, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_country_from_name::case_2", + "original_name": "util::tests::t_country_from_name::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.649+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_country_from_name::case_3", + "original_name": "util::tests::t_country_from_name::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.65+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_country_from_name::case_1", + "original_name": "util::tests::t_country_from_name::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.648+02:00", + "time": 0.011, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_large_numstr::case_2", + "original_name": "util::tests::t_parse_large_numstr::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.652+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_large_numstr::case_1", + "original_name": "util::tests::t_parse_large_numstr::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.651+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_large_numstr::case_4", + "original_name": "util::tests::t_parse_large_numstr::case_4", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.652+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_large_numstr::case_3", + "original_name": "util::tests::t_parse_large_numstr::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.652+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_large_numstr::case_5", + "original_name": "util::tests::t_parse_large_numstr::case_5", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.654+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_large_numstr::case_7", + "original_name": "util::tests::t_parse_large_numstr::case_7", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.655+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_large_numstr::case_6", + "original_name": "util::tests::t_parse_large_numstr::case_6", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.654+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_num::case_2", + "original_name": "util::tests::t_parse_num::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.657+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_numeric_vec::case_1", + "original_name": "util::tests::t_parse_numeric_vec::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.658+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_num::case_1", + "original_name": "util::tests::t_parse_num::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.657+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_numeric_vec::case_3", + "original_name": "util::tests::t_parse_numeric_vec::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.659+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_numeric_vec::case_2", + "original_name": "util::tests::t_parse_numeric_vec::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.658+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_video_length::case_3", + "original_name": "util::tests::t_parse_video_length::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.66+02:00", + "time": 0.01, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_retry_delay::case_2", + "original_name": "util::tests::t_retry_delay::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.663+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_video_length::case_1", + "original_name": "util::tests::t_parse_video_length::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.66+02:00", + "time": 0.011, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_retry_delay::case_1", + "original_name": "util::tests::t_retry_delay::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.663+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_retry_delay::case_4", + "original_name": "util::tests::t_retry_delay::case_4", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.665+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_sanitize_yt_url::case_1", + "original_name": "util::tests::t_sanitize_yt_url::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.665+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_video_length::case_2", + "original_name": "util::tests::t_parse_video_length::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.66+02:00", + "time": 0.013, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_sanitize_yt_url::case_2", + "original_name": "util::tests::t_sanitize_yt_url::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.666+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_video_length::case_6", + "original_name": "util::tests::t_parse_video_length::case_6", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.662+02:00", + "time": 0.012, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_video_length::case_5", + "original_name": "util::tests::t_parse_video_length::case_5", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.662+02:00", + "time": 0.013, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_sanitize_yt_url::case_3", + "original_name": "util::tests::t_sanitize_yt_url::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.666+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_retry_delay::case_3", + "original_name": "util::tests::t_retry_delay::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.664+02:00", + "time": 0.012, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_video_length::case_4", + "original_name": "util::tests::t_parse_video_length::case_4", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.661+02:00", + "time": 0.016, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_vec_try_remove", + "original_name": "util::tests::t_vec_try_remove", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.671+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_vec_try_swap_remove", + "original_name": "util::tests::t_vec_try_swap_remove", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.672+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse::case_1_de", + "original_name": "util::timeago::tests::t_parse::case_1_de", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.672+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse::case_3_nbsp", + "original_name": "util::timeago::tests::t_parse::case_3_nbsp", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.673+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse::case_2_ar", + "original_name": "util::timeago::tests::t_parse::case_2_ar", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.673+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_sanitize_yt_url::case_4", + "original_name": "util::tests::t_sanitize_yt_url::case_4", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.671+02:00", + "time": 0.01, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_date::case_1", + "original_name": "util::timeago::tests::t_parse_date::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.674+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_date::case_3", + "original_name": "util::timeago::tests::t_parse_date::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.675+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_date::case_2", + "original_name": "util::timeago::tests::t_parse_date::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.674+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_date::case_4", + "original_name": "util::timeago::tests::t_parse_date::case_4", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.675+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_date::case_5", + "original_name": "util::timeago::tests::t_parse_date::case_5", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.675+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_date::case_6", + "original_name": "util::timeago::tests::t_parse_date::case_6", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.676+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_video_duration2::case_1", + "original_name": "util::timeago::tests::t_parse_video_duration2::case_1", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.679+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_video_duration2::case_2", + "original_name": "util::timeago::tests::t_parse_video_duration2::case_2", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.681+02:00", + "time": 0.008, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_video_duration2::case_4", + "original_name": "util::timeago::tests::t_parse_video_duration2::case_4", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.681+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_video_duration2::case_5", + "original_name": "util::timeago::tests::t_parse_video_duration2::case_5", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.681+02:00", + "time": 0.007, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_video_duration2::case_3", + "original_name": "util::timeago::tests::t_parse_video_duration2::case_3", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.681+02:00", + "time": 0.009, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_to_datetime", + "original_name": "util::timeago::tests::t_to_datetime", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.683+02:00", + "time": 0.011, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::client::trends::tests::map_trending::case_1_base", + "original_name": "client::trends::tests::map_trending::case_1_base", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.33+02:00", + "time": 0.367, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_date_samples", + "original_name": "util::timeago::tests::t_parse_date_samples", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.677+02:00", + "time": 0.026, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_timeago_table", + "original_name": "util::timeago::tests::t_timeago_table", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.683+02:00", + "time": 0.039, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_testfile_short", + "original_name": "util::timeago::tests::t_testfile_short", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.683+02:00", + "time": 0.039, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_testfile", + "original_name": "util::timeago::tests::t_testfile", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.682+02:00", + "time": 0.04, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::timeago::tests::t_parse_video_duration", + "original_name": "util::timeago::tests::t_parse_video_duration", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.679+02:00", + "time": 0.07, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::util::tests::t_parse_large_numstr_samples", + "original_name": "util::tests::t_parse_large_numstr_samples", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.656+02:00", + "time": 0.235, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "rustypipe::deobfuscate::tests::t_update", + "original_name": "deobfuscate::tests::t_update", + "classname": "rustypipe", + "timestamp": "2024-05-31T22:35:31.515+02:00", + "time": 1.806, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + } + ], + "time": 0.0, + "tests": 248, + "errors": 0, + "failures": 0, + "skipped": 0, + "flaky": 0 + } + ], + "time": 8.219, + "tests": 418, + "errors": 0, + "failures": 5, + "skipped": 0, + "flaky": 0 +} diff --git a/crates/junit-parser/src/snapshots/junit_parser__tests__parse_vite.snap b/crates/junit-parser/src/snapshots/junit_parser__tests__parse_vite.snap new file mode 100644 index 0000000..e9c5e9a --- /dev/null +++ b/crates/junit-parser/src/snapshots/junit_parser__tests__parse_vite.snap @@ -0,0 +1,824 @@ +--- +source: crates/junit-parser/src/lib.rs +expression: suites +--- +{ + "name": "vitest tests", + "suites": [ + { + "name": "src/lib/server/query/util.test.ts", + "timestamp": "2024-06-04T11:43:17.788Z", + "cases": [ + { + "name": "src/lib/server/query/util.test.ts::query builder", + "original_name": "query builder", + "classname": "src/lib/server/query/util.test.ts", + "timestamp": null, + "time": 0.002, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/server/query/util.test.ts::parse search query", + "original_name": "parse search query", + "classname": "src/lib/server/query/util.test.ts", + "timestamp": null, + "time": 0.001, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/server/query/util.test.ts::mapSortFields", + "original_name": "mapSortFields", + "classname": "src/lib/server/query/util.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + } + ], + "time": 0.006, + "tests": 3, + "errors": 0, + "failures": 0, + "skipped": 0, + "flaky": 0 + }, + { + "name": "src/lib/shared/model/validation.test.ts", + "timestamp": "2024-06-04T11:43:17.789Z", + "cases": [ + { + "name": "src/lib/shared/model/validation.test.ts::date string", + "original_name": "date string", + "classname": "src/lib/shared/model/validation.test.ts", + "timestamp": null, + "time": 0.002, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/model/validation.test.ts::filter data", + "original_name": "filter data", + "classname": "src/lib/shared/model/validation.test.ts", + "timestamp": null, + "time": 0.002, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + } + ], + "time": 0.004, + "tests": 2, + "errors": 0, + "failures": 0, + "skipped": 0, + "flaky": 0 + }, + { + "name": "src/lib/shared/util/colors.test.ts", + "timestamp": "2024-06-04T11:43:17.79Z", + "cases": [ + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > colorToHex", + "original_name": "color conversion > colorToHex", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.001, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > hexToColor", + "original_name": "color conversion > hexToColor", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.001, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > colorToHex", + "original_name": "color conversion > colorToHex", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > hexToColor", + "original_name": "color conversion > hexToColor", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > colorToHex", + "original_name": "color conversion > colorToHex", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > hexToColor", + "original_name": "color conversion > hexToColor", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.001, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > colorToHex", + "original_name": "color conversion > colorToHex", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > hexToColor", + "original_name": "color conversion > hexToColor", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > colorToHex", + "original_name": "color conversion > colorToHex", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > hexToColor", + "original_name": "color conversion > hexToColor", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > colorToHex", + "original_name": "color conversion > colorToHex", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > hexToColor", + "original_name": "color conversion > hexToColor", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > colorToHex", + "original_name": "color conversion > colorToHex", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > hexToColor", + "original_name": "color conversion > hexToColor", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > colorToHex", + "original_name": "color conversion > colorToHex", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.001, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > hexToColor", + "original_name": "color conversion > hexToColor", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > colorToHex", + "original_name": "color conversion > colorToHex", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > hexToColor", + "original_name": "color conversion > hexToColor", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > colorToHex", + "original_name": "color conversion > colorToHex", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/colors.test.ts::color conversion > hexToColor", + "original_name": "color conversion > hexToColor", + "classname": "src/lib/shared/util/colors.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + } + ], + "time": 0.005, + "tests": 20, + "errors": 0, + "failures": 0, + "skipped": 0, + "flaky": 0 + }, + { + "name": "src/lib/shared/util/date.test.ts", + "timestamp": "2024-06-04T11:43:17.792Z", + "cases": [ + { + "name": "src/lib/shared/util/date.test.ts::formatDate", + "original_name": "formatDate", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.014, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::dateFromYMD", + "original_name": "dateFromYMD", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.001, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::dateFromYMD", + "original_name": "dateFromYMD", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::utcDateToYMD", + "original_name": "utcDateToYMD", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.001, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::dateToYMD", + "original_name": "dateToYMD", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::humanDate", + "original_name": "humanDate", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.001, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::humanDate", + "original_name": "humanDate", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::humanDate", + "original_name": "humanDate", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::humanDate", + "original_name": "humanDate", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.001, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::humanDate", + "original_name": "humanDate", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::humanDate", + "original_name": "humanDate", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::humanDate", + "original_name": "humanDate", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.001, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::humanDate", + "original_name": "humanDate", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.002, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::humanDate", + "original_name": "humanDate", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.001, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::humanDate", + "original_name": "humanDate", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::humanDate", + "original_name": "humanDate", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::humanDate", + "original_name": "humanDate", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::humanDate", + "original_name": "humanDate", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.001, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::parse daterange ''", + "original_name": "parse daterange ''", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::parse daterange '..'", + "original_name": "parse daterange '..'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.001, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::parse daterange 'foo..bar'", + "original_name": "parse daterange 'foo..bar'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::parse daterange '2024-04-15'", + "original_name": "parse daterange '2024-04-15'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::parse daterange '2024-04-13..2024-04-20'", + "original_name": "parse daterange '2024-04-13..2024-04-20'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.001, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::parse daterange '2024-04-13..'", + "original_name": "parse daterange '2024-04-13..'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::parse daterange '..2024-04-20'", + "original_name": "parse daterange '..2024-04-20'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::shiftDateRange '..2024-04-14'", + "original_name": "shiftDateRange '..2024-04-14'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::shiftDateRange '..2024-04-14'", + "original_name": "shiftDateRange '..2024-04-14'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::shiftDateRange '2024-04-08..'", + "original_name": "shiftDateRange '2024-04-08..'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.001, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::shiftDateRange '2024-04-08..'", + "original_name": "shiftDateRange '2024-04-08..'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::shiftDateRange '2024-04-08..2024-04-14'", + "original_name": "shiftDateRange '2024-04-08..2024-04-14'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::shiftDateRange '2024-04-08..2024-04-14'", + "original_name": "shiftDateRange '2024-04-08..2024-04-14'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::shiftDateRange '2024-04-13..2024-04-16'", + "original_name": "shiftDateRange '2024-04-13..2024-04-16'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::shiftDateRange '2024-04-13..2024-04-16'", + "original_name": "shiftDateRange '2024-04-13..2024-04-16'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::shiftDateRange '2024-04-13..2024-04-13'", + "original_name": "shiftDateRange '2024-04-13..2024-04-13'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::shiftDateRange '2024-04-13..2024-04-13'", + "original_name": "shiftDateRange '2024-04-13..2024-04-13'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::shiftDateRange '2024-04-08..2024-04-14'", + "original_name": "shiftDateRange '2024-04-08..2024-04-14'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::shiftDateRange '2024-04-08..2024-04-14'", + "original_name": "shiftDateRange '2024-04-08..2024-04-14'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::shiftDateRange '..2024-04-14'", + "original_name": "shiftDateRange '..2024-04-14'", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.001, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/date.test.ts::dateFromHuman", + "original_name": "dateFromHuman", + "classname": "src/lib/shared/util/date.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + } + ], + "time": 0.027, + "tests": 39, + "errors": 0, + "failures": 0, + "skipped": 0, + "flaky": 0 + }, + { + "name": "src/lib/shared/util/diff.test.ts", + "timestamp": "2024-06-04T11:43:17.795Z", + "cases": [ + { + "name": "src/lib/shared/util/diff.test.ts::versions diff", + "original_name": "versions diff", + "classname": "src/lib/shared/util/diff.test.ts", + "timestamp": null, + "time": 0.003, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + } + ], + "time": 0.003, + "tests": 1, + "errors": 0, + "failures": 0, + "skipped": 0, + "flaky": 0 + }, + { + "name": "src/lib/shared/util/util.test.ts", + "timestamp": "2024-06-04T11:43:17.795Z", + "cases": [ + { + "name": "src/lib/shared/util/util.test.ts::getQueryUrl", + "original_name": "getQueryUrl", + "classname": "src/lib/shared/util/util.test.ts", + "timestamp": null, + "time": 0.005, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + }, + { + "name": "src/lib/shared/util/util.test.ts::normalizeLineEndings", + "original_name": "normalizeLineEndings", + "classname": "src/lib/shared/util/util.test.ts", + "timestamp": null, + "time": 0.0, + "status": "Success", + "system_out": null, + "system_err": null, + "retries": [] + } + ], + "time": 0.005, + "tests": 2, + "errors": 0, + "failures": 0, + "skipped": 0, + "flaky": 0 + } + ], + "time": 1.371, + "tests": 67, + "errors": 0, + "failures": 0, + "skipped": 0, + "flaky": 0 +} diff --git a/src/viewer/junit.rs b/src/viewer/junit.rs index 767fa76..bc2c7de 100644 --- a/src/viewer/junit.rs +++ b/src/viewer/junit.rs @@ -18,8 +18,11 @@ impl Viewer for JunitViewer { ext == "xml" && filename.contains("junit") } - fn try_render(&self, _filename: &str, _ext: &str, data: &str) -> Result { - let suites = junit_parser::from_str(data).unwrap(); + fn try_render(&self, filename: &str, _ext: &str, data: &str) -> Result { + let suites = junit_parser::from_str(data).map_err(|e| { + tracing::error!("could not parse junit report {filename}: {e}"); + Error::ViewerNotApplicable + })?; dbg!(&suites); Ok(String::new()) } diff --git a/tests/testfiles/junit/rerun.junit.xml b/tests/testfiles/junit/rerun.junit.xml deleted file mode 100644 index 86c883a..0000000 --- a/tests/testfiles/junit/rerun.junit.xml +++ /dev/null @@ -1,1392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: -video #247 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: -video #247 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - -running 1 test -test get_player_from_client::case_4_ios ... FAILED - -failures: - -failures: - get_player_from_client::case_4_ios - -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.16s - - - thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: -video #247 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - - thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: -video #247 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - -running 1 test -test get_player_from_client::case_4_ios ... FAILED - -failures: - -failures: - get_player_from_client::case_4_ios - -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.16s - - - thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: -video #247 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - - thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: -video #247 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - -running 1 test -test get_player_from_client::case_4_ios ... FAILED - -failures: - -failures: - get_player_from_client::case_4_ios - -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.17s - - - thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: -video #247 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - - -running 1 test -test get_player_from_client::case_4_ios ... FAILED - -failures: - -failures: - get_player_from_client::case_4_ios - -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.20s - - - thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: -video #247 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - thread 'music_charts::case_2_us' panicked at tests/youtube.rs:2494:9: -expected >= 8 charts playlists, got 0 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - -running 1 test -test music_charts::case_2_us ... FAILED - -failures: - -failures: - music_charts::case_2_us - -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.33s - - - thread 'music_charts::case_2_us' panicked at tests/youtube.rs:2494:9: -expected >= 8 charts playlists, got 0 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - - - - - - - - - - - - - - thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_version_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_version_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - -running 1 test -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap -Snapshot: music_album_version_no_artist -Source: tests/youtube.rs:1593 -──────────────────────────────────────────────────────────────────────────────── -Expression: album -──────────────────────────────────────────────────────────────────────────────── --old snapshot -+new results -────────────┬─────────────────────────────────────────────────────────────────── - 122 122 │ width: 544, - 123 123 │ height: 544, - 124 124 │ ), - 125 125 │ ], - 126 │- artists: [], - 127 │- artist_id: None, - 126 │+ artists: [ - 127 │+ ArtistId( - 128 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 129 │+ name: "S.p. Kodandapani", - 130 │+ ), - 131 │+ ArtistId( - 132 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), - 133 │+ name: "S. P. Kodandapani", - 134 │+ ), - 135 │+ ], - 136 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 128 137 │ album_type: Ep, - 129 138 │ year: None, - 130 │- by_va: true, - 139 │+ by_va: false, - 131 140 │ ), - 132 141 │ ], - 133 142 │ ) -────────────┴─────────────────────────────────────────────────────────────────── -To update snapshots run `cargo insta review` -Stopped on the first failure. Run `cargo insta test` to run all snapshots. -test music_album::case_8_version_no_artist ... FAILED - -failures: - -failures: - music_album::case_8_version_no_artist - -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.32s - - - stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new -thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_version_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - - thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_version_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - -running 1 test -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap -Snapshot: music_album_version_no_artist -Source: tests/youtube.rs:1593 -──────────────────────────────────────────────────────────────────────────────── -Expression: album -──────────────────────────────────────────────────────────────────────────────── --old snapshot -+new results -────────────┬─────────────────────────────────────────────────────────────────── - 122 122 │ width: 544, - 123 123 │ height: 544, - 124 124 │ ), - 125 125 │ ], - 126 │- artists: [], - 127 │- artist_id: None, - 126 │+ artists: [ - 127 │+ ArtistId( - 128 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 129 │+ name: "S.p. Kodandapani", - 130 │+ ), - 131 │+ ArtistId( - 132 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), - 133 │+ name: "S. P. Kodandapani", - 134 │+ ), - 135 │+ ], - 136 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 128 137 │ album_type: Ep, - 129 138 │ year: None, - 130 │- by_va: true, - 139 │+ by_va: false, - 131 140 │ ), - 132 141 │ ], - 133 142 │ ) -────────────┴─────────────────────────────────────────────────────────────────── -To update snapshots run `cargo insta review` -Stopped on the first failure. Run `cargo insta test` to run all snapshots. -test music_album::case_8_version_no_artist ... FAILED - -failures: - -failures: - music_album::case_8_version_no_artist - -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.21s - - - stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new -thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_version_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - - thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_version_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - -running 1 test -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap -Snapshot: music_album_version_no_artist -Source: tests/youtube.rs:1593 -──────────────────────────────────────────────────────────────────────────────── -Expression: album -──────────────────────────────────────────────────────────────────────────────── --old snapshot -+new results -────────────┬─────────────────────────────────────────────────────────────────── - 122 122 │ width: 544, - 123 123 │ height: 544, - 124 124 │ ), - 125 125 │ ], - 126 │- artists: [], - 127 │- artist_id: None, - 126 │+ artists: [ - 127 │+ ArtistId( - 128 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 129 │+ name: "S.p. Kodandapani", - 130 │+ ), - 131 │+ ArtistId( - 132 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), - 133 │+ name: "S. P. Kodandapani", - 134 │+ ), - 135 │+ ], - 136 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 128 137 │ album_type: Ep, - 129 138 │ year: None, - 130 │- by_va: true, - 139 │+ by_va: false, - 131 140 │ ), - 132 141 │ ], - 133 142 │ ) -────────────┴─────────────────────────────────────────────────────────────────── -To update snapshots run `cargo insta review` -Stopped on the first failure. Run `cargo insta test` to run all snapshots. -test music_album::case_8_version_no_artist ... FAILED - -failures: - -failures: - music_album::case_8_version_no_artist - -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.27s - - - stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new -thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_version_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - - -running 1 test -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap -Snapshot: music_album_version_no_artist -Source: tests/youtube.rs:1593 -──────────────────────────────────────────────────────────────────────────────── -Expression: album -──────────────────────────────────────────────────────────────────────────────── --old snapshot -+new results -────────────┬─────────────────────────────────────────────────────────────────── - 122 122 │ width: 544, - 123 123 │ height: 544, - 124 124 │ ), - 125 125 │ ], - 126 │- artists: [], - 127 │- artist_id: None, - 126 │+ artists: [ - 127 │+ ArtistId( - 128 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 129 │+ name: "S.p. Kodandapani", - 130 │+ ), - 131 │+ ArtistId( - 132 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), - 133 │+ name: "S. P. Kodandapani", - 134 │+ ), - 135 │+ ], - 136 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 128 137 │ album_type: Ep, - 129 138 │ year: None, - 130 │- by_va: true, - 139 │+ by_va: false, - 131 140 │ ), - 132 141 │ ], - 133 142 │ ) -────────────┴─────────────────────────────────────────────────────────────────── -To update snapshots run `cargo insta review` -Stopped on the first failure. Run `cargo insta test` to run all snapshots. -test music_album::case_8_version_no_artist ... FAILED - -failures: - -failures: - music_album::case_8_version_no_artist - -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.30s - - - stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new -thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_version_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - - - - - - - - - - - thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - -running 1 test -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap -Snapshot: music_album_no_artist -Source: tests/youtube.rs:1593 -──────────────────────────────────────────────────────────────────────────────── -Expression: album -──────────────────────────────────────────────────────────────────────────────── --old snapshot -+new results -────────────┬─────────────────────────────────────────────────────────────────── - 1 1 │ id: "MPREb_bqWA6mAZFWS", - 2 2 │ playlist_id: Some("OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0"), - 3 3 │ name: "Pedha Rasi Peddamma Katha", - 4 4 │ cover: "[cover]", - 5 │- artists: [], - 6 │- artist_id: None, - 5 │+ artists: [ - 6 │+ ArtistId( - 7 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 8 │+ name: "S.p. Kodandapani", - 9 │+ ), - 10 │+ ArtistId( - 11 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), - 12 │+ name: "S. P. Kodandapani", - 13 │+ ), - 14 │+ ], - 15 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 7 16 │ description: None, - 8 17 │ album_type: Ep, - 9 18 │ year: Some(1968), - 10 19 │ by_va: false, -────────────┴─────────────────────────────────────────────────────────────────── -To update snapshots run `cargo insta review` -Stopped on the first failure. Run `cargo insta test` to run all snapshots. -test music_album::case_9_no_artist ... FAILED - -failures: - -failures: - music_album::case_9_no_artist - -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.25s - - - stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new -thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - - thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - -running 1 test -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap -Snapshot: music_album_no_artist -Source: tests/youtube.rs:1593 -──────────────────────────────────────────────────────────────────────────────── -Expression: album -──────────────────────────────────────────────────────────────────────────────── --old snapshot -+new results -────────────┬─────────────────────────────────────────────────────────────────── - 1 1 │ id: "MPREb_bqWA6mAZFWS", - 2 2 │ playlist_id: Some("OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0"), - 3 3 │ name: "Pedha Rasi Peddamma Katha", - 4 4 │ cover: "[cover]", - 5 │- artists: [], - 6 │- artist_id: None, - 5 │+ artists: [ - 6 │+ ArtistId( - 7 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 8 │+ name: "S.p. Kodandapani", - 9 │+ ), - 10 │+ ArtistId( - 11 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), - 12 │+ name: "S. P. Kodandapani", - 13 │+ ), - 14 │+ ], - 15 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 7 16 │ description: None, - 8 17 │ album_type: Ep, - 9 18 │ year: Some(1968), - 10 19 │ by_va: false, -────────────┴─────────────────────────────────────────────────────────────────── -To update snapshots run `cargo insta review` -Stopped on the first failure. Run `cargo insta test` to run all snapshots. -test music_album::case_9_no_artist ... FAILED - -failures: - -failures: - music_album::case_9_no_artist - -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.25s - - - stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new -thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - - thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - -running 1 test -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap -Snapshot: music_album_no_artist -Source: tests/youtube.rs:1593 -──────────────────────────────────────────────────────────────────────────────── -Expression: album -──────────────────────────────────────────────────────────────────────────────── --old snapshot -+new results -────────────┬─────────────────────────────────────────────────────────────────── - 1 1 │ id: "MPREb_bqWA6mAZFWS", - 2 2 │ playlist_id: Some("OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0"), - 3 3 │ name: "Pedha Rasi Peddamma Katha", - 4 4 │ cover: "[cover]", - 5 │- artists: [], - 6 │- artist_id: None, - 5 │+ artists: [ - 6 │+ ArtistId( - 7 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 8 │+ name: "S.p. Kodandapani", - 9 │+ ), - 10 │+ ArtistId( - 11 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), - 12 │+ name: "S. P. Kodandapani", - 13 │+ ), - 14 │+ ], - 15 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 7 16 │ description: None, - 8 17 │ album_type: Ep, - 9 18 │ year: Some(1968), - 10 19 │ by_va: false, -────────────┴─────────────────────────────────────────────────────────────────── -To update snapshots run `cargo insta review` -Stopped on the first failure. Run `cargo insta test` to run all snapshots. -test music_album::case_9_no_artist ... FAILED - -failures: - -failures: - music_album::case_9_no_artist - -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.30s - - - stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new -thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - - -running 1 test -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap -Snapshot: music_album_no_artist -Source: tests/youtube.rs:1593 -──────────────────────────────────────────────────────────────────────────────── -Expression: album -──────────────────────────────────────────────────────────────────────────────── --old snapshot -+new results -────────────┬─────────────────────────────────────────────────────────────────── - 1 1 │ id: "MPREb_bqWA6mAZFWS", - 2 2 │ playlist_id: Some("OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0"), - 3 3 │ name: "Pedha Rasi Peddamma Katha", - 4 4 │ cover: "[cover]", - 5 │- artists: [], - 6 │- artist_id: None, - 5 │+ artists: [ - 6 │+ ArtistId( - 7 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 8 │+ name: "S.p. Kodandapani", - 9 │+ ), - 10 │+ ArtistId( - 11 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), - 12 │+ name: "S. P. Kodandapani", - 13 │+ ), - 14 │+ ], - 15 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 7 16 │ description: None, - 8 17 │ album_type: Ep, - 9 18 │ year: Some(1968), - 10 19 │ by_va: false, -────────────┴─────────────────────────────────────────────────────────────────── -To update snapshots run `cargo insta review` -Stopped on the first failure. Run `cargo insta test` to run all snapshots. -test music_album::case_9_no_artist ... FAILED - -failures: - -failures: - music_album::case_9_no_artist - -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.30s - - - stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new -thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/testfiles/junit/retry.junit.xml b/tests/testfiles/junit/retry.junit.xml new file mode 100644 index 0000000..cf2ba5b --- /dev/null +++ b/tests/testfiles/junit/retry.junit.xml @@ -0,0 +1,1859 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + thread 'get_player_from_client::case_4_ios' panicked at + tests/youtube.rs:71:14: + video #247 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + thread + 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: video + #247 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + running 1 test + test get_player_from_client::case_4_ios ... FAILED + + failures: + + failures: + get_player_from_client::case_4_ios + + test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished + in 0.16s + + + thread + 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: + video #247 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + thread + 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: video + #247 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + running 1 test + test get_player_from_client::case_4_ios ... FAILED + + failures: + + failures: + get_player_from_client::case_4_ios + + test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished + in 0.16s + + + thread + 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: + video #247 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + thread + 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: video + #247 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + running 1 test + test get_player_from_client::case_4_ios ... FAILED + + failures: + + failures: + get_player_from_client::case_4_ios + + test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished + in 0.17s + + + thread + 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: + video #247 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + + running 1 test + test get_player_from_client::case_4_ios ... FAILED + + failures: + + failures: + get_player_from_client::case_4_ios + + test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished + in 0.20s + + + thread 'get_player_from_client::case_4_ios' panicked at + tests/youtube.rs:71:14: + video #247 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + thread + 'music_charts::case_2_us' panicked at tests/youtube.rs:2494:9: expected >= 8 + charts playlists, got 0 note: run with `RUST_BACKTRACE=1` environment variable to display a + backtrace + running 1 test + test music_charts::case_2_us ... FAILED + + failures: + + failures: + music_charts::case_2_us + + test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished + in 0.33s + + + thread + 'music_charts::case_2_us' panicked at tests/youtube.rs:2494:9: + expected >= 8 charts playlists, got 0 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + + + + + + + + + + + + + thread 'music_album::case_8_version_no_artist' panicked + at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_version_no_artist' failed in line 1593 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + thread + 'music_album::case_8_version_no_artist' panicked at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_version_no_artist' failed in line 1593 note: + run with `RUST_BACKTRACE=1` environment variable to display a backtrace + running 1 test + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap + Snapshot: music_album_version_no_artist + Source: tests/youtube.rs:1593 + ──────────────────────────────────────────────────────────────────────────────── + Expression: album + ──────────────────────────────────────────────────────────────────────────────── + -old snapshot + +new results + ────────────┬─────────────────────────────────────────────────────────────────── + 122 122 │ width: 544, + 123 123 │ height: 544, + 124 124 │ ), + 125 125 │ ], + 126 │- artists: [], + 127 │- artist_id: None, + 126 │+ artists: [ + 127 │+ ArtistId( + 128 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 129 │+ name: "S.p. Kodandapani", + 130 │+ ), + 131 │+ ArtistId( + 132 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 133 │+ name: "S. P. Kodandapani", + 134 │+ ), + 135 │+ ], + 136 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 128 137 │ album_type: Ep, + 129 138 │ year: None, + 130 │- by_va: true, + 139 │+ by_va: false, + 131 140 │ ), + 132 141 │ ], + 133 142 │ ) + ────────────┴─────────────────────────────────────────────────────────────────── + To update snapshots run `cargo insta review` + Stopped on the first failure. Run `cargo insta test` to run all snapshots. + test music_album::case_8_version_no_artist ... FAILED + + failures: + + failures: + music_album::case_8_version_no_artist + + test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished + in 0.32s + + + stored + new snapshot + /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new + thread 'music_album::case_8_version_no_artist' panicked at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_version_no_artist' failed in line 1593 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + thread + 'music_album::case_8_version_no_artist' panicked at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_version_no_artist' failed in line 1593 note: + run with `RUST_BACKTRACE=1` environment variable to display a backtrace + running 1 test + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap + Snapshot: music_album_version_no_artist + Source: tests/youtube.rs:1593 + ──────────────────────────────────────────────────────────────────────────────── + Expression: album + ──────────────────────────────────────────────────────────────────────────────── + -old snapshot + +new results + ────────────┬─────────────────────────────────────────────────────────────────── + 122 122 │ width: 544, + 123 123 │ height: 544, + 124 124 │ ), + 125 125 │ ], + 126 │- artists: [], + 127 │- artist_id: None, + 126 │+ artists: [ + 127 │+ ArtistId( + 128 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 129 │+ name: "S.p. Kodandapani", + 130 │+ ), + 131 │+ ArtistId( + 132 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 133 │+ name: "S. P. Kodandapani", + 134 │+ ), + 135 │+ ], + 136 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 128 137 │ album_type: Ep, + 129 138 │ year: None, + 130 │- by_va: true, + 139 │+ by_va: false, + 131 140 │ ), + 132 141 │ ], + 133 142 │ ) + ────────────┴─────────────────────────────────────────────────────────────────── + To update snapshots run `cargo insta review` + Stopped on the first failure. Run `cargo insta test` to run all snapshots. + test music_album::case_8_version_no_artist ... FAILED + + failures: + + failures: + music_album::case_8_version_no_artist + + test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished + in 0.21s + + + stored + new snapshot + /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new + thread 'music_album::case_8_version_no_artist' panicked at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_version_no_artist' failed in line 1593 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + thread + 'music_album::case_8_version_no_artist' panicked at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_version_no_artist' failed in line 1593 note: + run with `RUST_BACKTRACE=1` environment variable to display a backtrace + running 1 test + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap + Snapshot: music_album_version_no_artist + Source: tests/youtube.rs:1593 + ──────────────────────────────────────────────────────────────────────────────── + Expression: album + ──────────────────────────────────────────────────────────────────────────────── + -old snapshot + +new results + ────────────┬─────────────────────────────────────────────────────────────────── + 122 122 │ width: 544, + 123 123 │ height: 544, + 124 124 │ ), + 125 125 │ ], + 126 │- artists: [], + 127 │- artist_id: None, + 126 │+ artists: [ + 127 │+ ArtistId( + 128 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 129 │+ name: "S.p. Kodandapani", + 130 │+ ), + 131 │+ ArtistId( + 132 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 133 │+ name: "S. P. Kodandapani", + 134 │+ ), + 135 │+ ], + 136 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 128 137 │ album_type: Ep, + 129 138 │ year: None, + 130 │- by_va: true, + 139 │+ by_va: false, + 131 140 │ ), + 132 141 │ ], + 133 142 │ ) + ────────────┴─────────────────────────────────────────────────────────────────── + To update snapshots run `cargo insta review` + Stopped on the first failure. Run `cargo insta test` to run all snapshots. + test music_album::case_8_version_no_artist ... FAILED + + failures: + + failures: + music_album::case_8_version_no_artist + + test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished + in 0.27s + + + stored + new snapshot + /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new + thread 'music_album::case_8_version_no_artist' panicked at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_version_no_artist' failed in line 1593 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + + running 1 test + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap + Snapshot: music_album_version_no_artist + Source: tests/youtube.rs:1593 + ──────────────────────────────────────────────────────────────────────────────── + Expression: album + ──────────────────────────────────────────────────────────────────────────────── + -old snapshot + +new results + ────────────┬─────────────────────────────────────────────────────────────────── + 122 122 │ width: 544, + 123 123 │ height: 544, + 124 124 │ ), + 125 125 │ ], + 126 │- artists: [], + 127 │- artist_id: None, + 126 │+ artists: [ + 127 │+ ArtistId( + 128 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 129 │+ name: "S.p. Kodandapani", + 130 │+ ), + 131 │+ ArtistId( + 132 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 133 │+ name: "S. P. Kodandapani", + 134 │+ ), + 135 │+ ], + 136 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 128 137 │ album_type: Ep, + 129 138 │ year: None, + 130 │- by_va: true, + 139 │+ by_va: false, + 131 140 │ ), + 132 141 │ ], + 133 142 │ ) + ────────────┴─────────────────────────────────────────────────────────────────── + To update snapshots run `cargo insta review` + Stopped on the first failure. Run `cargo insta test` to run all snapshots. + test music_album::case_8_version_no_artist ... FAILED + + failures: + + failures: + music_album::case_8_version_no_artist + + test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished + in 0.30s + + + stored new snapshot + /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new + thread 'music_album::case_8_version_no_artist' panicked at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_version_no_artist' failed in line 1593 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + + + + + + + + + + thread 'music_album::case_9_no_artist' panicked at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_no_artist' failed in line 1593 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + thread + 'music_album::case_9_no_artist' panicked at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_no_artist' failed in line 1593 note: run with + `RUST_BACKTRACE=1` environment variable to display a backtrace + running 1 test + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap + Snapshot: music_album_no_artist + Source: tests/youtube.rs:1593 + ──────────────────────────────────────────────────────────────────────────────── + Expression: album + ──────────────────────────────────────────────────────────────────────────────── + -old snapshot + +new results + ────────────┬─────────────────────────────────────────────────────────────────── + 1 1 │ id: "MPREb_bqWA6mAZFWS", + 2 2 │ playlist_id: Some("OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0"), + 3 3 │ name: "Pedha Rasi Peddamma Katha", + 4 4 │ cover: "[cover]", + 5 │- artists: [], + 6 │- artist_id: None, + 5 │+ artists: [ + 6 │+ ArtistId( + 7 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 8 │+ name: "S.p. Kodandapani", + 9 │+ ), + 10 │+ ArtistId( + 11 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 12 │+ name: "S. P. Kodandapani", + 13 │+ ), + 14 │+ ], + 15 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 7 16 │ description: None, + 8 17 │ album_type: Ep, + 9 18 │ year: Some(1968), + 10 19 │ by_va: false, + ────────────┴─────────────────────────────────────────────────────────────────── + To update snapshots run `cargo insta review` + Stopped on the first failure. Run `cargo insta test` to run all snapshots. + test music_album::case_9_no_artist ... FAILED + + failures: + + failures: + music_album::case_9_no_artist + + test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished + in 0.25s + + + stored + new snapshot + /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new + thread 'music_album::case_9_no_artist' panicked at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_no_artist' failed in line 1593 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + thread + 'music_album::case_9_no_artist' panicked at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_no_artist' failed in line 1593 note: run with + `RUST_BACKTRACE=1` environment variable to display a backtrace + running 1 test + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap + Snapshot: music_album_no_artist + Source: tests/youtube.rs:1593 + ──────────────────────────────────────────────────────────────────────────────── + Expression: album + ──────────────────────────────────────────────────────────────────────────────── + -old snapshot + +new results + ────────────┬─────────────────────────────────────────────────────────────────── + 1 1 │ id: "MPREb_bqWA6mAZFWS", + 2 2 │ playlist_id: Some("OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0"), + 3 3 │ name: "Pedha Rasi Peddamma Katha", + 4 4 │ cover: "[cover]", + 5 │- artists: [], + 6 │- artist_id: None, + 5 │+ artists: [ + 6 │+ ArtistId( + 7 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 8 │+ name: "S.p. Kodandapani", + 9 │+ ), + 10 │+ ArtistId( + 11 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 12 │+ name: "S. P. Kodandapani", + 13 │+ ), + 14 │+ ], + 15 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 7 16 │ description: None, + 8 17 │ album_type: Ep, + 9 18 │ year: Some(1968), + 10 19 │ by_va: false, + ────────────┴─────────────────────────────────────────────────────────────────── + To update snapshots run `cargo insta review` + Stopped on the first failure. Run `cargo insta test` to run all snapshots. + test music_album::case_9_no_artist ... FAILED + + failures: + + failures: + music_album::case_9_no_artist + + test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished + in 0.25s + + + stored + new snapshot + /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new + thread 'music_album::case_9_no_artist' panicked at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_no_artist' failed in line 1593 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + thread + 'music_album::case_9_no_artist' panicked at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_no_artist' failed in line 1593 note: run with + `RUST_BACKTRACE=1` environment variable to display a backtrace + running 1 test + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap + Snapshot: music_album_no_artist + Source: tests/youtube.rs:1593 + ──────────────────────────────────────────────────────────────────────────────── + Expression: album + ──────────────────────────────────────────────────────────────────────────────── + -old snapshot + +new results + ────────────┬─────────────────────────────────────────────────────────────────── + 1 1 │ id: "MPREb_bqWA6mAZFWS", + 2 2 │ playlist_id: Some("OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0"), + 3 3 │ name: "Pedha Rasi Peddamma Katha", + 4 4 │ cover: "[cover]", + 5 │- artists: [], + 6 │- artist_id: None, + 5 │+ artists: [ + 6 │+ ArtistId( + 7 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 8 │+ name: "S.p. Kodandapani", + 9 │+ ), + 10 │+ ArtistId( + 11 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 12 │+ name: "S. P. Kodandapani", + 13 │+ ), + 14 │+ ], + 15 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 7 16 │ description: None, + 8 17 │ album_type: Ep, + 9 18 │ year: Some(1968), + 10 19 │ by_va: false, + ────────────┴─────────────────────────────────────────────────────────────────── + To update snapshots run `cargo insta review` + Stopped on the first failure. Run `cargo insta test` to run all snapshots. + test music_album::case_9_no_artist ... FAILED + + failures: + + failures: + music_album::case_9_no_artist + + test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished + in 0.30s + + + stored + new snapshot + /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new + thread 'music_album::case_9_no_artist' panicked at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_no_artist' failed in line 1593 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + + running 1 test + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap + Snapshot: music_album_no_artist + Source: tests/youtube.rs:1593 + ──────────────────────────────────────────────────────────────────────────────── + Expression: album + ──────────────────────────────────────────────────────────────────────────────── + -old snapshot + +new results + ────────────┬─────────────────────────────────────────────────────────────────── + 1 1 │ id: "MPREb_bqWA6mAZFWS", + 2 2 │ playlist_id: Some("OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0"), + 3 3 │ name: "Pedha Rasi Peddamma Katha", + 4 4 │ cover: "[cover]", + 5 │- artists: [], + 6 │- artist_id: None, + 5 │+ artists: [ + 6 │+ ArtistId( + 7 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 8 │+ name: "S.p. Kodandapani", + 9 │+ ), + 10 │+ ArtistId( + 11 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 12 │+ name: "S. P. Kodandapani", + 13 │+ ), + 14 │+ ], + 15 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 7 16 │ description: None, + 8 17 │ album_type: Ep, + 9 18 │ year: Some(1968), + 10 19 │ by_va: false, + ────────────┴─────────────────────────────────────────────────────────────────── + To update snapshots run `cargo insta review` + Stopped on the first failure. Run `cargo insta test` to run all snapshots. + test music_album::case_9_no_artist ... FAILED + + failures: + + failures: + music_album::case_9_no_artist + + test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished + in 0.30s + + + stored new snapshot + /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new + thread 'music_album::case_9_no_artist' panicked at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_no_artist' failed in line 1593 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/testfiles/junit/simple.junit.xml b/tests/testfiles/junit/simple.junit.xml index 03e9e92..4d70376 100644 --- a/tests/testfiles/junit/simple.junit.xml +++ b/tests/testfiles/junit/simple.junit.xml @@ -1,1011 +1,1447 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: -video #247 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - -running 1 test -test get_player_from_client::case_4_ios ... FAILED + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + thread 'get_player_from_client::case_4_ios' panicked at + tests/youtube.rs:71:14: + video #247 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + running 1 test + test get_player_from_client::case_4_ios ... FAILED -failures: + failures: -failures: - get_player_from_client::case_4_ios + failures: + get_player_from_client::case_4_ios -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.24s + test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished + in 0.24s - - thread 'get_player_from_client::case_4_ios' panicked at tests/youtube.rs:71:14: -video #247 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + thread 'get_player_from_client::case_4_ios' panicked at + tests/youtube.rs:71:14: + video #247 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_version_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - -running 1 test -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap -Snapshot: music_album_version_no_artist -Source: tests/youtube.rs:1593 -──────────────────────────────────────────────────────────────────────────────── -Expression: album -──────────────────────────────────────────────────────────────────────────────── --old snapshot -+new results -────────────┬─────────────────────────────────────────────────────────────────── - 122 122 │ width: 544, - 123 123 │ height: 544, - 124 124 │ ), - 125 125 │ ], - 126 │- artists: [], - 127 │- artist_id: None, - 126 │+ artists: [ - 127 │+ ArtistId( - 128 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 129 │+ name: "S.p. Kodandapani", - 130 │+ ), - 131 │+ ArtistId( - 132 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), - 133 │+ name: "S. P. Kodandapani", - 134 │+ ), - 135 │+ ], - 136 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 128 137 │ album_type: Ep, - 129 138 │ year: None, - 130 │- by_va: true, - 139 │+ by_va: false, - 131 140 │ ), - 132 141 │ ], - 133 142 │ ) -────────────┴─────────────────────────────────────────────────────────────────── -To update snapshots run `cargo insta review` -Stopped on the first failure. Run `cargo insta test` to run all snapshots. -test music_album::case_8_version_no_artist ... FAILED + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + thread 'music_album::case_8_version_no_artist' panicked + at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_version_no_artist' failed in line 1593 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + running 1 test + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + Snapshot file: tests/snapshots/youtube__music_album_version_no_artist.snap + Snapshot: music_album_version_no_artist + Source: tests/youtube.rs:1593 + ──────────────────────────────────────────────────────────────────────────────── + Expression: album + ──────────────────────────────────────────────────────────────────────────────── + -old snapshot + +new results + ────────────┬─────────────────────────────────────────────────────────────────── + 122 122 │ width: 544, + 123 123 │ height: 544, + 124 124 │ ), + 125 125 │ ], + 126 │- artists: [], + 127 │- artist_id: None, + 126 │+ artists: [ + 127 │+ ArtistId( + 128 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 129 │+ name: "S.p. Kodandapani", + 130 │+ ), + 131 │+ ArtistId( + 132 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 133 │+ name: "S. P. Kodandapani", + 134 │+ ), + 135 │+ ], + 136 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 128 137 │ album_type: Ep, + 129 138 │ year: None, + 130 │- by_va: true, + 139 │+ by_va: false, + 131 140 │ ), + 132 141 │ ], + 133 142 │ ) + ────────────┴─────────────────────────────────────────────────────────────────── + To update snapshots run `cargo insta review` + Stopped on the first failure. Run `cargo insta test` to run all snapshots. + test music_album::case_8_version_no_artist ... FAILED -failures: + failures: -failures: - music_album::case_8_version_no_artist + failures: + music_album::case_8_version_no_artist -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.23s + test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished + in 0.23s - - stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new -thread 'music_album::case_8_version_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_version_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + stored new snapshot + /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_version_no_artist.snap.new + thread 'music_album::case_8_version_no_artist' panicked at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_version_no_artist' failed in line 1593 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - - - - thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - -running 1 test -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap -Snapshot: music_album_no_artist -Source: tests/youtube.rs:1593 -──────────────────────────────────────────────────────────────────────────────── -Expression: album -──────────────────────────────────────────────────────────────────────────────── --old snapshot -+new results -────────────┬─────────────────────────────────────────────────────────────────── - 1 1 │ id: "MPREb_bqWA6mAZFWS", - 2 2 │ playlist_id: Some("OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0"), - 3 3 │ name: "Pedha Rasi Peddamma Katha", - 4 4 │ cover: "[cover]", - 5 │- artists: [], - 6 │- artist_id: None, - 5 │+ artists: [ - 6 │+ ArtistId( - 7 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 8 │+ name: "S.p. Kodandapani", - 9 │+ ), - 10 │+ ArtistId( - 11 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), - 12 │+ name: "S. P. Kodandapani", - 13 │+ ), - 14 │+ ], - 15 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), - 7 16 │ description: None, - 8 17 │ album_type: Ep, - 9 18 │ year: Some(1968), - 10 19 │ by_va: false, -────────────┴─────────────────────────────────────────────────────────────────── -To update snapshots run `cargo insta review` -Stopped on the first failure. Run `cargo insta test` to run all snapshots. -test music_album::case_9_no_artist ... FAILED + + + + + thread 'music_album::case_9_no_artist' panicked at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_no_artist' failed in line 1593 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + running 1 test + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + Snapshot file: tests/snapshots/youtube__music_album_no_artist.snap + Snapshot: music_album_no_artist + Source: tests/youtube.rs:1593 + ──────────────────────────────────────────────────────────────────────────────── + Expression: album + ──────────────────────────────────────────────────────────────────────────────── + -old snapshot + +new results + ────────────┬─────────────────────────────────────────────────────────────────── + 1 1 │ id: "MPREb_bqWA6mAZFWS", + 2 2 │ playlist_id: Some("OLAK5uy_mUiRbMqeQXFUH6h9KB87RcEmNtm45Qvs0"), + 3 3 │ name: "Pedha Rasi Peddamma Katha", + 4 4 │ cover: "[cover]", + 5 │- artists: [], + 6 │- artist_id: None, + 5 │+ artists: [ + 6 │+ ArtistId( + 7 │+ id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 8 │+ name: "S.p. Kodandapani", + 9 │+ ), + 10 │+ ArtistId( + 11 │+ id: Some("UCbeyiCEAJt5buhxxLAPwVMg"), + 12 │+ name: "S. P. Kodandapani", + 13 │+ ), + 14 │+ ], + 15 │+ artist_id: Some("UCJ59s7i18Dxj_pKVIGETNow"), + 7 16 │ description: None, + 8 17 │ album_type: Ep, + 9 18 │ year: Some(1968), + 10 19 │ by_va: false, + ────────────┴─────────────────────────────────────────────────────────────────── + To update snapshots run `cargo insta review` + Stopped on the first failure. Run `cargo insta test` to run all snapshots. + test music_album::case_9_no_artist ... FAILED -failures: + failures: -failures: - music_album::case_9_no_artist + failures: + music_album::case_9_no_artist -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 0.28s + test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished + in 0.28s - - stored new snapshot /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new -thread 'music_album::case_9_no_artist' panicked at /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: -snapshot assertion for 'music_album_no_artist' failed in line 1593 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + stored new snapshot + /home/thetadev/Documents/Programmieren/Rust/rustypipe/tests/snapshots/youtube__music_album_no_artist.snap.new + thread 'music_album::case_9_no_artist' panicked at + /home/thetadev/.cargo/registry/src/index.crates.io-6f17d22bba15001f/insta-1.38.0/src/runtime.rs:563:9: + snapshot assertion for 'music_album_no_artist' failed in line 1593 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - thread 'music_playlist_cont::case_2_ytm' panicked at tests/youtube.rs:1534:5: -expected >= 227 tracks, got 128 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - -running 1 test -test music_playlist_cont::case_2_ytm ... FAILED + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + thread 'music_playlist_cont::case_2_ytm' panicked at + tests/youtube.rs:1534:5: + expected >= 227 tracks, got 128 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + running 1 test + test music_playlist_cont::case_2_ytm ... FAILED -failures: + failures: -failures: - music_playlist_cont::case_2_ytm + failures: + music_playlist_cont::case_2_ytm -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 1.15s + test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished + in 1.15s - - thread 'music_playlist_cont::case_2_ytm' panicked at tests/youtube.rs:1534:5: -expected >= 227 tracks, got 128 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + thread 'music_playlist_cont::case_2_ytm' panicked at + tests/youtube.rs:1534:5: + expected >= 227 tracks, got 128 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - thread 'search' panicked at tests/youtube.rs:2751:9: -expected >= 10 items on page 2, got 4 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - -running 1 test -test search ... FAILED + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + thread 'search' panicked at tests/youtube.rs:2751:9: + expected >= 10 items on page 2, got 4 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + running 1 test + test search ... FAILED -failures: + failures: -failures: - search + failures: + search -test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished in 2.17s + test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 170 filtered out; finished + in 2.17s - - thread 'search' panicked at tests/youtube.rs:2751:9: -expected >= 10 items on page 2, got 4 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + thread 'search' panicked at tests/youtube.rs:2751:9: + expected >= 10 items on page 2, got 4 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +