aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorW. Trevor King <wking@drexel.edu>2009-06-25 09:51:41 -0400
committerW. Trevor King <wking@drexel.edu>2009-06-25 09:51:41 -0400
commit5fd3c3c3afa8be4680798978e4e5fb0436fbf00c (patch)
treed7634a1caa1ac68281de1fb6ba30e9e38cbf2afc
parenteeaf13d7d9c5e6fcad4689c988d4fc1806426d3f (diff)
downloadbugseverywhere-5fd3c3c3afa8be4680798978e4e5fb0436fbf00c.tar.gz
Added extra_strings functionality to libbe.bug.xml and be-xml-to-mbox.
-rw-r--r--libbe/bug.py3
-rwxr-xr-xxml/be-xml-to-mbox27
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: