matrix tests: Add test for sample config generation.

This commit is contained in:
neiljp (Neil Pilgrim) 2018-06-03 09:37:17 -07:00 committed by Tim Abbott
parent c692c4712a
commit e693c25abc

View file

@ -2,12 +2,40 @@ from unittest import TestCase
from subprocess import Popen, PIPE from subprocess import Popen, PIPE
import os import os
import shutil
from contextlib import contextmanager
from tempfile import mkdtemp
script_file = "matrix_bridge.py" script_file = "matrix_bridge.py"
script_dir = os.path.dirname(__file__) script_dir = os.path.dirname(__file__)
script = os.path.join(script_dir, script_file) script = os.path.join(script_dir, script_file)
from typing import List from typing import List, Iterator
sample_config_path = "matrix_test.conf"
sample_config_text = """[matrix]
host = https://matrix.org
username = username
password = password
room_id = #zulip:matrix.org
[zulip]
email = glitch-bot@chat.zulip.org
api_key = aPiKeY
site = https://chat.zulip.org
stream = test here
topic = matrix
"""
@contextmanager
def new_temp_dir():
# type: () -> Iterator[str]
path = mkdtemp()
yield path
shutil.rmtree(path)
class MatrixBridgeTests(TestCase): class MatrixBridgeTests(TestCase):
def output_from_script(self, options): def output_from_script(self, options):
@ -38,3 +66,13 @@ class MatrixBridgeTests(TestCase):
self.assertTrue(len(output_lines) > blank_lines[0]) self.assertTrue(len(output_lines) > blank_lines[0])
# Minimal description should be in the first line of the 2nd "paragraph" # Minimal description should be in the first line of the 2nd "paragraph"
self.assertIn(description, output_lines[blank_lines[0] + 1]) self.assertIn(description, output_lines[blank_lines[0] + 1])
def test_write_sample_config(self):
# type: () -> None
with new_temp_dir() as tempdir:
path = os.path.join(tempdir, sample_config_path)
output_lines = self.output_from_script(["--write-sample-config", path])
self.assertEqual(output_lines, ["Wrote sample configuration to '{}'".format(path)])
with open(path) as sample_file:
self.assertEqual(sample_file.read(), sample_config_text)