Пример #1
0
    def update_by_regex(self, new_regex):
        """
        Assigns self.regex to new_regex.

        Throws NotMatchingRegexError if new_regex doesn't match self.line_text
        If needed, improves new_regex: new_regex = '^' + new_regex + '$' (regex must match whole line)
        Updates self.param_groups so that they correspond to new_regex groups
        """

        if new_regex[-1] != '$':
            new_regex += '$'

        try:
            verify_regex(new_regex, self.line_text)
        except NotMatchingRegexError:
            self.param_groups = {}
            self.primary_key = []
        else:
            groups = regex_groups(new_regex, self.line_text)
            default_converter = ConverterType.TO_STRING
            self.param_groups = dict(
                (key + 1, ParamGroup(groups[key], default_converter))
                for key in six.moves.range(len(groups))
            )
        finally:
            self.regex = new_regex
Пример #2
0
 def verify_regex_match(self, regex, line, wanted_groups=None):
     try:
         groups = regex_groups(regex, line)
         if wanted_groups is not None:
             assert groups == wanted_groups
     except NotMatchingRegexError as e:
         self.fail(e)
Пример #3
0
 def verify_regex_match(self, regex, line, wanted_groups=None):
     try:
         groups = regex_groups(regex, line)
         if wanted_groups is not None:
             assert groups == wanted_groups
     except NotMatchingRegexError as e:
         self.fail(e)