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 | |
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')
-rw-r--r-- | tests/files/simple.spmd | 9 | ||||
-rw-r--r-- | tests/files/simple.spmd.fdx | 24 | ||||
-rw-r--r-- | tests/files/simple.spmd.html | 4 | ||||
-rw-r--r-- | tests/files_test.py | 59 |
4 files changed, 96 insertions, 0 deletions
diff --git a/tests/files/simple.spmd b/tests/files/simple.spmd new file mode 100644 index 0000000..07d488d --- /dev/null +++ b/tests/files/simple.spmd @@ -0,0 +1,9 @@ +EXT. SOMEWHERE - DAY + +GUY and GURL walks down the street. + +GUY +So what's up? + +GURL +Nothing much. diff --git a/tests/files/simple.spmd.fdx b/tests/files/simple.spmd.fdx new file mode 100644 index 0000000..2e56d82 --- /dev/null +++ b/tests/files/simple.spmd.fdx @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<FinalDraft DocumentType="Script" Template="No" Version="1"> + + <Content> + <Paragraph Type="Scene Heading"> + <Text>EXT. SOMEWHERE - DAY</Text> + </Paragraph> + <Paragraph Type="Action"> + <Text>GUY and GURL walks down the street.</Text> + </Paragraph> + <Paragraph Type="Character"> + <Text>GUY</Text> + </Paragraph> + <Paragraph Type="Dialogue"> + <Text>So what's up?</Text> + </Paragraph> + <Paragraph Type="Character"> + <Text>GURL</Text> + </Paragraph> + <Paragraph Type="Dialogue"> + <Text>Nothing much.</Text> + </Paragraph> + </Content> +</FinalDraft> diff --git a/tests/files/simple.spmd.html b/tests/files/simple.spmd.html new file mode 100644 index 0000000..42cc600 --- /dev/null +++ b/tests/files/simple.spmd.html @@ -0,0 +1,4 @@ +<h2>EXT. SOMEWHERE - DAY</h2> +<div class="action"><p>GUY and GURL walks down the street.</p></div> +<div class="dialog"><p class="character">GUY</p><p>So what's up?</p></div> +<div class="dialog"><p class="character">GURL</p><p>Nothing much.</p></div> 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) |