diff --git a/trac/tests/functional/tester.py b/trac/tests/functional/tester.py index 65382b98f5..f4ddac093f 100755 --- a/trac/tests/functional/tester.py +++ b/trac/tests/functional/tester.py @@ -22,7 +22,7 @@ from trac.tests.functional.better_twill import tc, b from trac.tests.contentgen import random_page, random_sentence, random_word, \ random_unique_camel -from trac.util.html import tag +from trac.util.html import escape_quotes, tag from trac.util.text import to_utf8, unicode_quote @@ -422,11 +422,32 @@ def create_report(self, title, query, description): tc.formvalue('edit_report', 'description', description) tc.formvalue('edit_report', 'query', query) tc.submit() - reportnum = b.get_url().split('/')[-1] - # TODO: verify the url is correct - # TODO: verify the report number is correct - # TODO: verify the report does not cause an internal error - # TODO: verify the title appears on the report list + tc.notfind(internal_error) + + url = b.get_url() + reportnum = None + is_query = '/query?' in url + if is_query: + for pair in url.split('?', 1)[1].split('&'): + if pair.startswith('report='): + reportnum = pair.split('=', 1)[1] + break + else: + values = url.split('/') + if values[-2] == 'report': + reportnum = values[-1] + if reportnum is None or not reportnum.isdigit(): + raise AssertionError('Unexpected {!r}'.format(url)) + reportnum = int(reportnum) + if is_query: + tc.find(r'