87fcb432d230

Merged in kberridge/hg-review (pull request #6)

web: display branch name on index if other than 'default'
[view raw] [browse files]
author Christophe de Vienne <cdevienne@gmail.com>
date Fri, 21 Nov 2014 18:38:48 +0100
parents 8be7ac46f0ec (diff) b0bcc35b016a (current diff)
children 66463ec963b6
branches/tags (none)
files

Changes

--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/review/tests/test_web.py	Fri Nov 21 18:38:48 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()
--- a/review/web.py	Tue Sep 04 13:03:55 2012 -0400
+++ b/review/web.py	Fri Nov 21 18:38:48 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 <anonymous@example.com>')
+    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 <anonymous@example.com>')
-
-    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)