Esempio n. 1
0
 def test_simple(self):
     self.assertEqual(partial._parse('a'), {
         'a': {},
     })
     self.assertEqual(partial._parse('a,b'), {
         'a': {},
         'b': {},
     })
     self.assertEqual(partial._parse('a,b,c'), {
         'a': {},
         'b': {},
         'c': {},
     })
Esempio n. 2
0
 def test_duplicates(self):
     self.assertEqual(partial._parse('a,a'), {
         'a': {},
     })
     self.assertEqual(partial._parse('a,b,a'), {
         'a': {},
         'b': {},
     })
     self.assertEqual(partial._parse('a,b,b,a'), {
         'a': {},
         'b': {},
     })
     self.assertEqual(partial._parse('a/b,a/b'), {
         'a': {
             'b': {},
         },
     })
     self.assertEqual(partial._parse('a/b,a/b,c,d,d'), {
         'a': {
             'b': {},
         },
         'c': {},
         'd': {},
     })
     self.assertEqual(partial._parse('a/b,a(b)'), {
         'a': {
             'b': {},
         },
     })
     self.assertEqual(partial._parse('a(b),a/b,c,d,d'), {
         'a': {
             'b': {},
         },
         'c': {},
         'd': {},
     })
     self.assertEqual(partial._parse('a(b,c),a/b,a/c,a(b),a(c)'), {
         'a': {
             'b': {},
             'c': {},
         },
     })
     self.assertEqual(partial._parse('a/b/c,a(b/d,b/e)'), {
         'a': {
             'b': {
                 'c': {},
                 'd': {},
                 'e': {},
             },
         },
     })
Esempio n. 3
0
 def test_raises(self):
     fields = [
         '',
         '/',
         'a/',
         '/b',
         'a//b',
         ','
         'a,',
         ',b',
         '/,',
         ',/',
         'a/b,',
         ',a/b',
         '()',
         '(a)',
         '(,)',
         '(a,)',
         '(,b)',
         '(a,b)',
         '(a,b)c',
         'a(())',
         'a((b))',
         'a((b,))',
         'a((,c))',
         'a((b,c))',
         '(',
         'a(',
         'a(b',
         ')',
         'a)',
         'a(b))',
         'a(b),',
         'a(b)c',
         'a(/)',
         'a(b/)',
         'a(/b)',
     ]
     for f in fields:
         with self.assertRaises(partial.ParsingError):
             partial._parse(f)
Esempio n. 4
0
 def test_components(self):
     self.assertEqual(partial._parse('a/b'), {
         'a': {
             'b': {},
         },
     })
     self.assertEqual(partial._parse('a/b,c'), {
         'a': {
             'b': {},
         },
         'c': {},
     })
     self.assertEqual(partial._parse('a,b/c'), {
         'a': {},
         'b': {
             'c': {},
         },
     })
     self.assertEqual(partial._parse('a/b,c/d'), {
         'a': {
             'b': {},
         },
         'c': {
             'd': {},
         },
     })
     self.assertEqual(partial._parse('a/b/c,d/e/f'), {
         'a': {
             'b': {
                 'c': {},
             },
         },
         'd': {
             'e': {
                 'f': {},
             },
         },
     })
Esempio n. 5
0
 def test_subfields(self):
     self.assertEqual(partial._parse('a(b)'), {
         'a': {
             'b': {},
         },
     })
     self.assertEqual(partial._parse('a/b(c)'), {
         'a': {
             'b': {
                 'c': {},
             },
         },
     })
     self.assertEqual(partial._parse('a(b/c)'), {
         'a': {
             'b': {
                 'c': {},
             },
         },
     })
     self.assertEqual(partial._parse('a(b,c)'), {
         'a': {
             'b': {},
             'c': {},
         },
     })
     self.assertEqual(partial._parse('a(b, c)'), {
         'a': {
             'b': {},
             'c': {},
         },
     })
     self.assertEqual(partial._parse('a (b,c)'), {
         'a': {
             'b': {},
             'c': {},
         },
     })
     self.assertEqual(partial._parse('a/b(c,d)'), {
         'a': {
             'b': {
                 'c': {},
                 'd': {},
             },
         },
     })
     self.assertEqual(partial._parse('a(b/c,d)'), {
         'a': {
             'b': {
                 'c': {},
             },
             'd': {},
         },
     })
     self.assertEqual(partial._parse('a(b,c/d)'), {
         'a': {
             'b': {},
             'c': {
                 'd': {},
             },
         },
     })
     self.assertEqual(partial._parse('a(b,c(d))'), {
         'a': {
             'b': {},
             'c': {
                 'd': {},
             }
         },
     })
     self.assertEqual(partial._parse('a(b),c(d)'), {
         'a': {
             'b': {},
         },
         'c': {
             'd': {},
         },
     })
     self.assertEqual(partial._parse('a(b(c,d),e),f'), {
         'a': {
             'b': {
                 'c': {},
                 'd': {},
             },
             'e': {},
         },
         'f': {},
     })