From: W. Trevor King Date: Thu, 23 Jul 2009 13:59:14 +0000 (-0400) Subject: Added libbe.bug.cmp_comments(), and added that to default bug comparison. X-Git-Tag: 1.0.0~63^2~2 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=0cdbb498a29d32b5d2d0a182079ed6cd5ddb7641;p=be.git Added libbe.bug.cmp_comments(), and added that to default bug comparison. --- diff --git a/libbe/bug.py b/libbe/bug.py index f3448e2..c1e5481 100644 --- a/libbe/bug.py +++ b/libbe/bug.py @@ -494,8 +494,25 @@ cmp_assigned = lambda bug_1, bug_2 : cmp_attr(bug_1, bug_2, "assigned") # chronological rankings (newer < older) cmp_time = lambda bug_1, bug_2 : cmp_attr(bug_1, bug_2, "time", invert=True) +def cmp_comments(bug_1, bug_2): + """ + Compare two bugs' comments lists. Doesn't load any new comments, + so you should call each bug's .load_comments() first if you want a + full comparison. + """ + comms_1 = sorted(bug_1.comments(), key = lambda comm : comm.uuid) + comms_2 = sorted(bug_2.comments(), key = lambda comm : comm.uuid) + result = cmp(len(comms_1), len(comms_2)) + if result != 0: + return result + for c_1,c_2 in zip(comms_1, comms_2): + result = cmp(c_1, c_2) + if result != 0: + return result + return 0 + DEFAULT_CMP_FULL_CMP_LIST = \ - (cmp_status,cmp_severity,cmp_assigned,cmp_time,cmp_creator) + (cmp_status,cmp_severity,cmp_assigned,cmp_time,cmp_creator,cmp_comments) class BugCompoundComparator (object): def __init__(self, cmp_list=DEFAULT_CMP_FULL_CMP_LIST):