ยปCore Development>Code coverage>Lib/packaging/tests/test_cygwinccompiler.py

Python code coverage for Lib/packaging/tests/test_cygwinccompiler.py

#countcontent
1n/a"""Tests for packaging.cygwinccompiler."""
2n/aimport os
3n/aimport sys
4n/aimport sysconfig
5n/afrom packaging.compiler.cygwinccompiler import (
6n/a check_config_h, get_msvcr,
7n/a CONFIG_H_OK, CONFIG_H_NOTOK, CONFIG_H_UNCERTAIN)
8n/a
9n/afrom packaging.tests import unittest, support
10n/a
11n/a
12n/aclass CygwinCCompilerTestCase(support.TempdirManager,
13n/a unittest.TestCase):
14n/a
15n/a def setUp(self):
16n/a super(CygwinCCompilerTestCase, self).setUp()
17n/a self.version = sys.version
18n/a self.python_h = os.path.join(self.mkdtemp(), 'python.h')
19n/a self.old_get_config_h_filename = sysconfig.get_config_h_filename
20n/a sysconfig.get_config_h_filename = self._get_config_h_filename
21n/a
22n/a def tearDown(self):
23n/a sys.version = self.version
24n/a sysconfig.get_config_h_filename = self.old_get_config_h_filename
25n/a super(CygwinCCompilerTestCase, self).tearDown()
26n/a
27n/a def _get_config_h_filename(self):
28n/a return self.python_h
29n/a
30n/a def test_check_config_h(self):
31n/a # check_config_h looks for "GCC" in sys.version first
32n/a # returns CONFIG_H_OK if found
33n/a sys.version = ('2.6.1 (r261:67515, Dec 6 2008, 16:42:21) \n[GCC '
34n/a '4.0.1 (Apple Computer, Inc. build 5370)]')
35n/a
36n/a self.assertEqual(check_config_h()[0], CONFIG_H_OK)
37n/a
38n/a # then it tries to see if it can find "__GNUC__" in pyconfig.h
39n/a sys.version = 'something without the *CC word'
40n/a
41n/a # if the file doesn't exist it returns CONFIG_H_UNCERTAIN
42n/a self.assertEqual(check_config_h()[0], CONFIG_H_UNCERTAIN)
43n/a
44n/a # if it exists but does not contain __GNUC__, it returns CONFIG_H_NOTOK
45n/a self.write_file(self.python_h, 'xxx')
46n/a self.assertEqual(check_config_h()[0], CONFIG_H_NOTOK)
47n/a
48n/a # and CONFIG_H_OK if __GNUC__ is found
49n/a self.write_file(self.python_h, 'xxx __GNUC__ xxx')
50n/a self.assertEqual(check_config_h()[0], CONFIG_H_OK)
51n/a
52n/a def test_get_msvcr(self):
53n/a # none
54n/a sys.version = ('2.6.1 (r261:67515, Dec 6 2008, 16:42:21) '
55n/a '\n[GCC 4.0.1 (Apple Computer, Inc. build 5370)]')
56n/a self.assertEqual(get_msvcr(), None)
57n/a
58n/a # MSVC 7.0
59n/a sys.version = ('2.5.1 (r251:54863, Apr 18 2007, 08:51:08) '
60n/a '[MSC v.1300 32 bits (Intel)]')
61n/a self.assertEqual(get_msvcr(), ['msvcr70'])
62n/a
63n/a # MSVC 7.1
64n/a sys.version = ('2.5.1 (r251:54863, Apr 18 2007, 08:51:08) '
65n/a '[MSC v.1310 32 bits (Intel)]')
66n/a self.assertEqual(get_msvcr(), ['msvcr71'])
67n/a
68n/a # VS2005 / MSVC 8.0
69n/a sys.version = ('2.5.1 (r251:54863, Apr 18 2007, 08:51:08) '
70n/a '[MSC v.1400 32 bits (Intel)]')
71n/a self.assertEqual(get_msvcr(), ['msvcr80'])
72n/a
73n/a # VS2008 / MSVC 9.0
74n/a sys.version = ('2.5.1 (r251:54863, Apr 18 2007, 08:51:08) '
75n/a '[MSC v.1500 32 bits (Intel)]')
76n/a self.assertEqual(get_msvcr(), ['msvcr90'])
77n/a
78n/a # unknown
79n/a sys.version = ('2.5.1 (r251:54863, Apr 18 2007, 08:51:08) '
80n/a '[MSC v.1999 32 bits (Intel)]')
81n/a self.assertRaises(ValueError, get_msvcr)
82n/a
83n/a
84n/adef test_suite():
85n/a return unittest.makeSuite(CygwinCCompilerTestCase)
86n/a
87n/aif __name__ == '__main__':
88n/a unittest.main(defaultTest='test_suite')