diff --git a/cloudpickle/cloudpickle.py b/cloudpickle/cloudpickle.py index ed137aefe..cb2883f80 100644 --- a/cloudpickle/cloudpickle.py +++ b/cloudpickle/cloudpickle.py @@ -843,7 +843,9 @@ def _find_module(mod_name): if path is not None: path = [path] file, path, description = imp.find_module(part, path) - return file, path, description + if file is not None: + file.close() + return path, description """Constructors for 3rd party libraries Note: These can never be renamed due to client compatibility issues""" diff --git a/tests/cloudpickle_file_test.py b/tests/cloudpickle_file_test.py index f98cf07b1..4799359fc 100644 --- a/tests/cloudpickle_file_test.py +++ b/tests/cloudpickle_file_test.py @@ -32,7 +32,7 @@ def test_empty_file(self): # Empty file open(self.tmpfilepath, 'w').close() with open(self.tmpfilepath, 'r') as f: - self.assertEquals('', pickle.loads(cloudpickle.dumps(f)).read()) + self.assertEqual('', pickle.loads(cloudpickle.dumps(f)).read()) os.remove(self.tmpfilepath) def test_closed_file(self): @@ -51,7 +51,7 @@ def test_r_mode(self): # Open for reading with open(self.tmpfilepath, 'r') as f: new_f = pickle.loads(cloudpickle.dumps(f)) - self.assertEquals(self.teststring, new_f.read()) + self.assertEqual(self.teststring, new_f.read()) os.remove(self.tmpfilepath) def test_w_mode(self): @@ -68,7 +68,7 @@ def test_plus_mode(self): f.write(self.teststring) f.seek(0) new_f = pickle.loads(cloudpickle.dumps(f)) - self.assertEquals(self.teststring, new_f.read()) + self.assertEqual(self.teststring, new_f.read()) os.remove(self.tmpfilepath) def test_seek(self): @@ -78,11 +78,11 @@ def test_seek(self): f.seek(4) unpickled = pickle.loads(cloudpickle.dumps(f)) # unpickled StringIO is at position 4 - self.assertEquals(4, unpickled.tell()) - self.assertEquals(self.teststring[4:], unpickled.read()) + self.assertEqual(4, unpickled.tell()) + self.assertEqual(self.teststring[4:], unpickled.read()) # but unpickled StringIO also contained the start unpickled.seek(0) - self.assertEquals(self.teststring, unpickled.read()) + self.assertEqual(self.teststring, unpickled.read()) os.remove(self.tmpfilepath) @pytest.mark.skipif(sys.version_info >= (3,), @@ -94,12 +94,12 @@ def test_temp_file(self): f = fp.file # FIXME this doesn't work yet: cloudpickle.dumps(fp) newfile = pickle.loads(cloudpickle.dumps(f)) - self.assertEquals(self.teststring, newfile.read()) + self.assertEqual(self.teststring, newfile.read()) def test_pickling_special_file_handles(self): # Warning: if you want to run your tests with nose, add -s option for out in sys.stdout, sys.stderr: # Regression test for SPARK-3415 - self.assertEquals(out, pickle.loads(cloudpickle.dumps(out))) + self.assertEqual(out, pickle.loads(cloudpickle.dumps(out))) self.assertRaises(pickle.PicklingError, lambda: cloudpickle.dumps(sys.stdin)) diff --git a/tests/cloudpickle_test.py b/tests/cloudpickle_test.py index c540d5d4c..29deb8cdf 100644 --- a/tests/cloudpickle_test.py +++ b/tests/cloudpickle_test.py @@ -93,7 +93,7 @@ def __getattr__(self, item): def test_pickling_file_handles(self): out1 = sys.stderr out2 = pickle.loads(cloudpickle.dumps(out1)) - self.assertEquals(out1, out2) + self.assertEqual(out1, out2) def test_func_globals(self): class Unpicklable(object):