| #!/usr/bin/env python3 |
| # -*- coding: utf-8 -*- |
| """ |
| SPDX-License-Identifier: GPL-3.0-or-later |
| Copyright (c) 2023 Savoir-faire Linux |
| |
| Run some actual tests on the pywinmake package, using the test/winmake.py script. |
| """ |
| |
| import subprocess |
| import unittest |
| |
| class PyWinMakeTests(unittest.TestCase): |
| """ |
| Use Nettle here as a test package because it has 1 dependency (GMP) and is |
| small enough to build quickly. |
| """ |
| package = 'nettle' |
| package_dep = 'gmp' |
| |
| args = ['-l4', '-v2'] |
| base_command = ['python', 'test/winmake.py'] |
| base_command.extend(args) |
| |
| def test_0_clean(self): |
| result = subprocess.run(self.base_command + ['clean'], |
| stdout=subprocess.PIPE) |
| self.assertEqual(result.returncode, 0) |
| |
| def test_1_resolve(self): |
| result = subprocess.run(self.base_command + ['resolve', self.package], |
| stdout=subprocess.PIPE) |
| self.assertEqual(result.returncode, 0) |
| |
| def test_2_remove_dep(self): |
| result = subprocess.run(self.base_command + ['clean', self.package_dep], |
| stdout=subprocess.PIPE) |
| self.assertEqual(result.returncode, 0) |
| |
| def test_3_resolve_with_missing_dep(self): |
| result = subprocess.run(self.base_command + ['resolve', self.package], |
| stdout=subprocess.PIPE) |
| self.assertEqual(result.returncode, 0) |
| self.assertIn('libgmp.vcxproj', result.stdout.decode('utf-8')) |
| |
| def test_4_resolve_package_with_different_name(self): |
| """msgpack-c has a different package name than the directory name""" |
| result = subprocess.run(self.base_command + ['resolve', 'msgpack'], |
| stdout=subprocess.PIPE) |
| self.assertEqual(result.returncode, 0) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |