summaryrefslogtreecommitdiffstats
path: root/change.py
diff options
context:
space:
mode:
Diffstat (limited to 'change.py')
-rw-r--r--change.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/change.py b/change.py
new file mode 100644
index 0000000..3e44e44
--- /dev/null
+++ b/change.py
@@ -0,0 +1,67 @@
+class Change(object):
+ '''
+ Class representing a change to be made in Bugzilla.
+
+ Somewhat analogous to a patch to be applied to a source tree.
+
+ Currently only supports printing, but eventually ought to support being
+ applied to the bug.
+
+ I want to capture a change as an entity so that you can always do human
+ review of the change, rather than automatically pushing blindly via XML-RPC
+ '''
+ def __init__(self,
+ bug,
+ newsummary=None,
+ newcomponent=None,
+ comment=None,
+ duplicate_id=None,
+ status=None,
+ resolution=None):
+ self.bug = bug
+ self.comment = comment
+ self.newsummary = newsummary
+ self.newcomponent = newcomponent
+ self.duplicate_id = duplicate_id
+ self.status = status
+ self.resolution = resolution
+
+ def __str__(self):
+ result = ''
+ if self.newsummary:
+ result += '---- BEGIN SUMMARY ----\n'
+ result += self.newsummary
+ result += '\n---- END SUMMARY ----\n'
+
+ if self.newcomponent:
+ result += '---- BEGIN COMPONENT ----\n'
+ result += '"python" -> "%s"\n' % self.newcomponent # is there a way to do this via XML-RPC?
+ result += '---- END COMPONENT ----\n'
+
+ if self.comment:
+ result += '---- BEGIN COMMENT ----\n'
+ result += self.comment
+ result += '\n---- END COMMENT ----\n'
+
+ if self.duplicate_id:
+ result += '---- MARK AS DUPLICATE OF: %i ----\n' % self.duplicate_id
+
+ if self.status:
+ result += '---- SET status: %s ----\n' % self.status
+
+ if self.resolution:
+ result += '---- SET resolution: %s ----\n' % self.resolution
+
+ return result
+
+class Duplicate(Change):
+ def __init__(self, bug, other_bug_id):
+ Change.__init__(self,
+ bug,
+ comment=(
+'''Thank you for the bug report.
+
+This particular bug has already been reported into our bug tracking system, but please feel free to report any further bugs you find.'''),
+ duplicate_id = other_bug_id
+ )
+