# 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."""