def test_split_split_e2bi_patterm_01(self):

        patt = "FK[_AA]"
        pw = pc.PatternWrapper(patt)
        (e2bipattern_parts, part_is_optional) = pw.split_e2bi_patterm(patt)
        if not e2bipattern_parts == ["FK", "{AA}"]:
            self.fail()
        if not part_is_optional == [False, True]:
            self.fail()

        patt = "FK[_AA][_BB]"
        pw = pc.PatternWrapper(patt)
        (e2bipattern_parts, part_is_optional) = pw.split_e2bi_patterm(patt)
        if not e2bipattern_parts == ["FK", "{AA}", "{BB}"]:
            self.fail()
        if not part_is_optional == [False, True, True]:
            self.fail()
    def test_generate_regex_01(self):

        patt = 'FK[_<label>]'
        pw = pc.PatternWrapper(patt)
        r = pw.generate_regex(patt)

        patt = 'FK[_ <label>]'
        pw = pc.PatternWrapper(patt)
        r = pw.generate_regex(patt)

        patt = 'FK_<nome tabella padre senza prefisso T_>[_ <label>]'
        pw = pc.PatternWrapper(patt)
        r = pw.generate_regex(patt)


        patt = "FK[_AA]"
        pw = pc.PatternWrapper(patt)
        r = pw.generate_regex(patt)

        patt = "FK[_AA/BB]"
        pw = pc.PatternWrapper(patt)
        r = pw.generate_regex(patt)

        patt = 'FK_{<sistema sorgente>/<sistema destinazione>/AA/BBB}'
        pw = pc.PatternWrapper(patt)
        r = pw.generate_regex(patt)
    def test_ad_hoc(self):
        """ testa subito, da soli errori presi altrove"""


        patt = "T_DMT_<sistema sorgente>/<sistema BI>_{DM/FT/FA/LM}_<label>"
        pw = pc.PatternWrapper(patt)
        r = pw.generate_regex(patt)
        if not r == "^T_DMT_([^_]+?)(?:_DM|_FT|_FA|_LM)_(.+)$":
            self.fail()


        # NB. non sarebbe corretta
        patt = 'DBL[<_label>]'
        pw = pc.PatternWrapper(patt)
        r = pw.generate_regex(patt)
        if not r == "^DBL(_.*)?$":
            self.fail()

        patt = 'DBL[_<_label>]'
        pw = pc.PatternWrapper(patt)
        r = pw.generate_regex(patt)
        if not r == "^DBL(_.*)?$":
            self.fail()



        patt = 'DBL_BSC_<sistema sorgente>[<_label>]'
        pw = pc.PatternWrapper(patt)
        r = pw.generate_regex(patt)
        if not r == "^DBL_BSC_([^_]+?)(_.*)?$":
            self.fail()


        patt = "TS_MTD_<label>_D"
        pw = pc.PatternWrapper(patt)
        r = pw.generate_regex(patt)
        if not r == "^TS_MTD_([^_]+?)_D$":
            self.fail()
コード例 #4
0
    def generate_pattern_wrappers(self, pattern_lines_par = None):
        """from list of E2BI patterns build the parse objects that contain
        the objects is needed to check that e2bi pattern against a string
        """

        self._pattern_lines = pattern_lines_par if pattern_lines_par is not None else self._pattern_lines

        mask_lines = [l.strip() for l in self._pattern_lines.split("\n")]

        pattern_wrappers_list = []
        for l in mask_lines:
            if len(l) == 0:
                continue
            p = pc.PatternWrapper(l)
            pattern_wrappers_list.append(p)

        return pattern_wrappers_list
コード例 #5
0
 def check(self, p, token ):
     p = pc.PatternWrapper(p)
     return p.check_stmt_token(token)