diff options
| author | Martin Vilcans <martin@librador.com> | 2011-09-08 23:03:13 +0200 |
|---|---|---|
| committer | Martin Vilcans <martin@librador.com> | 2011-09-09 00:00:19 +0200 |
| commit | 579fa278aeaa26dccbdfe28b4b5ce0db3390c0b8 (patch) | |
| tree | 4059ba95886bea7f743b3f303176079ca1669069 /tests/parse_test.py | |
| parent | f29785e72f42a6f9d6f69f031f00883348e91824 (diff) | |
Split code into more modules.
Diffstat (limited to 'tests/parse_test.py')
| -rw-r--r-- | tests/parse_test.py | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/tests/parse_test.py b/tests/parse_test.py deleted file mode 100644 index 1eabdb2..0000000 --- a/tests/parse_test.py +++ /dev/null @@ -1,152 +0,0 @@ -import unittest2 -from screenplain import parse -from screenplain.parse import Slug, Action, Dialog, DualDialog, Transition - -class ParseTests(unittest2.TestCase): - - # Without this, the @skip decorator gives - # AttributeError: 'ParseTests' object has no attribute '__name__' - __name__ = 'ParseTests' - - # A Scene Heading, or "slugline," is any line that has a blank - # line following it, and either begins with INT or EXT, or has - # two empty lines preceding it. A Scene Heading always has at - # least one blank line preceding it. - # NOTE: Actually the list used in Appendix 1 - def test_slug_with_prefix(self): - paras = list(parse.parse([ - 'INT. SOMEWHERE - DAY', - '', - 'THIS IS JUST ACTION', - ])) - self.assertEquals([Slug, Action], [type(p) for p in paras]) - - def test_action_is_not_a_slug(self): - paras = list(parse.parse([ - '', - 'THIS IS JUST ACTION', - ])) - self.assertEquals([Action], [type(p) for p in paras]) - - def test_two_lines_creates_a_slug(self): - types = [type(p) for p in parse.parse([ - '', - '', - 'This is a slug', - '', - ])] - self.assertEquals([Slug], types) - - # 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): - paras = [p for p in parse.parse([ - 'SOME GUY', - 'Hello', - ])] - self.assertEquals(1, len(paras)) - dialog = paras[0] - self.assertEquals(Dialog, type(dialog)) - self.assertEquals('SOME GUY', dialog.character) - - # SPMD would not be able to support a character named "23". We - # might need a syntax to force a character element. - def test_nonalpha_character(self): - paras = list(parse.parse([ - '23', - 'Hello', - ])) - self.assertEquals([Action], [type(p) for p in paras]) - - # See - # http://prolost.com/storage/downloads/spmd/SPMD_proposal.html#section-br - def test_twospaced_line_is_not_character(self): - paras = list(parse.parse([ - 'SCANNING THE AISLES... ', - 'Where is that pit boss?', - ])) - self.assertEquals([Action], [type(p) for p in paras]) - - def test_simple_parenthetical(self): - paras = list(parse.parse([ - 'STEEL', - '(starting the engine)', - 'So much for retirement!', - ])) - self.assertEquals(1, len(paras)) - dialog = paras[0] - self.assertEqual(2, len(dialog.blocks)) - self.assertEqual((True, '(starting the engine)'), dialog.blocks[0]) - self.assertEqual((False, 'So much for retirement!'), dialog.blocks[1]) - - def test_dual_dialog(self): - paras = list(parse.parse([ - 'BRICK', - 'Fuck retirement.', - '||', - 'STEEL', - 'Fuck retirement!', - ])) - self.assertEquals([DualDialog], [type(p) for p in paras]) - dual = paras[0] - self.assertEquals('BRICK', dual.left.character) - self.assertEquals([(False, 'Fuck retirement.')], dual.left.blocks) - self.assertEquals('STEEL', dual.right.character) - self.assertEquals([(False, 'Fuck retirement!')], dual.right.blocks) - - def test_standard_transition(self): - - paras = list(parse.parse([ - 'Jack begins to argue vociferously in Vietnamese (?)', - '', - 'CUT TO:', - '', - "EXT. BRICK'S POOL - DAY", - ])) - self.assertEquals([Action, Transition, Slug], [type(p) for p in paras]) - - def test_standard_transition(self): - - paras = list(parse.parse([ - 'Jack begins to argue vociferously in Vietnamese (?)', - '', - 'CUT TO:', - '', - "EXT. BRICK'S POOL - DAY", - ])) - self.assertEquals([Action, Transition, Slug], [type(p) for p in paras]) - - def test_transition_needs_to_be_upper_case(self): - paras = list(parse.parse([ - 'Jack begins to argue vociferously in Vietnamese (?)', - '', - 'cut to:', - '', - "EXT. BRICK'S POOL - DAY", - ])) - self.assertEquals([Action, Action, Slug], [type(p) for p in paras]) - - def test_not_a_transition_on_trailing_whitespace(self): - paras = list(parse.parse([ - 'Jack begins to argue vociferously in Vietnamese (?)', - '', - 'CUT TO: ', - '', - "EXT. BRICK'S POOL - DAY", - ])) - self.assertEquals([Action, Action, Slug], [type(p) for p in paras]) - - # Not implemented yet - @unittest2.expectedFailure - def test_transition_must_be_followed_by_slug(self): - paras = list(parse.parse([ - 'Bill lights a cigarette.', - '', - 'CUT TO:', - '', - 'SOME GUY mowing the lawn.', - ])) - self.assertEquals([Action, Action, Action], [type(p) for p in paras]) - -if __name__ == '__main__': - unittest2.main() |
