ubuntu-bugcontrol team mailing list archive
-
ubuntu-bugcontrol team
-
Mailing list archive
-
Message #03365
[Merge] lp:~roignac/apport/bugpattern-check_for_duplicates into lp:~ubuntu-bugcontrol/apport/ubuntu-bugpatterns
Vadim Rutkovsky has proposed merging lp:~roignac/apport/bugpattern-check_for_duplicates into lp:~ubuntu-bugcontrol/apport/ubuntu-bugpatterns.
Requested reviews:
Ubuntu Bug Control (ubuntu-bugcontrol)
For more details, see:
https://code.launchpad.net/~roignac/apport/bugpattern-check_for_duplicates/+merge/74391
test-local now checks that duplicate issues also match the pattern.
Maybe this should be optional?
--
https://code.launchpad.net/~roignac/apport/bugpattern-check_for_duplicates/+merge/74391
Your team Ubuntu Bug Control is requested to review the proposed merge of lp:~roignac/apport/bugpattern-check_for_duplicates into lp:~ubuntu-bugcontrol/apport/ubuntu-bugpatterns.
=== modified file 'test-local'
--- test-local 2011-07-07 23:29:01 +0000
+++ test-local 2011-09-07 10:58:29 +0000
@@ -4,16 +4,26 @@
import apport
from apport.crashdb import get_crashdb
+from launchpadlib.launchpad import Launchpad
+
+def match_bug(bugnumber):
+ db = get_crashdb(None)
+ report = db.download(bugnumber)
+ match = report.search_bug_patterns('bugpatterns.xml')
+
+ if match:
+ print 'LP: #%s: Matched bug pattern: %s' % (bugnumber, match )
+ else:
+ print 'LP: #%s: No match' % sys.argv[1]
+ sys.exit(1)
+
+lp = Launchpad.login_anonymously('apport', 'production')
if len(sys.argv) != 2:
print >> sys.stderr, 'Usage: %s <.crash file or bug number>' % sys.argv[0]
sys.exit(1)
-if sys.argv[1].isdigit():
- db = get_crashdb(None)
- report = db.download(sys.argv[1])
- #report.write(open('/tmp/report.crash', 'w'))
-else:
+if not sys.argv[1].isdigit():
report = apport.Report()
try:
f = open(sys.argv[1])
@@ -22,12 +32,24 @@
sys.exit(1)
report.load(f)
f.close()
-
-match = report.search_bug_patterns('bugpatterns.xml')
-
-if match:
- print 'LP: #%s: Matched bug pattern: %s' % ( sys.argv[1], match )
+ match = report.search_bug_patterns('bugpatterns.xml')
+
+ if match:
+ print 'LP: #%s: Matched bug pattern: %s' % ( sys.argv[1], match )
+ sys.exit(0)
+ else:
+ print 'LP: #%s: No match' % sys.argv[1]
+ sys.exit(1)
+else:
+ match_bug(sys.argv[1])
+
+ bug = lp.bugs[sys.argv[1]]
+ # if bug is a duplicate - call this for parent
+ if bug.duplicate_of:
+ match_bug(bug.duplicate_of.id)
+ if bug.duplicates.total_size:
+ print "Checking duplicate bugs.."
+ for duplicate in bug.duplicates:
+ match_bug(duplicate.id)
+
sys.exit(0)
-else:
- print 'LP: #%s: No match' % sys.argv[1]
- sys.exit(1)