diff options
author | Martin Vilcans <martin@librador.com> | 2012-01-31 22:43:41 +0100 |
---|---|---|
committer | Martin Vilcans <martin@librador.com> | 2012-01-31 22:43:41 +0100 |
commit | c58355251be5d92892163f13bc927c28a65ad30b (patch) | |
tree | 013ede9b612f2d28c3b2b4c934c38c1d55103c62 /tests/files_test.py | |
parent | 193b478bb82bf13a35ba775b4321e294f89ea5f7 (diff) | |
download | screenplain-c58355251be5d92892163f13bc927c28a65ad30b.tar.gz |
Added tests on actual input/output files.
This is to make sure everything works from the command-line
level to avoid silly mistakes like the last bug.
Diffstat (limited to 'tests/files_test.py')
-rw-r--r-- | tests/files_test.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/files_test.py b/tests/files_test.py new file mode 100644 index 0000000..38f8892 --- /dev/null +++ b/tests/files_test.py @@ -0,0 +1,59 @@ +# Copyright (c) 2012 Martin Vilcans +# Licensed under the MIT license: +# http://www.opensource.org/licenses/mit-license.php + +from __future__ import with_statement + +import unittest2 +import tempfile +import os.path +import shutil + +from screenplain.main import main + +source_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), 'files')) + +def read_file(path): + with open(path) as stream: + return stream.read() + + +class ParseTests(unittest2.TestCase): + """High level tests that runs Screenplain using command line arguments. + """ + + maxDiff = None + + def setUp(self): + self.dir = tempfile.mkdtemp() + + def tearDown(self): + shutil.rmtree(self.dir) + + def source(self, filename): + return os.path.join(source_dir, filename) + + def target(self, name): + return os.path.join(self.dir, name) + + def convert( + self, + input_file, output_file, expected_results_file, + *options + ): + input_path = self.source(input_file) + output_path = self.target(output_file) + main(list(options) + [input_path, output_path]) + actual = read_file(output_path) + expected = read_file(self.source(expected_results_file)) + return actual, expected + + def test_spmd_to_fdx(self): + actual, expected = self.convert( + 'simple.spmd', 'simple.fdx', 'simple.spmd.fdx') + self.assertMultiLineEqual(expected, actual) + + def test_spmd_to_html(self): + actual, expected = self.convert( + 'simple.spmd', 'simple.html', 'simple.spmd.html', '--bare') + self.assertMultiLineEqual(expected, actual) |