From fc0481c1d8a33a7efa0a2247f897671a118bba75 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sun, 14 Jul 2013 19:23:43 +0100 Subject: Implement ASSUMING --- yarnlib/block_parser.py | 4 ++++ yarnlib/block_parser_tests.py | 24 +++++++++++++----------- 2 files changed, 17 insertions(+), 11 deletions(-) (limited to 'yarnlib') diff --git a/yarnlib/block_parser.py b/yarnlib/block_parser.py index 84074e2..64dc990 100644 --- a/yarnlib/block_parser.py +++ b/yarnlib/block_parser.py @@ -36,6 +36,7 @@ class BlockParser(object): self.implementations = [] self.line_parsers = { 'SCENARIO': self.parse_scenario, + 'ASSUMING': self.parse_assuming, 'GIVEN': self.parse_given, 'WHEN': self.parse_when, 'THEN': self.parse_then, @@ -86,6 +87,9 @@ class BlockParser(object): self.scenarios[-1].steps.append(step) return blocks + def parse_assuming(self, line, blocks): + return self.parse_simple('ASSUMING', line, blocks) + def parse_given(self, line, blocks): return self.parse_simple('GIVEN', line, blocks) diff --git a/yarnlib/block_parser_tests.py b/yarnlib/block_parser_tests.py index c988479..78754b5 100644 --- a/yarnlib/block_parser_tests.py +++ b/yarnlib/block_parser_tests.py @@ -32,7 +32,7 @@ class BlockParserTests(unittest.TestCase): def test_parses_simple_elements(self): self.parser.parse_blocks( - ['SCENARIO foo', 'GIVEN bar', + ['SCENARIO foo', 'ASSUMING something', 'GIVEN bar', 'WHEN foobar\nTHEN yoyo\nFINALLY yay\nAND yeehaa']) self.assertEqual(len(self.parser.scenarios), 1) @@ -40,17 +40,19 @@ class BlockParserTests(unittest.TestCase): scenario = self.parser.scenarios[0] self.assertEqual(scenario.name, 'foo') - self.assertEqual(len(scenario.steps), 5) - self.assertEqual(scenario.steps[0].what, 'GIVEN') - self.assertEqual(scenario.steps[0].text, 'bar') - self.assertEqual(scenario.steps[1].what, 'WHEN') - self.assertEqual(scenario.steps[1].text, 'foobar') - self.assertEqual(scenario.steps[2].what, 'THEN') - self.assertEqual(scenario.steps[2].text, 'yoyo') - self.assertEqual(scenario.steps[3].what, 'FINALLY') - self.assertEqual(scenario.steps[3].text, 'yay') + self.assertEqual(len(scenario.steps), 6) + self.assertEqual(scenario.steps[0].what, 'ASSUMING') + self.assertEqual(scenario.steps[0].text, 'something') + self.assertEqual(scenario.steps[1].what, 'GIVEN') + self.assertEqual(scenario.steps[1].text, 'bar') + self.assertEqual(scenario.steps[2].what, 'WHEN') + self.assertEqual(scenario.steps[2].text, 'foobar') + self.assertEqual(scenario.steps[3].what, 'THEN') + self.assertEqual(scenario.steps[3].text, 'yoyo') self.assertEqual(scenario.steps[4].what, 'FINALLY') - self.assertEqual(scenario.steps[4].text, 'yeehaa') + self.assertEqual(scenario.steps[4].text, 'yay') + self.assertEqual(scenario.steps[5].what, 'FINALLY') + self.assertEqual(scenario.steps[5].text, 'yeehaa') def test_normalises_whitespace(self): self.parser.parse_blocks(['SCENARIO foo bar ']) -- cgit v1.2.1