From 429e3a428d3bd7f681bea753525dcffba078c4bf Mon Sep 17 00:00:00 2001 From: Martin Vilcans Date: Wed, 8 Feb 2012 00:05:01 +0100 Subject: Added support for sections --- tests/files/sections.spmd | 13 +++++++++++++ tests/files/sections.spmd.html | 7 +++++++ tests/files_test.py | 6 ++++++ tests/spmd_test.py | 16 +++++++++++++++- 4 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 tests/files/sections.spmd create mode 100644 tests/files/sections.spmd.html (limited to 'tests') diff --git a/tests/files/sections.spmd b/tests/files/sections.spmd new file mode 100644 index 0000000..96a2266 --- /dev/null +++ b/tests/files/sections.spmd @@ -0,0 +1,13 @@ +# First level + +## Second level + +EXT. STREET - DAWN + +DAWN walks down the street. + +## Second level again + +EXT. ALLEY - CONTINUOUS + +Dawn walks into this place. diff --git a/tests/files/sections.spmd.html b/tests/files/sections.spmd.html new file mode 100644 index 0000000..d06decb --- /dev/null +++ b/tests/files/sections.spmd.html @@ -0,0 +1,7 @@ +

First level

+

Second level

+
EXT. STREET - DAWN
+

DAWN walks down the street.

+

Second level again

+
EXT. ALLEY - CONTINUOUS
+

Dawn walks into this place.

diff --git a/tests/files_test.py b/tests/files_test.py index 1637dda..41d17bb 100644 --- a/tests/files_test.py +++ b/tests/files_test.py @@ -64,3 +64,9 @@ class ParseTests(unittest2.TestCase): 'scene-numbers.spmd', 'scene-numbers.html', 'scene-numbers.spmd.html', '--bare') self.assertMultiLineEqual(expected, actual) + + def test_sections(self): + actual, expected = self.convert( + 'sections.spmd', 'sections.html', + 'sections.spmd.html', '--bare') + self.assertMultiLineEqual(expected, actual) diff --git a/tests/spmd_test.py b/tests/spmd_test.py index 21f39ae..aac8df9 100644 --- a/tests/spmd_test.py +++ b/tests/spmd_test.py @@ -4,7 +4,9 @@ import unittest2 from screenplain.parsers.spmd import parse -from screenplain.types import Slug, Action, Dialog, DualDialog, Transition +from screenplain.types import ( + Slug, Action, Dialog, DualDialog, Transition, Section +) from screenplain.richstring import plain, italic, empty_string @@ -80,6 +82,18 @@ class ParseTests(unittest2.TestCase): paras[0].line ) + def test_section_parsed_correctly(self): + paras = parse([ + '# first level', + '', + '## second level', + ]) + self.assertEquals([Section, Section], [type(p) for p in paras]) + self.assertEquals(1, paras[0].level) + self.assertEquals(plain('first level'), paras[0].text) + self.assertEquals(2, paras[1].level) + self.assertEquals(plain('second level'), paras[1].text) + # 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): -- cgit v1.2.3