diff options
author | Dan Willemsen <dwillemsen@google.com> | 2022-03-26 03:05:17 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-03-26 03:05:17 +0000 |
commit | 30dd327dfb40365cd785efa71e84cae13bc3d806 (patch) | |
tree | 690b5fb2994f47324dd4298e676335d4555ee267 /setuptools/_distutils/tests/test_extension.py | |
parent | 38928912f8393727122418ebb7b2b8b19f710b36 (diff) | |
parent | adad21eb0615bb68c47628dcd4d638137c3d1a01 (diff) | |
download | setuptools-30dd327dfb40365cd785efa71e84cae13bc3d806.tar.gz |
Upgrade to setuptools 61.1.0 am: adad21eb06
Original change: https://android-review.googlesource.com/c/platform/external/python/setuptools/+/2045746
Change-Id: I1d25bf13215d94d6effc6e8fa0b83163749ffaac
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'setuptools/_distutils/tests/test_extension.py')
-rw-r--r-- | setuptools/_distutils/tests/test_extension.py | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/setuptools/_distutils/tests/test_extension.py b/setuptools/_distutils/tests/test_extension.py new file mode 100644 index 0000000..78a55da --- /dev/null +++ b/setuptools/_distutils/tests/test_extension.py @@ -0,0 +1,71 @@ +"""Tests for distutils.extension.""" +import unittest +import os +import warnings + +from test.support import run_unittest +from distutils.extension import read_setup_file, Extension + +from .py38compat import check_warnings + +class ExtensionTestCase(unittest.TestCase): + + def test_read_setup_file(self): + # trying to read a Setup file + # (sample extracted from the PyGame project) + setup = os.path.join(os.path.dirname(__file__), 'Setup.sample') + + exts = read_setup_file(setup) + names = [ext.name for ext in exts] + names.sort() + + # here are the extensions read_setup_file should have created + # out of the file + wanted = ['_arraysurfarray', '_camera', '_numericsndarray', + '_numericsurfarray', 'base', 'bufferproxy', 'cdrom', + 'color', 'constants', 'display', 'draw', 'event', + 'fastevent', 'font', 'gfxdraw', 'image', 'imageext', + 'joystick', 'key', 'mask', 'mixer', 'mixer_music', + 'mouse', 'movie', 'overlay', 'pixelarray', 'pypm', + 'rect', 'rwobject', 'scrap', 'surface', 'surflock', + 'time', 'transform'] + + self.assertEqual(names, wanted) + + def test_extension_init(self): + # the first argument, which is the name, must be a string + self.assertRaises(AssertionError, Extension, 1, []) + ext = Extension('name', []) + self.assertEqual(ext.name, 'name') + + # the second argument, which is the list of files, must + # be a list of strings + self.assertRaises(AssertionError, Extension, 'name', 'file') + self.assertRaises(AssertionError, Extension, 'name', ['file', 1]) + ext = Extension('name', ['file1', 'file2']) + self.assertEqual(ext.sources, ['file1', 'file2']) + + # others arguments have defaults + for attr in ('include_dirs', 'define_macros', 'undef_macros', + 'library_dirs', 'libraries', 'runtime_library_dirs', + 'extra_objects', 'extra_compile_args', 'extra_link_args', + 'export_symbols', 'swig_opts', 'depends'): + self.assertEqual(getattr(ext, attr), []) + + self.assertEqual(ext.language, None) + self.assertEqual(ext.optional, None) + + # if there are unknown keyword options, warn about them + with check_warnings() as w: + warnings.simplefilter('always') + ext = Extension('name', ['file1', 'file2'], chic=True) + + self.assertEqual(len(w.warnings), 1) + self.assertEqual(str(w.warnings[0].message), + "Unknown Extension options: 'chic'") + +def test_suite(): + return unittest.TestLoader().loadTestsFromTestCase(ExtensionTestCase) + +if __name__ == "__main__": + run_unittest(test_suite()) |