]> git.decadent.org.uk Git - dak.git/blob - tests/test_regexes.py
Merge commit 'lamby/master' into merge
[dak.git] / tests / test_regexes.py
1 #!/usr/bin/env python
2
3 import unittest
4
5 import os, sys
6 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
7
8 from daklib import regexes
9
10 class re_single_line_field(unittest.TestCase):
11     MATCH = regexes.re_single_line_field.match
12
13     def testSimple(self):
14         self.assertEqual(self.MATCH('Foo: bar').groups(), ('Foo', 'bar'))
15
16     def testLeadingWhitespace(self):
17         self.assertEqual(self.MATCH(' Foo: bar'), None)
18
19     def testTrailingWhitespace(self):
20         self.assertEqual(self.MATCH('Foo: bar \n').groups(), ('Foo', 'bar '))
21
22     def testMiddleWhitespace(self):
23         self.assertEqual(self.MATCH('Foo:  bar').groups(), ('Foo', 'bar'))
24         self.assertEqual(self.MATCH('Foo :  bar').groups(), ('Foo', 'bar'))
25         self.assertEqual(self.MATCH('Foo \n:\n  bar').groups(), ('Foo', 'bar'))
26         self.assertEqual(self.MATCH('Foo:bar').groups(), ('Foo', 'bar'))
27
28     def testColons(self):
29         self.assertEqual(self.MATCH('Foo: :').groups(), ('Foo', ':'))
30         self.assertEqual(self.MATCH('Foo: ::').groups(), ('Foo', '::'))
31         self.assertEqual(self.MATCH(': ::').groups(), ('', '::'))
32         self.assertEqual(self.MATCH('Foo::bar').groups(), ('Foo', ':bar'))
33         self.assertEqual(self.MATCH('Foo: :bar').groups(), ('Foo', ':bar'))
34
35 class re_parse_lintian(unittest.TestCase):
36     MATCH = regexes.re_parse_lintian.match
37
38     def testBinary(self):
39         self.assertEqual(
40             self.MATCH('W: pkgname: some-tag path/to/file').groups(),
41             ('W', 'pkgname', 'some-tag', 'path/to/file')
42         )
43
44     def testBinaryNoDescription(self):
45         self.assertEqual(
46             self.MATCH('W: pkgname: some-tag').groups(),
47             ('W', 'pkgname', 'some-tag', '')
48         )
49
50     def testSource(self):
51         self.assertEqual(
52             self.MATCH('W: pkgname source: some-tag').groups(),
53             ('W', 'pkgname source', 'some-tag', '')
54         )
55
56     def testSourceNoDescription(self):
57         self.assertEqual(
58             self.MATCH('W: pkgname source: some-tag path/to/file').groups(),
59             ('W', 'pkgname source', 'some-tag', 'path/to/file')
60         )
61
62 if __name__ == '__main__':
63     unittest.main()