diff test/test_demo.py @ 6638:e1588ae185dc issue2550923_computed_property

merge from default branch. Fix travis.ci so CI builds don't error out
author John Rouillard <rouilj@ieee.org>
date Thu, 21 Apr 2022 16:54:17 -0400
parents 5a3a386aa8e7
children 77eb1a41fc06
line wrap: on
line diff
--- a/test/test_demo.py	Fri Oct 08 00:37:16 2021 -0400
+++ b/test/test_demo.py	Thu Apr 21 16:54:17 2022 -0400
@@ -33,7 +33,7 @@
         except FileNotFoundError:
             pass
         
-    def testDemo(self):
+    def testDemoClassic(self):
         with captured_output() as (out, err):
             install_demo(self.home, 'anydbm', 'classic')
         output = out.getvalue().strip()
@@ -61,4 +61,71 @@
         # last line in the output.
         self.assertIn("Keyboard Interrupt: exiting", output.split('\n'))
 
+    def testDemoMinimal(self):
+        with captured_output() as (out, err):
+            # use a modified path that resolves when 
+            install_demo(self.home, 'sqlite', '../templates/minimal')
+        output = out.getvalue().strip()
+        print(output)
 
+        # verify that db was set properly by reading config
+        with open(self.home + "/config.ini", "r") as f:
+            config_lines = f.readlines()
+
+        self.assertIn("backend = sqlite\n", config_lines)
+
+        # dummy up the return of get_server so the serve_forever method
+        # raises keyboard interrupt exiting the server so the test exits.
+        gs = roundup.scripts.roundup_server.ServerConfig.get_server
+        def raise_KeyboardInterrupt():
+            raise KeyboardInterrupt
+
+        def test_get_server(self):
+            httpd = gs(self)
+            httpd.serve_forever = raise_KeyboardInterrupt
+            return httpd
+
+        roundup.scripts.roundup_server.ServerConfig.get_server = test_get_server
+
+        # Run under context manager to capture output of startup text.
+        with captured_output() as (out, err):
+            run_demo(self.home)
+        output = out.getvalue().strip()
+        print(output)
+        # if the server installed and started this will be the
+        # last line in the output.
+        self.assertIn("Keyboard Interrupt: exiting", output.split('\n'))
+
+    def testDemoJinja(self):
+        with captured_output() as (out, err):
+            install_demo(self.home, 'anydbm', 'jinja2')
+        output = out.getvalue().strip()
+        print(output)
+
+        # verify that template was set to jinja2 by reading config
+        with open(self.home + "/config.ini", "r") as f:
+            config_lines = f.readlines()
+
+        self.assertIn("template_engine = jinja2\n", config_lines)
+
+        # dummy up the return of get_server so the serve_forever method
+        # raises keyboard interrupt exiting the server so the test exits.
+        gs = roundup.scripts.roundup_server.ServerConfig.get_server
+        def raise_KeyboardInterrupt():
+            raise KeyboardInterrupt
+
+        def test_get_server(self):
+            httpd = gs(self)
+            httpd.serve_forever = raise_KeyboardInterrupt
+            return httpd
+
+        roundup.scripts.roundup_server.ServerConfig.get_server = test_get_server
+
+        # Run under context manager to capture output of startup text.
+        with captured_output() as (out, err):
+            run_demo(self.home)
+        output = out.getvalue().strip()
+        print(output)
+        # if the server installed and started this will be the
+        # last line in the output.
+        self.assertIn("Keyboard Interrupt: exiting", output.split('\n'))

Roundup Issue Tracker: http://roundup-tracker.org/