New submission from Keith Chewning: If I %paste this code into an ipython shell the test passes. If this is saved to a file DictTest.py and run with ./DictTest.py -m the test fails. with the error
name 'keys' is not defined If the variable keys is made global, as is suggested in the comment, the test passes with both methods of execution. Is there a scoping issue with executing this as a script? I am using version: '3.4.1 |Anaconda 2.1.0 (64-bit)| (default, Sep 10 2014, 17:10:18) \n[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]' import unittest class DictTest(unittest.TestCase): def test_dict_comprehension(self): code = """ d = {'a':1, 'b':2, 'c':3, 'd':4} # global keys # UNCOMMENT FOR TEST TO PASS keys = ['a', 'd'] items = d.items() nd = {k: v for k, v in items if k in keys} print('>>> ' + str(nd)) """ try: exec(code) except Exception as e: self.assertTrue(False, "Exec ERROR>>> %s" % e) def main(): dt = DictTest() dt.test_dict_comprehension() if __name__ =='__main__':main() ---------- messages: 232907 nosy: Keith.Chewning priority: normal severity: normal status: open title: Exec variable not found error type: behavior versions: Python 3.4 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue23087> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com