def _build_background_statement(self, keyword, line): if self.tags: msg = u"Background supports no tags: @%s" % (u" @".join(self.tags)) raise ParserError(msg, self.line, self.filename, line) name = line[len(keyword) + 1:].strip() statement = model.Background(self.filename, self.line, keyword, name) self.statement = statement self.feature.background = self.statement
def _build_background_statement(self, keyword, line): if self.tags: msg = u"Background supports no tags: @%s" % (u" @".join(self.tags)) raise ParserError(msg, self.line, self.filename, line) elif self.scenario_container and self.scenario_container.background: if self.scenario_container.background.steps: # -- HINT: Rule may have default background w/o steps. msg = u"Second Background (can have only one)" raise ParserError(msg, self.line, self.filename, line) name = line[len(keyword) + 1:].strip() background = model.Background(self.filename, self.line, keyword, name) self.scenario_container.add_background(background) self.statement = background
def parse_background(self, json_element): """ self.add_feature_element({ 'keyword': background.keyword, 'location': background.location, 'steps': [], }) """ keyword = json_element.get("keyword", u"") name = json_element.get("name", u"") location = json_element.get("location", u"") json_steps = json_element.get("steps", []) steps = self.parse_steps(json_steps) filename, line = location.split(":") background = model.Background(filename, line, keyword, name, steps) return background
def action_feature(self, line): line = line.strip() if line.startswith('@'): self.tags.extend(self.parse_tags(line)) return True background_kwd = self.match_keyword('background', line) if background_kwd: name = line[len(background_kwd) + 1:].strip() self.statement = model.Background(self.filename, self.line, background_kwd, name) self.feature.background = self.statement self.state = 'steps' return True scenario_kwd = self.match_keyword('scenario', line) if scenario_kwd: name = line[len(scenario_kwd) + 1:].strip() self.statement = model.Scenario(self.filename, self.line, scenario_kwd, name, tags=self.tags) self.tags = [] self.feature.add_scenario(self.statement) self.state = 'steps' return True scenario_outline_kwd = self.match_keyword('scenario_outline', line) if scenario_outline_kwd: name = line[len(scenario_outline_kwd) + 1:].strip() self.statement = model.ScenarioOutline(self.filename, self.line, scenario_outline_kwd, name, tags=self.tags) self.tags = [] self.feature.add_scenario(self.statement) self.state = 'steps' return True self.feature.description.append(line) return True