OLD | NEW |
---|---|
(Empty) | |
1 #!/usr/bin/python | |
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
3 # Use of this source code is governed by a BSD-style license that can be | |
4 # found in the LICENSE file. | |
5 | |
6 import re | |
7 | |
8 | |
9 class Bug: | |
10 """A class representing a bug. | |
11 | |
12 TODO(imasaki): add more functionalities here if bug-tracker API is available. | |
13 For example, you can get the name of a bug owner. | |
14 """ | |
15 CHROME_BUG_URL = 'http://crbug.com/' | |
16 WEBKIT_BUG_URL = 'http://webkit.org/b/' | |
17 # Type enum for the bug. | |
18 WEBKIT = 0 | |
19 CHROMIUM = 1 | |
20 OTHERS = 2 | |
21 | |
22 def __init__(self, bug_modifier): | |
23 """Initialize the object using raw bug text (such as BUGWK2322). | |
24 | |
25 The bug modifier used in the test expectation file. | |
26 | |
27 Args: | |
28 bug_modifier: a string representing a bug modifer According to | |
dennis_jeffrey
2011/08/26 19:01:26
'modifer' --> 'modifier'. Also add a period right
imasaki1
2011/08/26 22:28:44
Done.
| |
29 http://trac.webkit.org/wiki/TestExpectations#Modifiers, | |
30 currently, BUGWK12345, BUGCR12345, BUGV8_12345, BUGDPRANKE are | |
31 possible. | |
32 """ | |
33 self.bug_txt = bug_modifier | |
34 pattern_for_webkit_bug = r'BUGWK(\d+)' | |
35 match = re.search(pattern_for_webkit_bug, bug_modifier) | |
36 if match: | |
37 self.type = self.WEBKIT | |
38 self.url = self.WEBKIT_BUG_URL + match.group(1) | |
39 return | |
40 pattern_for_chrome_bug = r'BUGCR(\d+)' | |
41 match = re.search(pattern_for_chrome_bug, bug_modifier) | |
42 if match: | |
43 self.type = self.CHROMIUM | |
44 self.url = self.CHROME_BUG_URL + match.group(1) | |
45 return | |
46 pattern_for_other_bug = r'BUG(\S+)' | |
47 match = re.search(pattern_for_other_bug, bug_modifier) | |
48 if match: | |
49 self.type = self.OTHERS | |
50 self.url = 'mailto:%s@chromium.org' % match.group(1).lower() | |
51 return | |
52 self.url = '' | |
53 | |
54 def __str__(self): | |
55 """Get a string representation of a bug object. | |
56 | |
57 Returns: | |
58 a string for HTML link representation of a bug. | |
59 """ | |
60 return '<a href="%s">%s</a>' % (self.url, self.bug_txt) | |
OLD | NEW |