Merge "fix build error on Ubuntu22.04" into devel
[tools/python-support.git] / tests / testparseversions.py
1 #!/usr/bin/python
2
3 import unittest
4 import subprocess
5
6 class TestParseVersions(unittest.TestCase):
7     @staticmethod
8     def get_output(args):
9         subp = subprocess.Popen(args, stdout=subprocess.PIPE)
10         output = subp.communicate()[0]
11         if subp.returncode != 0:
12             raise RuntimeError(subp.returncode)
13         return output
14
15     def pv_output(self, control):
16         return TestParseVersions.get_output(["parseversions", "--pycentral", control])
17
18     def test_regular(self):
19         self.assertEqual(self.pv_output('testparseversions.regular.control'),
20                          TestParseVersions.get_output(['pyversions', '--supported', '-v']))
21
22     def test_nonexported(self):
23         self.assertEqual(self.pv_output('testparseversions.nonexported.control'),
24                          TestParseVersions.get_output(['pyversions', '--supported', '-v']))
25
26     def test_leading_newline(self):
27         self.assertEqual(self.pv_output('testparseversions.leading-newline.control'),
28                          TestParseVersions.get_output(['pyversions', '--supported', '-v']))
29
30     def test_missing(self):
31         self.assertRaises(RuntimeError, self.pv_output, 'testparseversions.missing.control')
32
33     def test_second_paragraph(self):
34         self.assertRaises(RuntimeError, self.pv_output, 'testparseversions.second-paragraph.control')
35
36     def test_spaces(self):
37         self.assertRaises(RuntimeError, self.pv_output, 'testparseversions.spaces.control')
38
39 if __name__ == '__main__':
40     unittest.main()