blob: 90d403cfe7379facd63f9417f1d6027825e341d9 [file] [log] [blame]
#!/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()