From a1839255b02d283b129ca68edb4a8a90c2335155 Mon Sep 17 00:00:00 2001 From: Andrew Ferrier <andrewferrier@example.com> Date: Mon, 12 Jan 2015 21:00:46 +0000 Subject: [PATCH] Use more elegant way of handling temporary files and directories. --- tests/test_Direct_Errors.py | 7 +++---- tests/test_Direct_Metadata.py | 24 ++++++++++++------------ tests/test_Subprocess_Basic.py | 23 ++++++++++------------- 3 files changed, 25 insertions(+), 29 deletions(-) diff --git a/tests/test_Direct_Errors.py b/tests/test_Direct_Errors.py index 4e55516..f700111 100644 --- a/tests/test_Direct_Errors.py +++ b/tests/test_Direct_Errors.py @@ -13,10 +13,9 @@ class Direct_Errors(BaseTestClasses.Email2PDFTestCase): def test_plaincontent_fileexist(self): self.attachText("Hello!") - unused_f_handle, f_path = tempfile.mkstemp() - with self.assertRaisesRegex(Exception, "file.*exist"): - self.invokeDirectly(outputFile=f_path) - os.unlink(f_path) + with tempfile.NamedTemporaryFile() as tmpfile: + with self.assertRaisesRegex(Exception, "file.*exist"): + self.invokeDirectly(outputFile=tmpfile.name) def test_plaincontent_dirnotexist(self): self.attachText("Hello!") diff --git a/tests/test_Direct_Metadata.py b/tests/test_Direct_Metadata.py index 4beea41..dceffec 100644 --- a/tests/test_Direct_Metadata.py +++ b/tests/test_Direct_Metadata.py @@ -38,18 +38,18 @@ class Direct_Metadata(Email2PDFTestCase): def test_plaincontent_metadata_differentmount(self): self.addHeaders() self.setPlainContent("Hello!") - mountPoint2 = tempfile.mkdtemp(dir='/var/tmp') - if(self.find_mount_point(mountPoint2) != self.find_mount_point(tempfile.tempdir)): - path = os.path.join(mountPoint2, "plaincontent_metadata_differentmount.pdf") - error = self.invokeDirectly(outputFile=path) - self.assertEqual('', error) - self.assertTrue(os.path.exists(path)) - self.assertEqual(Email2PDFTestCase.DEFAULT_FROM, self.getMetadataField(path, "Author")) - self.assertEqual(Email2PDFTestCase.DEFAULT_TO, self.getMetadataField(path, "X-email2pdf-To")) - self.assertEqual(Email2PDFTestCase.DEFAULT_SUBJECT, self.getMetadataField(path, "Title")) - self.assertEqual("email2pdf", self.getMetadataField(path, "Producer")) - else: - self.skipTest(mountPoint2 + " and " + tempfile.tempdir + " are on the same mountpoint, test not relevant.") + with tempfile.TemporaryDirectory(dir='/var/tmp') as tempdir: + if(self.find_mount_point(tempdir) != self.find_mount_point(tempfile.tempdir)): + path = os.path.join(tempdir, "plaincontent_metadata_differentmount.pdf") + error = self.invokeDirectly(outputFile=path) + self.assertEqual('', error) + self.assertTrue(os.path.exists(path)) + self.assertEqual(Email2PDFTestCase.DEFAULT_FROM, self.getMetadataField(path, "Author")) + self.assertEqual(Email2PDFTestCase.DEFAULT_TO, self.getMetadataField(path, "X-email2pdf-To")) + self.assertEqual(Email2PDFTestCase.DEFAULT_SUBJECT, self.getMetadataField(path, "Title")) + self.assertEqual("email2pdf", self.getMetadataField(path, "Producer")) + else: + self.skipTest(tempdir + " and " + tempfile.tempdir + " are on the same mountpoint, test not relevant.") def test_noheaders_metadata(self): self.setPlainContent("Hello!") diff --git a/tests/test_Subprocess_Basic.py b/tests/test_Subprocess_Basic.py index 5a1240a..5c57a47 100644 --- a/tests/test_Subprocess_Basic.py +++ b/tests/test_Subprocess_Basic.py @@ -101,24 +101,21 @@ class TestBasic(Email2PDFTestCase): def test_plaincontent_outputfileoverrides(self): filename = os.path.join(self.examineDir, "outputFileOverrides.pdf") - pathname = tempfile.mkdtemp(dir='/tmp') - self.setPlainContent("Hello!") - (rc, output, error) = self.invokeAsSubprocess(outputDirectory=pathname, outputFile=filename) - self.assertEqual(0, rc) - self.assertEqual('', error) - self.assertFalse(self.existsByTime(pathname)) - self.assertTrue(os.path.exists(filename)) - self.assertRegex(self.getPDFText(filename), "Hello!") + with tempfile.TemporaryDirectory() as pathname: + self.setPlainContent("Hello!") + (rc, output, error) = self.invokeAsSubprocess(outputDirectory=pathname, outputFile=filename) + self.assertEqual(0, rc) + self.assertEqual('', error) + self.assertFalse(self.existsByTime(pathname)) + self.assertTrue(os.path.exists(filename)) + self.assertRegex(self.getPDFText(filename), "Hello!") def test_plaincontent_fileexist(self): self.setPlainContent("Hello!") - unused_f_handle, f_path = tempfile.mkstemp() - try: - (rc, output, error) = self.invokeAsSubprocess(outputFile=f_path) + with tempfile.NamedTemporaryFile() as tmpfile: + (rc, output, error) = self.invokeAsSubprocess(outputFile=tmpfile.name) self.assertEqual(2, rc) self.assertRegex(error, "file.*exist") - finally: - os.unlink(f_path) def test_verbose(self): self.setPlainContent("Hello!")