def test_parse_regex(): # ### check that EMPTY list return empty lists: ret = parse_regex([]) assert_equal(ret, []) # + and so do only empty lines: assert_equal(parse_regex(['', '']), []) # ### check ERROR cases: # + line won't match (check) cases_wrong_lines = ( # lines, expected result if *check* is *None* (['asd'], [None]), (['', 'xxxx'], [None]), # empty lines get filterted (['123-45/12', '123 - 23 - 1234'], [None, None]), ) for lines, exp_if_nocheck in cases_wrong_lines: with assert_raises(BpdiagError): parse_regex(lines, check=True) with assert_raises(BpdiagError): parse_regex(lines, check=False) res = parse_regex(lines, check=None) assert_equal(res, exp_if_nocheck) # + missing SYS, ARG and / or PULSE cases_missing_kwarg = ( (ur'^30', ['3070']), )
(['123-45/12', '123 - 23 - 1234'], [None, None]), ) for lines, exp_if_nocheck in cases_wrong_lines: with assert_raises(BpdiagError): parse_regex(lines, check=True) with assert_raises(BpdiagError): parse_regex(lines, check=False) res = parse_regex(lines, check=None) assert_equal(res, exp_if_nocheck) # + missing SYS, ARG and / or PULSE cases_missing_kwarg = ( (ur'^30', ['3070']), ) for regex, lines in cases_missing_kwarg: with assert_raises(BpdiagError): parse_regex(lines, regex) # ### check correct parsing cases = ( ( ['123/78/65'], [{'sys': 123, 'dia': 78, 'pulse': 65}, ] ), ( ['123-78-65', '125 /79 / 68'], [ {'sys': 123, 'dia': 78, 'pulse': 65}, {'sys': 125, 'dia': 79, 'pulse': 68}, ] ), ( ['123/78/65', '', '125 / 79 / 68'],