]> git.decadent.org.uk Git - dak.git/blob - tests/test_regexes.py
Merge remote-tracking branch 'jcristau/formatone-no-tar-sig'
[dak.git] / tests / test_regexes.py
1 #!/usr/bin/env python
2
3 from base_test import DakTestCase
4
5 from daklib import regexes
6
7 class re_single_line_field(DakTestCase):
8     MATCH = regexes.re_single_line_field.match
9
10     def testSimple(self):
11         self.assertEqual(self.MATCH('Foo: bar').groups(), ('Foo', 'bar'))
12
13     def testLeadingWhitespace(self):
14         self.assertEqual(self.MATCH(' Foo: bar'), None)
15
16     def testTrailingWhitespace(self):
17         self.assertEqual(self.MATCH('Foo: bar \n').groups(), ('Foo', 'bar '))
18
19     def testMiddleWhitespace(self):
20         self.assertEqual(self.MATCH('Foo:  bar').groups(), ('Foo', 'bar'))
21         self.assertEqual(self.MATCH('Foo :  bar').groups(), ('Foo', 'bar'))
22         self.assertEqual(self.MATCH('Foo \n:\n  bar').groups(), ('Foo', 'bar'))
23         self.assertEqual(self.MATCH('Foo:bar').groups(), ('Foo', 'bar'))
24
25     def testColons(self):
26         self.assertEqual(self.MATCH('Foo: :').groups(), ('Foo', ':'))
27         self.assertEqual(self.MATCH('Foo: ::').groups(), ('Foo', '::'))
28         self.assertEqual(self.MATCH(': ::').groups(), ('', '::'))
29         self.assertEqual(self.MATCH('Foo::bar').groups(), ('Foo', ':bar'))
30         self.assertEqual(self.MATCH('Foo: :bar').groups(), ('Foo', ':bar'))
31
32 class re_parse_lintian(DakTestCase):
33     MATCH = regexes.re_parse_lintian.match
34
35     def testBinary(self):
36         self.assertEqual(
37             self.MATCH('W: pkgname: some-tag path/to/file').groupdict(),
38             {
39                 'level': 'W',
40                 'package': 'pkgname',
41                 'tag': 'some-tag',
42                 'description': 'path/to/file',
43             }
44         )
45
46     def testBinaryNoDescription(self):
47         self.assertEqual(
48             self.MATCH('W: pkgname: some-tag').groupdict(),
49             {
50                 'level': 'W',
51                 'package': 'pkgname',
52                 'tag': 'some-tag',
53                 'description': '',
54             }
55         )
56
57     def testSource(self):
58         self.assertEqual(
59             self.MATCH('W: pkgname source: some-tag').groupdict(),
60             {
61                 'level': 'W',
62                 'package': 'pkgname source',
63                 'tag': 'some-tag',
64                 'description': '',
65             }
66         )
67
68     def testSourceNoDescription(self):
69         self.assertEqual(
70             self.MATCH('W: pkgname source: some-tag path/to/file').groupdict(),
71             {
72                 'level': 'W',
73                 'package': 'pkgname source',
74                 'tag': 'some-tag',
75                 'description': 'path/to/file',
76             }
77         )
78
79 if __name__ == '__main__':
80     unittest.main()