]> git.decadent.org.uk Git - dak.git/blob - tests/test_regexes.py
Simple check for lintian regex
[dak.git] / tests / test_regexes.py
1 import unittest
2
3 import os, sys
4 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
5
6 from daklib import regexes
7
8 class re_single_line_field(unittest.TestCase):
9     MATCH = regexes.re_single_line_field.match
10
11     def testSimple(self):
12         self.assertEqual(self.MATCH('Foo: bar').groups(), ('Foo', 'bar'))
13
14     def testLeadingWhitespace(self):
15         self.assertEqual(self.MATCH(' Foo: bar'), None)
16
17     def testTrailingWhitespace(self):
18         self.assertEqual(self.MATCH('Foo: bar \n').groups(), ('Foo', 'bar '))
19
20     def testMiddleWhitespace(self):
21         self.assertEqual(self.MATCH('Foo:  bar').groups(), ('Foo', 'bar'))
22         self.assertEqual(self.MATCH('Foo :  bar').groups(), ('Foo', 'bar'))
23         self.assertEqual(self.MATCH('Foo \n:\n  bar').groups(), ('Foo', 'bar'))
24         self.assertEqual(self.MATCH('Foo:bar').groups(), ('Foo', 'bar'))
25
26     def testColons(self):
27         self.assertEqual(self.MATCH('Foo: :').groups(), ('Foo', ':'))
28         self.assertEqual(self.MATCH('Foo: ::').groups(), ('Foo', '::'))
29         self.assertEqual(self.MATCH(': ::').groups(), ('', '::'))
30         self.assertEqual(self.MATCH('Foo::bar').groups(), ('Foo', ':bar'))
31         self.assertEqual(self.MATCH('Foo: :bar').groups(), ('Foo', ':bar'))
32
33 class re_parse_lintian(unittest.TestCase):
34     MATCH = regexes.re_parse_lintian.match
35
36     def testSimple(self):
37         self.assertEqual(
38             self.MATCH('W: tzdata: binary-without-manpage usr/sbin/tzconfig').groups(),
39             ('W', 'tzdata', 'binary-without-manpage', 'usr/sbin/tzconfig')
40         )