Mercurial > p > roundup > code
view test/test_demo.py @ 6672:01216187a167
Testing translations in mailgw.py, update translations, i18n improved
i18n.py: translation objects get a _file which is the file that catalog
was loaded from. Useful for debugging.
mailgw.py: fix code to include roundup.i18n and invoke propert method.
GNUMakefile: added roundup.pot target. Also building roundup.pot sets
the release version and product code in roundup.pot.
Release version from roundup.__init__.py.
merged roundup.pot changes into all *.po files. Not sure if the
version info in the headers of the .po files is supposed to be
updated to match roundup.pot or not.
test_mailgw.py: test cases for en and de translations tested. Not sure
why I neede to set roundupdb._ and mailgw._, but followed setUp
method code and it worked.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Wed, 11 May 2022 21:20:34 -0400 |
| parents | 5a3a386aa8e7 |
| children | 77eb1a41fc06 |
line wrap: on
line source
import unittest import os, sys, shutil from roundup.demo import install_demo, run_demo import roundup.scripts.roundup_server # https://stackoverflow.com/questions/4219717/how-to-assert-output-with-nosetest-unittest-in-python # lightly modified from contextlib import contextmanager _py3 = sys.version_info[0] > 2 if _py3: from io import StringIO # py3 else: from StringIO import StringIO # py2 @contextmanager def captured_output(): new_out, new_err = StringIO(), StringIO() old_out, old_err = sys.stdout, sys.stderr try: sys.stdout, sys.stderr = new_out, new_err yield sys.stdout, sys.stderr finally: sys.stdout, sys.stderr = old_out, old_err class TestDemo(unittest.TestCase): def setUp(self): self.home = os.path.abspath('_test_demo') def tearDown(self): try: shutil.rmtree(self.home) except FileNotFoundError: pass def testDemoClassic(self): with captured_output() as (out, err): install_demo(self.home, 'anydbm', 'classic') output = out.getvalue().strip() print(output) # 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 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'))
