diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/files/scene-numbers.spmd | 7 | ||||
-rw-r--r-- | tests/files/scene-numbers.spmd.html | 4 | ||||
-rw-r--r-- | tests/files_test.py | 6 | ||||
-rw-r--r-- | tests/spmd_test.py | 16 |
4 files changed, 32 insertions, 1 deletions
diff --git a/tests/files/scene-numbers.spmd b/tests/files/scene-numbers.spmd new file mode 100644 index 0000000..51064d2 --- /dev/null +++ b/tests/files/scene-numbers.spmd @@ -0,0 +1,7 @@ +INT. SOMEWHERE - DAY #1# + +Bla bla + +INT. SOMEWHERE ELSE - NIGHT #2# + +Bla bla diff --git a/tests/files/scene-numbers.spmd.html b/tests/files/scene-numbers.spmd.html new file mode 100644 index 0000000..8179c79 --- /dev/null +++ b/tests/files/scene-numbers.spmd.html @@ -0,0 +1,4 @@ +<h2><span class="scnuml">1</span>INT. SOMEWHERE - DAY<span class="scnumr">1</span></h2> +<div class="action"><p>Bla bla</p></div> +<h2><span class="scnuml">2</span>INT. SOMEWHERE ELSE - NIGHT<span class="scnumr">2</span></h2> +<div class="action"><p>Bla bla</p></div> diff --git a/tests/files_test.py b/tests/files_test.py index af478fb..1637dda 100644 --- a/tests/files_test.py +++ b/tests/files_test.py @@ -58,3 +58,9 @@ class ParseTests(unittest2.TestCase): actual, expected = self.convert( 'simple.spmd', 'simple.html', 'simple.spmd.html', '--bare') self.assertMultiLineEqual(expected, actual) + + def test_scene_numbers(self): + actual, expected = self.convert( + 'scene-numbers.spmd', 'scene-numbers.html', + 'scene-numbers.spmd.html', '--bare') + self.assertMultiLineEqual(expected, actual) diff --git a/tests/spmd_test.py b/tests/spmd_test.py index 9f03076..b317b56 100644 --- a/tests/spmd_test.py +++ b/tests/spmd_test.py @@ -5,7 +5,7 @@ import unittest2 from screenplain.parsers.spmd import parse from screenplain.types import Slug, Action, Dialog, DualDialog, Transition -from screenplain.richstring import plain, empty_string +from screenplain.richstring import plain, italic, empty_string class ParseTests(unittest2.TestCase): @@ -62,6 +62,20 @@ class ParseTests(unittest2.TestCase): self.assertEquals(Slug, type(paras[0])) self.assertEquals(plain('SNIPER SCOPE POV'), paras[0].line) + def test_scene_number_is_parsed(self): + paras = parse(['EXT SOMEWHERE - DAY #42#']) + self.assertEquals(plain('EXT SOMEWHERE - DAY'), paras[0].line) + self.assertEquals(plain('42'), paras[0].scene_number) + + def test_only_last_two_hashes_in_slug_used_for_scene_number(self): + paras = parse(['INT ROOM #237 #42#']) + self.assertEquals(plain('42'), paras[0].scene_number) + self.assertEquals(plain('INT ROOM #237'), paras[0].line) + + def test_scene_number_can_be_styled(self): + paras = parse(['.SOMEWHERE #*HELLO*#']) + self.assertEquals(italic('HELLO'), paras[0].scene_number) + # A Character element is any line entirely in caps, with one empty # line before it and without an empty line after it. def test_all_caps_is_character(self): |