diff --git a/freshen/parser.py b/freshen/parser.py index 6990951..c5a4deb 100644 --- a/freshen/parser.py +++ b/freshen/parser.py @@ -124,6 +124,18 @@ def set_values(self, value_dict): result = copy.deepcopy(self) for name, value in value_dict.iteritems(): result.match = result.match.replace("<%s>" % name, value) + + if result.arg is not None and isinstance(result.arg, Table): + new_rows = [] + for row in result.arg.rows: + new_items = [] + for item in row: + for name, value in value_dict.iteritems(): + item = item.replace("<%s>" % name, value) + new_items.append(item) + new_rows.append(new_items) + result.arg = Table(result.arg.headings, new_rows) + return result @@ -187,7 +199,7 @@ def process_then_step(s): def process_and_but_step(orig, loc, s): if last_step_type[0] == None: raise ParseFatalException(orig, loc, - "'And' or 'But' steps can only come after 'Given', 'When', or 'Then'") + "'And' or 'But' steps can only come after 'Given', 'When', or 'Then'") return (s[0], last_step_type[0]) def process_string(s):