CVRF: 处理 documentnotes
Signed-off-by: Jia Chao <jiac13@chinaunicom.cn>
This commit is contained in:
parent
c9709a6d3a
commit
d0f9a3f288
30
src/lib.rs
30
src/lib.rs
|
@ -182,7 +182,7 @@ impl CVRF {
|
||||||
if xmlreader.depth < 2 {
|
if xmlreader.depth < 2 {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
self.documentnotes.push(note)
|
self.documentnotes.push(note);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -415,7 +415,7 @@ impl Generator {
|
||||||
#[instrument(skip(self, xmlreader))]
|
#[instrument(skip(self, xmlreader))]
|
||||||
fn load_from_xmlreader(&mut self, xmlreader: &mut XmlReader) {
|
fn load_from_xmlreader(&mut self, xmlreader: &mut XmlReader) {
|
||||||
loop {
|
loop {
|
||||||
let key = if let Some(key) = xmlreader.next_start_name_under_depth(1) {
|
let key = if let Some(key) = xmlreader.next_start_name_under_depth(2) {
|
||||||
key
|
key
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
|
@ -458,8 +458,32 @@ impl Note {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[instrument(skip(self, xmlreader))]
|
||||||
fn load_from_xmlreader(&mut self, xmlreader: &mut XmlReader) {
|
fn load_from_xmlreader(&mut self, xmlreader: &mut XmlReader) {
|
||||||
unimplemented!();
|
loop {
|
||||||
|
match xmlreader.next() {
|
||||||
|
Ok(XmlEvent::StartElement { attributes, .. }) => {
|
||||||
|
for attr in attributes {
|
||||||
|
match attr.name.local_name.as_str() {
|
||||||
|
"Title" => self.title = attr.value.clone(),
|
||||||
|
"Type" => self.r#type = attr.value.clone(),
|
||||||
|
"Ordinal" => self.ordinal = attr.value.clone(),
|
||||||
|
_ => {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self.content = xmlreader.next_characters();
|
||||||
|
}
|
||||||
|
Ok(XmlEvent::EndElement { .. }) => {
|
||||||
|
trace!("Note read end.");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
Err(e) => {
|
||||||
|
error!("XmlReader Error: {e}");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
_ => {}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
11
src/test.rs
11
src/test.rs
|
@ -37,4 +37,15 @@ fn cvrf_works() {
|
||||||
assert_eq!(cvrf.documenttracking.currentreleasedate, date);
|
assert_eq!(cvrf.documenttracking.currentreleasedate, date);
|
||||||
assert_eq!(cvrf.documenttracking.generator.engine, engine);
|
assert_eq!(cvrf.documenttracking.generator.engine, engine);
|
||||||
assert_eq!(cvrf.documenttracking.generator.date, date);
|
assert_eq!(cvrf.documenttracking.generator.date, date);
|
||||||
|
|
||||||
|
// notes
|
||||||
|
let note_title = "Synopsis";
|
||||||
|
let note_type = "General";
|
||||||
|
let note_ordinal = "1";
|
||||||
|
let note_content = "An update for golang is now available for openEuler-20.03-LTS-SP1,openEuler-20.03-LTS-SP4,openEuler-22.03-LTS,openEuler-22.03-LTS-SP1,openEuler-22.03-LTS-SP2 and openEuler-22.03-LTS-SP3.";
|
||||||
|
assert_eq!(cvrf.documentnotes.len(), 6);
|
||||||
|
assert_eq!(cvrf.documentnotes[0].title, note_title);
|
||||||
|
assert_eq!(cvrf.documentnotes[0].r#type, note_type);
|
||||||
|
assert_eq!(cvrf.documentnotes[0].ordinal, note_ordinal);
|
||||||
|
assert_eq!(cvrf.documentnotes[1].content, note_content);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user