예제 #1
0
 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
예제 #2
0
 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
예제 #3
0
 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
예제 #4
0
    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