| 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..d198b2943b1486f8a292ead8e6c1d371ca470249
|
| --- /dev/null
|
| +++ b/media/tools/layout_tests/bug.py
|
| @@ -0,0 +1,60 @@
|
| +#!/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 of a bug owner.
|
| + """
|
| + 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_modifier):
|
| + """Initialize the object using raw bug text (such as BUGWK2322).
|
| +
|
| + The bug modifier used in the test expectation file.
|
| +
|
| + Args:
|
| + bug_modifier: a string representing a bug modifier. According to
|
| + http://trac.webkit.org/wiki/TestExpectations#Modifiers,
|
| + currently, BUGWK12345, BUGCR12345, BUGV8_12345, BUGDPRANKE are
|
| + possible.
|
| + """
|
| + self.bug_txt = bug_modifier
|
| + pattern_for_webkit_bug = r'BUGWK(\d+)'
|
| + match = re.search(pattern_for_webkit_bug, bug_modifier)
|
| + 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_modifier)
|
| + 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_modifier)
|
| + if match:
|
| + self.type = self.OTHERS
|
| + self.url = 'mailto:%s@chromium.org' % match.group(1).lower()
|
| + return
|
| + self.url = ''
|
| +
|
| + def __str__(self):
|
| + """Get a string representation of a bug object.
|
| +
|
| + Returns:
|
| + a string for HTML link representation of a bug.
|
| + """
|
| + return '<a href="%s">%s</a>' % (self.url, self.bug_txt)
|
|
|