diff options
author | W. Trevor King <wking@drexel.edu> | 2009-06-25 09:51:41 -0400 |
---|---|---|
committer | W. Trevor King <wking@drexel.edu> | 2009-06-25 09:51:41 -0400 |
commit | 5fd3c3c3afa8be4680798978e4e5fb0436fbf00c (patch) | |
tree | d7634a1caa1ac68281de1fb6ba30e9e38cbf2afc | |
parent | eeaf13d7d9c5e6fcad4689c988d4fc1806426d3f (diff) | |
download | bugseverywhere-5fd3c3c3afa8be4680798978e4e5fb0436fbf00c.tar.gz |
Added extra_strings functionality to libbe.bug.xml and be-xml-to-mbox.
-rw-r--r-- | libbe/bug.py | 3 | ||||
-rwxr-xr-x | xml/be-xml-to-mbox | 27 |
2 files changed, 21 insertions, 9 deletions
diff --git a/libbe/bug.py b/libbe/bug.py index 7418933..28f5253 100644 --- a/libbe/bug.py +++ b/libbe/bug.py @@ -283,7 +283,8 @@ class Bug(settings_object.SavedSettingsObject): for (k,v) in info: if v is not settings_object.EMPTY: ret += ' <%s>%s</%s>\n' % (k,xml.sax.saxutils.escape(v),k) - + for estr in self.extra_strings: + ret += ' <extra-string>%s</extra-string>\n' % estr if show_comments == True: comout = self.comment_root.xml_thread(auto_name_map=True, bug_shortname=shortname) diff --git a/xml/be-xml-to-mbox b/xml/be-xml-to-mbox index 7d07bac..b0a4cba 100755 --- a/xml/be-xml-to-mbox +++ b/xml/be-xml-to-mbox @@ -81,7 +81,8 @@ class Bug (LimitedAttrDict): u"creator", u"created", u"summary", - u"comments"] + u"comments", + u"extra_strings"] def print_to_mbox(self): name,addr = email.utils.parseaddr(self["creator"]) print "From %s %s" % (addr, rfc2822_to_asctime(self["created"])) @@ -94,8 +95,12 @@ class Bug (LimitedAttrDict): print "" print self["summary"] print "" + if len(self["extra_strings"]) > 0: + print "extra strings:\n ", + print '\n '.join(self["extra_strings"]) + print "" for comment in self["comments"]: - comment.print_to_mbox(self) + comment.print_to_mbox(self) class Comment (LimitedAttrDict): _attrs = [u"uuid", @@ -128,6 +133,7 @@ class BE_list_handler (ContentHandler): def reset(self): self.bug = None self.comment = None + self.extra_strings = None self.text_field = None def startElement(self, name, attributes): @@ -135,16 +141,16 @@ class BE_list_handler (ContentHandler): assert self.bug == None, "Nested bugs?!" assert self.comment == None assert self.text_field == None - self.bug = Bug(comments=[]) + self.bug = Bug(comments=[], extra_strings=[]) elif name == "comment": assert self.bug != None, "<comment> not in <bug>?" + assert self.comment == None, "Nested comments?!" assert self.text_field == None, "<comment> in text field %s?" % self.text_field self.comment = Comment() elif self.bug != None and self.comment == None: # parse bug text field - if name != "comment": - self.text_field = name - self.text_data = "" + self.text_field = name + self.text_data = "" elif self.bug != None and self.comment != None: # parse comment text field self.text_field = name @@ -153,18 +159,23 @@ class BE_list_handler (ContentHandler): def endElement(self, name): if name == "bug": assert self.bug != None, "Invalid XML?" + assert self.comment == None, "Invalid XML?" + assert self.text_field == None, "Invalid XML?" self.bug.print_to_mbox() self.bug = None elif name == "comment": assert self.bug != None, "<comment> not in <bug>?" - assert self.text_field == None, "<comment> in text field %s?" % self.text_field assert self.comment != None, "Invalid XML?" + assert self.text_field == None, "<comment> in text field %s?" % self.text_field self.bug["comments"].append(self.comment) # comments printed by bug.print_to_mbox() self.comment = None elif self.bug != None and self.comment == None: # parse bug text field - self.bug[self.text_field] = unescape(self.text_data.strip()) + if self.text_field == "extra-string": + self.bug["extra_strings"].append(unescape(self.text_data.strip())) + else: + self.bug[self.text_field] = unescape(self.text_data.strip()) self.text_field = None self.text_data = None elif self.bug != None and self.comment != None: |