Mercurial > p > roundup > code
annotate test/test_demo.py @ 7704:5b1163dca9e1
test: actually test output from running demo server code
I was invoking demo mode, but not testing the output to verify it was
making it to the point where it would start the server.
Check that an expected database file was created to verify that the db
setting was honored.
Also test TEMPLATE-INFO.txt to verify that the correct template was
being instantiated.
Tested under 3.13 as wel using docker command line (wrapped):
docker run -it -u 1000 --rm -v $PWD:/usr/src/myapp -w
/usr/src/myapp python:3.13.0a1-alpine3.18 sh -c 'export
HOME=/tmp/home; mkdir $HOME; python -m pip install pytest
pytest-env requests jinja2; python -m pytest -v test/test_demo.py'
If demo mode tries to start as root, it exits with an error, so it
must be run with -u uid.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Mon, 20 Nov 2023 21:59:40 -0500 |
| parents | 859c57bc8d91 |
| children | 5b47966bf6f0 |
| rev | line source |
|---|---|
|
7583
4cfaddc2d53e
test: do not run jinja2 demo test if jinja2 missing.
John Rouillard <rouilj@ieee.org>
parents:
6719
diff
changeset
|
1 import pytest |
|
6324
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
2 import unittest |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
3 import os, sys, shutil |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
4 |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
5 from roundup.demo import install_demo, run_demo |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
6 |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
7 import roundup.scripts.roundup_server |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
8 |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
9 # https://stackoverflow.com/questions/4219717/how-to-assert-output-with-nosetest-unittest-in-python |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
10 # lightly modified |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
11 from contextlib import contextmanager |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
12 _py3 = sys.version_info[0] > 2 |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
13 if _py3: |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
14 from io import StringIO # py3 |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
15 else: |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
16 from StringIO import StringIO # py2 |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
17 @contextmanager |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
18 def captured_output(): |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
19 new_out, new_err = StringIO(), StringIO() |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
20 old_out, old_err = sys.stdout, sys.stderr |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
21 try: |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
22 sys.stdout, sys.stderr = new_out, new_err |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
23 yield sys.stdout, sys.stderr |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
24 finally: |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
25 sys.stdout, sys.stderr = old_out, old_err |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
26 |
|
7583
4cfaddc2d53e
test: do not run jinja2 demo test if jinja2 missing.
John Rouillard <rouilj@ieee.org>
parents:
6719
diff
changeset
|
27 try: |
|
4cfaddc2d53e
test: do not run jinja2 demo test if jinja2 missing.
John Rouillard <rouilj@ieee.org>
parents:
6719
diff
changeset
|
28 import jinja2 |
|
4cfaddc2d53e
test: do not run jinja2 demo test if jinja2 missing.
John Rouillard <rouilj@ieee.org>
parents:
6719
diff
changeset
|
29 skip_jinja2 = lambda func, *args, **kwargs: func |
|
4cfaddc2d53e
test: do not run jinja2 demo test if jinja2 missing.
John Rouillard <rouilj@ieee.org>
parents:
6719
diff
changeset
|
30 except ImportError: |
|
4cfaddc2d53e
test: do not run jinja2 demo test if jinja2 missing.
John Rouillard <rouilj@ieee.org>
parents:
6719
diff
changeset
|
31 from .pytest_patcher import mark_class |
|
4cfaddc2d53e
test: do not run jinja2 demo test if jinja2 missing.
John Rouillard <rouilj@ieee.org>
parents:
6719
diff
changeset
|
32 skip_jinja2 = mark_class(pytest.mark.skip( |
|
4cfaddc2d53e
test: do not run jinja2 demo test if jinja2 missing.
John Rouillard <rouilj@ieee.org>
parents:
6719
diff
changeset
|
33 reason='Skipping Jinja2 tests: jinja2 library not available')) |
|
4cfaddc2d53e
test: do not run jinja2 demo test if jinja2 missing.
John Rouillard <rouilj@ieee.org>
parents:
6719
diff
changeset
|
34 |
|
6324
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
35 class TestDemo(unittest.TestCase): |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
36 def setUp(self): |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
37 self.home = os.path.abspath('_test_demo') |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
38 |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
39 def tearDown(self): |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
40 try: |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
41 shutil.rmtree(self.home) |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
42 except FileNotFoundError: |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
43 pass |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
44 |
|
6719
77eb1a41fc06
test cleanup. Make test method and convert tests to use.
John Rouillard <rouilj@ieee.org>
parents:
6545
diff
changeset
|
45 def run_install_demo(self, template, db="anydbm"): |
|
6324
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
46 with captured_output() as (out, err): |
|
6719
77eb1a41fc06
test cleanup. Make test method and convert tests to use.
John Rouillard <rouilj@ieee.org>
parents:
6545
diff
changeset
|
47 install_demo(self.home, db, template) |
|
6324
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
48 output = out.getvalue().strip() |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
49 print(output) |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
50 |
|
6719
77eb1a41fc06
test cleanup. Make test method and convert tests to use.
John Rouillard <rouilj@ieee.org>
parents:
6545
diff
changeset
|
51 # verify that db was set properly by reading config |
|
77eb1a41fc06
test cleanup. Make test method and convert tests to use.
John Rouillard <rouilj@ieee.org>
parents:
6545
diff
changeset
|
52 with open(self.home + "/config.ini", "r") as f: |
|
7585
227aca44fea5
test: fix failure under cygwin python caused by line endings
John Rouillard <rouilj@ieee.org>
parents:
7583
diff
changeset
|
53 config_lines = f.read().replace("\r\n", "\n") |
|
227aca44fea5
test: fix failure under cygwin python caused by line endings
John Rouillard <rouilj@ieee.org>
parents:
7583
diff
changeset
|
54 |
|
227aca44fea5
test: fix failure under cygwin python caused by line endings
John Rouillard <rouilj@ieee.org>
parents:
7583
diff
changeset
|
55 try: |
|
227aca44fea5
test: fix failure under cygwin python caused by line endings
John Rouillard <rouilj@ieee.org>
parents:
7583
diff
changeset
|
56 # handle text files with \r\n line endings |
|
7586
859c57bc8d91
test: limit search for \r to first 100 bytes.
John Rouillard <rouilj@ieee.org>
parents:
7585
diff
changeset
|
57 config_lines.index("\r", 0, 100) |
|
7585
227aca44fea5
test: fix failure under cygwin python caused by line endings
John Rouillard <rouilj@ieee.org>
parents:
7583
diff
changeset
|
58 config_lines = config_lines.replace("\r\n", "\n") |
|
227aca44fea5
test: fix failure under cygwin python caused by line endings
John Rouillard <rouilj@ieee.org>
parents:
7583
diff
changeset
|
59 except ValueError: |
|
227aca44fea5
test: fix failure under cygwin python caused by line endings
John Rouillard <rouilj@ieee.org>
parents:
7583
diff
changeset
|
60 pass |
|
6719
77eb1a41fc06
test cleanup. Make test method and convert tests to use.
John Rouillard <rouilj@ieee.org>
parents:
6545
diff
changeset
|
61 |
|
77eb1a41fc06
test cleanup. Make test method and convert tests to use.
John Rouillard <rouilj@ieee.org>
parents:
6545
diff
changeset
|
62 self.assertIn("backend = %s\n"%db, config_lines) |
|
77eb1a41fc06
test cleanup. Make test method and convert tests to use.
John Rouillard <rouilj@ieee.org>
parents:
6545
diff
changeset
|
63 |
|
6324
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
64 # dummy up the return of get_server so the serve_forever method |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
65 # raises keyboard interrupt exiting the server so the test exits. |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
66 gs = roundup.scripts.roundup_server.ServerConfig.get_server |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
67 def raise_KeyboardInterrupt(): |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
68 raise KeyboardInterrupt |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
69 |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
70 def test_get_server(self): |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
71 httpd = gs(self) |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
72 httpd.serve_forever = raise_KeyboardInterrupt |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
73 return httpd |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
74 |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
75 roundup.scripts.roundup_server.ServerConfig.get_server = test_get_server |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
76 |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
77 # Run under context manager to capture output of startup text. |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
78 with captured_output() as (out, err): |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
79 run_demo(self.home) |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
80 output = out.getvalue().strip() |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
81 print(output) |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
82 # if the server installed and started this will be the |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
83 # last line in the output. |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
84 self.assertIn("Keyboard Interrupt: exiting", output.split('\n')) |
|
3e33b22a3158
BAsic test of demo and server intialization.
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
85 |
|
6719
77eb1a41fc06
test cleanup. Make test method and convert tests to use.
John Rouillard <rouilj@ieee.org>
parents:
6545
diff
changeset
|
86 def testDemoClassic(self): |
|
7704
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
87 with captured_output() as (out, err): |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
88 self.run_install_demo("classic") |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
89 self.assertIn("http://localhost:8917/demo/", out.getvalue()) |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
90 |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
91 # verify the default anydbm db is created |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
92 db_file = self.home + "/db/nodes.user" |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
93 self.assertTrue(os.path.isfile(db_file), |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
94 "expected db file %s does not exist" % db_file) |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
95 |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
96 # verify requested template was used |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
97 with open(self.home + "/TEMPLATE-INFO.txt", "r") as f: |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
98 info_lines = f.read() |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
99 |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
100 try: |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
101 # handle text files with \r\n line endings |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
102 info_lines.index("\r", 0, 100) |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
103 info_lines = info_lines.replace("\r\n", "\n") |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
104 except ValueError: |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
105 pass |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
106 |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
107 self.assertIn("Name: classic-_test_demo\n", info_lines) |
|
6545
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6324
diff
changeset
|
108 |
|
6719
77eb1a41fc06
test cleanup. Make test method and convert tests to use.
John Rouillard <rouilj@ieee.org>
parents:
6545
diff
changeset
|
109 def testDemoMinimal(self): |
|
7704
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
110 # test explicit path to template as others test template |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
111 # search path. |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
112 with captured_output() as (out, err): |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
113 self.run_install_demo('../templates/minimal', db="sqlite") |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
114 self.assertIn("http://localhost:8917/demo/", out.getvalue()) |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
115 |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
116 # verify the requested sqlite db file is created |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
117 db_file = self.home + "/db/db" |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
118 self.assertTrue(os.path.isfile(db_file), |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
119 "expected db file %s does not exist" % db_file) |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
120 |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
121 # verify requested template was used |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
122 with open(self.home + "/TEMPLATE-INFO.txt", "r") as f: |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
123 info_lines = f.read() |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
124 |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
125 try: |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
126 # handle text files with \r\n line endings |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
127 info_lines.index("\r", 0, 100) |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
128 info_lines = info_lines.replace("\r\n", "\n") |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
129 except ValueError: |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
130 pass |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
131 |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
132 self.assertIn("Name: minimal-_test_demo\n", info_lines) |
|
6545
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6324
diff
changeset
|
133 |
|
7583
4cfaddc2d53e
test: do not run jinja2 demo test if jinja2 missing.
John Rouillard <rouilj@ieee.org>
parents:
6719
diff
changeset
|
134 @skip_jinja2 |
|
6545
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6324
diff
changeset
|
135 def testDemoJinja(self): |
|
7704
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
136 with captured_output() as (out, err): |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
137 self.run_install_demo('jinja2', db="anydbm") |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
138 self.assertIn("http://localhost:8917/demo/", out.getvalue()) |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
139 |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
140 # verify the requested anydbm db file is created |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
141 db_file = self.home + "/db/nodes.user" |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
142 self.assertTrue(os.path.isfile(db_file), |
|
5b1163dca9e1
test: actually test output from running demo server code
John Rouillard <rouilj@ieee.org>
parents:
7586
diff
changeset
|
143 "expected db file %s does not exist" % db_file) |
|
6545
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6324
diff
changeset
|
144 |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6324
diff
changeset
|
145 # verify that template was set to jinja2 by reading config |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6324
diff
changeset
|
146 with open(self.home + "/config.ini", "r") as f: |
|
7585
227aca44fea5
test: fix failure under cygwin python caused by line endings
John Rouillard <rouilj@ieee.org>
parents:
7583
diff
changeset
|
147 config_lines = f.read() |
|
227aca44fea5
test: fix failure under cygwin python caused by line endings
John Rouillard <rouilj@ieee.org>
parents:
7583
diff
changeset
|
148 |
|
227aca44fea5
test: fix failure under cygwin python caused by line endings
John Rouillard <rouilj@ieee.org>
parents:
7583
diff
changeset
|
149 try: |
|
227aca44fea5
test: fix failure under cygwin python caused by line endings
John Rouillard <rouilj@ieee.org>
parents:
7583
diff
changeset
|
150 # handle text files with \r\n line endings |
|
7586
859c57bc8d91
test: limit search for \r to first 100 bytes.
John Rouillard <rouilj@ieee.org>
parents:
7585
diff
changeset
|
151 config_lines.index("\r", 0, 100) |
|
7585
227aca44fea5
test: fix failure under cygwin python caused by line endings
John Rouillard <rouilj@ieee.org>
parents:
7583
diff
changeset
|
152 config_lines = config_lines.replace("\r\n", "\n") |
|
227aca44fea5
test: fix failure under cygwin python caused by line endings
John Rouillard <rouilj@ieee.org>
parents:
7583
diff
changeset
|
153 except ValueError: |
|
227aca44fea5
test: fix failure under cygwin python caused by line endings
John Rouillard <rouilj@ieee.org>
parents:
7583
diff
changeset
|
154 pass |
|
6545
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6324
diff
changeset
|
155 |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6324
diff
changeset
|
156 self.assertIn("template_engine = jinja2\n", config_lines) |
|
5a3a386aa8e7
issue2551179 Load config_ini.ini ... recognize minimal template demo.py
John Rouillard <rouilj@ieee.org>
parents:
6324
diff
changeset
|
157 |
