Пример #1
0
 def testLimited(self):
     tests = [
               # regular and quoting tests
               (u'd = 4,c=3,b=2,a= 1 ',    ([], {u'd': u'4',
                                                 u'c': u'3,b=2,a= 1'}, [])),
               (u'a,b,c,d',                ([u'a', u'b,c,d'], {}, [])),
               (u'a=b,b,c,d',              ([], {u'a': u'b'}, [u'b,c,d'])),
             ]
     for args, expected in tests:
         result = paramparser.parse_quoted_separated(args, seplimit=1)
         assert expected == result
         for val in result[0]:
             assert val is None or isinstance(val, unicode)
         for val in result[1].keys():
             assert val is None or isinstance(val, unicode)
         for val in result[1].values():
             assert val is None or isinstance(val, unicode)
         for val in result[2]:
             assert val is None or isinstance(val, unicode)
Пример #2
0
 def testNoNameValue(self):
     abcd = [u'a', u'b', u'c', u'd']
     tests = [
         # regular and quoting tests
         (u'd = 4,c=3,b=2,a= 1 ', [u'd = 4', u'c=3', u'b=2', u'a= 1']),
         (u'a,b,c,d', abcd),
         (u' a , b , c , d ', abcd),
         (u'   a   ', [u'a']),
         (u'"  a  "', [u'  a  ']),
         (u'a,b,c,d, "a,b,c,d"', abcd + [u'a,b,c,d']),
         (u'quote " :), b', [u'quote " :)', u'b']),
         (u'"quote "" :)", b', [u'quote " :)', u'b']),
         (u'"unended quote', [u'"unended quote']),
         (u'"', [u'"']),
         (u'd=d,e="a,b,c,d"', [u'd=d', u'e="a', u'b', u'c', u'd"']),
     ]
     for args, expected in tests:
         result = paramparser.parse_quoted_separated(args, name_value=False)
         assert expected == result
         for val in result:
             assert val is None or isinstance(val, unicode)
Пример #3
0
 def testLimited(self):
     tests = [
         # regular and quoting tests
         (u'd = 4,c=3,b=2,a= 1 ', ([], {
             u'd': u'4',
             u'c': u'3,b=2,a= 1'
         }, [])),
         (u'a,b,c,d', ([u'a', u'b,c,d'], {}, [])),
         (u'a=b,b,c,d', ([], {
             u'a': u'b'
         }, [u'b,c,d'])),
     ]
     for args, expected in tests:
         result = paramparser.parse_quoted_separated(args, seplimit=1)
         assert expected == result
         for val in result[0]:
             assert val is None or isinstance(val, unicode)
         for val in result[1].keys():
             assert val is None or isinstance(val, unicode)
         for val in result[1].values():
             assert val is None or isinstance(val, unicode)
         for val in result[2]:
             assert val is None or isinstance(val, unicode)
Пример #4
0
 def testNoNameValue(self):
     abcd = [u'a', u'b', u'c', u'd']
     tests = [
               # regular and quoting tests
               (u'd = 4,c=3,b=2,a= 1 ',    [u'd = 4', u'c=3',
                                            u'b=2', u'a= 1']),
               (u'a,b,c,d',                abcd),
               (u' a , b , c , d ',        abcd),
               (u'   a   ',                [u'a']),
               (u'"  a  "',                [u'  a  ']),
               (u'a,b,c,d, "a,b,c,d"',     abcd + [u'a,b,c,d']),
               (u'quote " :), b',          [u'quote " :)', u'b']),
               (u'"quote "" :)", b',       [u'quote " :)', u'b']),
               (u'"unended quote',         [u'"unended quote']),
               (u'"',                      [u'"']),
               (u'd=d,e="a,b,c,d"',        [u'd=d', u'e="a', u'b',
                                            u'c', u'd"']),
             ]
     for args, expected in tests:
         result = paramparser.parse_quoted_separated(args, name_value=False)
         assert expected == result
         for val in result:
             assert val is None or isinstance(val, unicode)
Пример #5
0
 def _check(a, e):
     r = paramparser.parse_quoted_separated(a)
     assert r == e
