aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMartin Vilcans <martin@librador.com>2012-01-31 22:43:41 +0100
committerMartin Vilcans <martin@librador.com>2012-01-31 22:43:41 +0100
commitc58355251be5d92892163f13bc927c28a65ad30b (patch)
tree013ede9b612f2d28c3b2b4c934c38c1d55103c62 /tests
parent193b478bb82bf13a35ba775b4321e294f89ea5f7 (diff)
downloadscreenplain-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.spmd9
-rw-r--r--tests/files/simple.spmd.fdx24
-rw-r--r--tests/files/simple.spmd.html4
-rw-r--r--tests/files_test.py59
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)