summaryrefslogtreecommitdiff
path: root/yarnlib
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2013-07-14 19:23:43 +0100
committerLars Wirzenius <liw@liw.fi>2013-07-14 19:23:43 +0100
commitfc0481c1d8a33a7efa0a2247f897671a118bba75 (patch)
treedf729389109b490c052365327f5215bcb1ff74ae /yarnlib
parent9daf600f77ecc116ff345e4f53c50994443e0973 (diff)
downloadcmdtest-fc0481c1d8a33a7efa0a2247f897671a118bba75.tar.gz
Implement ASSUMING
Diffstat (limited to 'yarnlib')
-rw-r--r--yarnlib/block_parser.py4
-rw-r--r--yarnlib/block_parser_tests.py24
2 files changed, 17 insertions, 11 deletions
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 '])