Пример #6
0
 def testMacroArgs(self):
     abcd = [u'a', u'b', u'c', u'd']
     abcd_dict = {u'a': u'1', u'b': u'2', u'c': u'3', u'd': u'4'}
     tests = [
         # regular and quoting tests
         (u'd = 4,c=3,b=2,a= 1 ', ([], abcd_dict, [])),
         (u'a,b,c,d', (abcd, {}, [])),
         (u' a , b , c , d ', (abcd, {}, [])),
         (u'   a   ', ([u'a'], {}, [])),
         (u'"  a  "', ([u'  a  '], {}, [])),
         (u'a,b,c,d, "a,b,c,d"', (abcd + [u'a,b,c,d'], {}, [])),
         (u'quote " :), b', ([u'quote " :)', u'b'], {}, [])),
         (u'"quote "" :)", b', ([u'quote " :)', u'b'], {}, [])),
         (u'=7', ([], {
             u'': u'7'
         }, [])),
         (u',,', ([None, None, None], {}, [])),
         (u',"",', ([None, u'', None], {}, [])),
         (u',"", ""', ([None, u'', u''], {}, [])),
         (u'  ""  ,"", ""', ([u'', u'', u''], {}, [])),
         # some name=value test
         (u'd = 4,c=3,b=2,a= 1 ', ([], abcd_dict, [])),
         (u'd=d,e="a,b,c,d"', ([], {
             u'd': u'd',
             u'e': u'a,b,c,d'
         }, [])),
         (u'd = d,e = "a,b,c,d"', ([], {
             u'd': u'd',
             u'e': u'a,b,c,d'
         }, [])),
         (u'd = d, e = "a,b,c,d"', ([], {
             u'd': u'd',
             u'e': u'a,b,c,d'
         }, [])),
         (u'd = , e = "a,b,c,d"', ([], {
             u'd': None,
             u'e': u'a,b,c,d'
         }, [])),
         (u'd = "", e = "a,b,c,d"', ([], {
             u'd': u'',
             u'e': u'a,b,c,d'
         }, [])),
         (u'd = "", e = ', ([], {
             u'd': u'',
             u'e': None
         }, [])),
         (u'd=""', ([], {
             u'd': u''
         }, [])),
         (u'd = "", e = ""', ([], {
             u'd': u'',
             u'e': u''
         }, [])),
         # no, None as key isn't accepted
         (u' = "",  e = ""', ([], {
             u'': u'',
             u'e': u''
         }, [])),
         # can quote both name and value:
         (u'd = d," e "= "a,b,c,d"', ([], {
             u'd': u'd',
             u' e ': u'a,b,c,d'
         }, [])),
         # trailing args
         (u'1,2,a=b,3,4', ([u'1', u'2'], {
             u'a': u'b'
         }, [u'3', u'4'])),
         # can quote quotes:
         (u'd = """d"', ([], {
             u'd': u'"d'
         }, [])),
         (u'd = """d"""', ([], {
             u'd': u'"d"'
         }, [])),
         (u'd = "d"" ", e=7', ([], {
             u'd': u'd" ',
             u'e': u'7'
         }, [])),
         (u'd = "d""", e=8', ([], {
             u'd': u'd"',
             u'e': u'8'
         }, [])),
     ]
     for args, expected in tests:
         result = paramparser.parse_quoted_separated(args)
         assert expected == result
         for val in result[0]:
             assert val is None or isinstance(val, unicode)
         for val in result[1].keys():
             assert val is None or isinstance(val, unicode)
         for val in result[1].values():
             assert val is None or isinstance(val, unicode)
         for val in result[2]:
             assert val is None or isinstance(val, unicode)
Пример #7
0
 def testMacroArgs(self):
     abcd = [u'a', u'b', u'c', u'd']
     abcd_dict = {u'a': u'1', u'b': u'2', u'c': u'3', u'd': u'4'}
     tests = [
               # regular and quoting tests
               (u'd = 4,c=3,b=2,a= 1 ',    ([], abcd_dict, [])),
               (u'a,b,c,d',                (abcd, {}, [])),
               (u' a , b , c , d ',        (abcd, {}, [])),
               (u'   a   ',                ([u'a'], {}, [])),
               (u'"  a  "',                ([u'  a  '], {}, [])),
               (u'a,b,c,d, "a,b,c,d"',     (abcd+[u'a,b,c,d'], {}, [])),
               (u'quote " :), b',          ([u'quote " :)', u'b'], {}, [])),
               (u'"quote "" :)", b',       ([u'quote " :)', u'b'], {}, [])),
               (u'=7',                     ([], {u'': u'7'}, [])),
               (u',,',                     ([None, None, None], {}, [])),
               (u',"",',                   ([None, u'', None], {}, [])),
               (u',"", ""',                ([None, u'', u''], {}, [])),
               (u'  ""  ,"", ""',          ([u'', u'', u''], {}, [])),
               # some name=value test
               (u'd = 4,c=3,b=2,a= 1 ',    ([], abcd_dict, [])),
               (u'd=d,e="a,b,c,d"',        ([], {u'd': u'd',
                                                 u'e': u'a,b,c,d'}, [])),
               (u'd = d,e = "a,b,c,d"',    ([], {u'd': u'd',
                                                 u'e': u'a,b,c,d'}, [])),
               (u'd = d, e = "a,b,c,d"',   ([], {u'd': u'd',
                                                 u'e': u'a,b,c,d'}, [])),
               (u'd = , e = "a,b,c,d"',    ([], {u'd': None,
                                                 u'e': u'a,b,c,d'}, [])),
               (u'd = "", e = "a,b,c,d"',  ([], {u'd': u'',
                                                 u'e': u'a,b,c,d'}, [])),
               (u'd = "", e = ',           ([], {u'd': u'', u'e': None},
                                            [])),
               (u'd=""',                   ([], {u'd': u''}, [])),
               (u'd = "", e = ""',         ([], {u'd': u'', u'e': u''},
                                            [])),
               # no, None as key isn't accepted
               (u' = "",  e = ""',         ([], {u'': u'', u'e': u''},
                                            [])),
               # can quote both name and value:
               (u'd = d," e "= "a,b,c,d"', ([], {u'd': u'd',
                                                 u' e ': u'a,b,c,d'}, [])),
               # trailing args
               (u'1,2,a=b,3,4',            ([u'1', u'2'], {u'a': u'b'},
                                            [u'3', u'4'])),
               # can quote quotes:
               (u'd = """d"',              ([], {u'd': u'"d'}, [])),
               (u'd = """d"""',            ([], {u'd': u'"d"'}, [])),
               (u'd = "d"" ", e=7',        ([], {u'd': u'd" ', u'e': u'7'},
                                            [])),
               (u'd = "d""", e=8',         ([], {u'd': u'd"', u'e': u'8'},
                                            [])),
             ]
     for args, expected in tests:
         result = paramparser.parse_quoted_separated(args)
         assert expected == result
         for val in result[0]:
             assert val is None or isinstance(val, unicode)
         for val in result[1].keys():
             assert val is None or isinstance(val, unicode)
         for val in result[1].values():
             assert val is None or isinstance(val, unicode)
         for val in result[2]:
             assert val is None or isinstance(val, unicode)
Пример #8
0
 def _check(a, e):
     r = paramparser.parse_quoted_separated(a)
     assert r == e