Index: media/tools/layout_tests/bug.py |
diff --git a/media/tools/layout_tests/bug.py b/media/tools/layout_tests/bug.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..acfeede788eee794bac0697d6790c5ed6e09e7d1 |
--- /dev/null |
+++ b/media/tools/layout_tests/bug.py |
@@ -0,0 +1,56 @@ |
+#!/usr/bin/python |
+# Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+import re |
+ |
+ |
+class Bug: |
+ """A class representing a bug. |
+ |
+ TODO(imasaki): add more functionalities here if bug-tracker API is available. |
+ For example, you can get the name bug owner. |
dennis_jeffrey
2011/08/24 17:40:47
'name bug' --> 'name of a bug'
imasaki1
2011/08/25 23:57:03
Done.
|
+ """ |
+ CHROME_BUG_URL = 'http://crbug.com/' |
+ WEBKIT_BUG_URL = 'http://webkit.org/b/' |
+ # Type enum for the bug. |
+ WEBKIT = 0 |
+ CHROMIUM = 1 |
+ OTHERS = 2 |
+ |
+ def __init__(self, bug_txt): |
+ """Initialize the object using raw bug text (such as BUGWK2322). |
+ |
+ The raw bug text is used in the test expectation file. According to |
+ http://trac.webkit.org/wiki/TestExpectations#Modifiers, currently, |
+ BUGWK12345, BUGCR12345, BUGV8_12345, BUGDPRANKE are possible. |
dennis_jeffrey
2011/08/24 17:40:47
It looks like the "raw bug text" and the "modifier
imasaki1
2011/08/25 23:57:03
Done.
|
+ """ |
+ self.bug_txt = bug_txt |
+ pattern_for_webkit_bug = r'BUGWK(\d+)' |
+ match = re.search(pattern_for_webkit_bug, bug_txt) |
+ if match: |
+ self.type = self.WEBKIT |
+ self.url = self.WEBKIT_BUG_URL + match.group(1) |
+ return |
+ pattern_for_chrome_bug = r'BUGCR(\d+)' |
+ match = re.search(pattern_for_chrome_bug, bug_txt) |
+ if match: |
+ self.type = self.CHROMIUM |
+ self.url = self.CHROME_BUG_URL + match.group(1) |
+ return |
+ pattern_for_other_bug = r'BUG(\S+)' |
+ match = re.search(pattern_for_other_bug, bug_txt) |
+ if match: |
+ self.type = self.OTHERS |
+ self.url = 'mailto:%s@chromium.org' % match.group(1).lower() |
+ return |
+ self.url = '' |
+ |
+ def ToString(self): |
dennis_jeffrey
2011/08/24 17:40:47
Instead of calling this function ToString, how abo
imasaki1
2011/08/25 23:57:03
Done.
|
+ """Get a HTML link representation of a bug. |
+ |
+ Returns: |
+ a string for HTML link representation of a bug. |
+ """ |
+ return '<a href="%s">%s</a>' % (self.url, self.bug_txt) |