# HG changeset patch
# User osimons
# Date 1248615375 0
# Node ID 99831ab37fd36a42628ceac192d693c526ae3f33
# Parent 4848d9b7a3e5a5202f084ef95de87daa475c3cda
0.6dev: Making source-linking work also for Windows-style file references (as output by Windows slaves). Thanks to Doug Patterson for updated regexp.
Closes #209.
diff --git a/bitten/tests/web_ui.py b/bitten/tests/web_ui.py
--- a/bitten/tests/web_ui.py
+++ b/bitten/tests/web_ui.py
@@ -180,10 +180,16 @@
comp = SourceFileLinkFormatter(self.env)
formatter = comp.get_formatter(req, build)
+ # posix
output = formatter(step, None, None, u'error in foo/bar.c: bad')
self.assertEqual(Markup, type(output))
self.assertEqual('error in '
'foo/bar.c: bad', output)
+ # windows
+ output = formatter(step, None, None, u'error in foo\\win.c: bad')
+ self.assertEqual(Markup, type(output))
+ self.assertEqual(r'error in '
+ 'foo\win.c: bad', output)
def test_format_bad_links(self):
BuildConfig(self.env, name='test', path='trunk').insert()
@@ -240,10 +246,16 @@
comp = SourceFileLinkFormatter(self.env)
formatter = comp.get_formatter(req, build)
+ # posix
output = formatter(step, None, None, u'error in foo/bar.c:123: bad')
self.assertEqual(Markup, type(output))
self.assertEqual('error in '
'foo/bar.c:123: bad', output)
+ # windows
+ output = formatter(step, None, None, u'error in foo\\win.c:123: bad')
+ self.assertEqual(Markup, type(output))
+ self.assertEqual(r'error in '
+ 'foo\win.c:123: bad', output)
def test_format_link_not_in_repos_with_line(self):
BuildConfig(self.env, name='test', path='trunk').insert()
diff --git a/bitten/web_ui.py b/bitten/web_ui.py
--- a/bitten/web_ui.py
+++ b/bitten/web_ui.py
@@ -698,7 +698,7 @@
implements(ILogFormatter)
- _fileref_re = re.compile('(?P-[A-Za-z])?(?P[\w.-]+(?:/[\w.-]+)+)(?P(:\d+))?')
+ _fileref_re = re.compile(r'(?P-[A-Za-z])?(?P[\w.-]+(?:[\\/][\w.-]+)+)(?P:\d+)?')
def get_formatter(self, req, build):
"""Return the log message formatter function."""