New submission from Brian Curtin <cur...@acm.org>: A recent sysconfig test which should have been skipped on Windows (now fixed) exposed a bug in the assertIn/assertNotIn methods. If the "container" you are testing doesn't support membership testing or iteration, such as None value when a previous call fails, the test is then an error rather than a fail.
Before: ====================================================================== ERROR: test_ldshared_value (test.test_sysconfig.TestSysConfig) ---------------------------------------------------------------------- Traceback (most recent call last): File "c:\python-dev\py3k\lib\test\test_sysconfig.py", line 285, in test_ldshar ed_value self.assertIn(ldflags, ldshared) File "c:\python-dev\py3k\lib\unittest\case.py", line 797, in assertIn if member not in container: TypeError: argument of type 'NoneType' is not iterable I believe this should be a fail with AssertionError, rather than an error with TypeError. ====================================================================== FAIL: test_ldshared_value (test.test_sysconfig.TestSysConfig) ---------------------------------------------------------------------- Traceback (most recent call last): File "c:\python-dev\py3k\lib\test\test_sysconfig.py", line 285, in test_ldshar ed_value self.assertIn(ldflags, ldshared) AssertionError: None does not support the `in` operator The patch adds a check that __contains__, __iter__, or __getitem__ exist on the object and fails the test if none of those are found. It also includes a few test updates. ---------- assignee: michael.foord components: Library (Lib) files: membership_check.diff keywords: needs review, patch, patch messages: 111193 nosy: brian.curtin, michael.foord priority: normal severity: normal stage: patch review status: open title: assertIn should check for membership support before testing type: behavior versions: Python 2.7, Python 3.2 Added file: http://bugs.python.org/file18126/membership_check.diff _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue9330> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com