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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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

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