# HG changeset patch # User Christophe de Vienne # Date 1416592867 -3600 # Node ID 66463ec963b6b624cb41e7a65d835c4416e355d8 # Parent 87fcb432d230eb1ebdb44c5b63bac15008807475# Parent 627b1d4e0fa3194e6c3ba2f692216b24f60b01a1 Merged in abegey/hg-review/issue-93 (pull request #10) [index] Add the owner of the cset in a td beetween id and description diff -r 627b1d4e0fa3 -r 66463ec963b6 review/templates/index.html --- a/review/templates/index.html Sat Nov 15 20:01:13 2014 +0100 +++ b/review/templates/index.html Fri Nov 21 19:01:07 2014 +0100 @@ -15,7 +15,12 @@ {{ rev.rev() }}:{{ node_short }} {{ utils['person'](rev.user()) }} - {{ rev.description().splitlines()[0] }} + + {% if rev.branch() != 'default' %} + [{{ rev.branch() }}] + {%endif%} + {{ rev.description().splitlines()[0] }} + {% with %} diff -r 627b1d4e0fa3 -r 66463ec963b6 review/tests/test_web.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/review/tests/test_web.py Fri Nov 21 19:01:07 2014 +0100 @@ -0,0 +1,38 @@ +import unittest + +from nose.tools import eq_ + +import util + +from .. import web + +NON_EXISTENT_REV = 999999 + +class WebTestCase(unittest.TestCase): + """Simple web tests. Currently only checks for correct status codes.""" + + def setUp(self): + util.setup_reviewed_sandbox()() + ui = util.get_ui() + repo = util.get_sandbox_repo() + web._configure_app(ui, repo) + web.app.config['TESTING'] = True + self.app = web.app.test_client() + + def tearDown(self): + util.teardown_sandbox() + + def test_index_no_rev(self): + rv = self.app.get('/') + eq_(rv.status_code, 200) + + def test_index_high_rev(self): + rv = self.app.get('/%s/' % NON_EXISTENT_REV) + eq_(rv.status_code, 200) + + def test_index_known_rev(self): + rv = self.app.get('/0/') + eq_(rv.status_code, 200) + +if __name__ == '__main__': + unittest.main() diff -r 627b1d4e0fa3 -r 66463ec963b6 review/web.py --- a/review/web.py Sat Nov 15 20:01:13 2014 +0100 +++ b/review/web.py Fri Nov 21 19:01:07 2014 +0100 @@ -231,23 +231,29 @@ return _render('500.html'), 500 +def _configure_app(ui, repo, read_only=False, allow_anon=False): + """Configure the web app. + + This happens in a distinct function to reuse these steps in tests. + + """ + app.read_only = read_only + app.debug = ui.debugflag + app.allow_anon = allow_anon + app.site_root = '' + if app.allow_anon: + ui.setconfig('ui', 'username', 'Anonymous ') + app.ui = ui + app.repo = repo + app.title = os.path.basename(repo.root) + app.project_url = None + def load_interface(ui, repo, read_only=False, allow_anon=False, open=False, address='127.0.0.1', port=8080): if open: import webbrowser webbrowser.open('http://localhost:%d/' % port) - app.read_only = read_only - app.debug = ui.debugflag - app.allow_anon = allow_anon - app.site_root = '' - - if app.allow_anon: - ui.setconfig('ui', 'username', 'Anonymous ') - - app.ui = ui - app.repo = repo - app.title = os.path.basename(repo.root) - app.project_url = None + _configure_app(ui, repo, read_only, allow_anon) app.run(host=address, port=port)