def test_conditionalExtensions(self): """ Will return the arguments with a custom build_ext which knows how to check whether they should be built. """ good_ext = ConditionalExtension("whatever", ["whatever.c"], condition=lambda b: True) bad_ext = ConditionalExtension("whatever", ["whatever.c"], condition=lambda b: False) args = getSetupArgs(extensions=[good_ext, bad_ext], readme=None) # ext_modules should be set even though it's not used. See comment # in getSetupArgs self.assertEqual(args["ext_modules"], [good_ext, bad_ext]) cmdclass = args["cmdclass"] build_ext = cmdclass["build_ext"] builder = build_ext(Distribution()) builder.prepare_extensions() self.assertEqual(builder.extensions, [good_ext])
def test_win32Definition(self): """ When building on Windows NT, the WIN32 macro will be defined as 1 on the extensions. """ ext = ConditionalExtension("whatever", ["whatever.c"], define_macros=[("whatever", 2)]) args = getSetupArgs(extensions=[ext], readme=None) builder = args["cmdclass"]["build_ext"](Distribution()) self.patch(os, "name", "nt") builder.prepare_extensions() self.assertEqual(ext.define_macros, [("whatever", 2), ("WIN32", 1)])