From 5b1769e8abcbde9aad6f54c925c4cc6086a155b2 Mon Sep 17 00:00:00 2001 From: Clint Byrum <clint@fewbar.com> Date: Wed, 8 May 2013 09:53:49 -0700 Subject: [PATCH] Fix leaky tempfiles during test suite. Each test run was producing 5 abandoned temp files. Change-Id: I1c682b8e5a8782b1123b4a1bdb06dddca534e84b --- heat_cfntools/tests/test_cfn_helper.py | 47 ++++++++++---------------- 1 file changed, 18 insertions(+), 29 deletions(-) diff --git a/heat_cfntools/tests/test_cfn_helper.py b/heat_cfntools/tests/test_cfn_helper.py index 5cbe2a8..103dc30 100644 --- a/heat_cfntools/tests/test_cfn_helper.py +++ b/heat_cfntools/tests/test_cfn_helper.py @@ -15,6 +15,7 @@ # under the License. import boto.cloudformation as cfn +import fixtures import json import mox import os @@ -510,6 +511,11 @@ class TestCfnHelper(testtools.TestCase): class TestMetadataRetrieve(testtools.TestCase): + def setUp(self): + super(TestMetadataRetrieve, self).setUp() + self.tdir = self.useFixture(fixtures.TempDir()) + self.last_file = os.path.join(self.tdir.path, 'last_metadata') + def test_metadata_retrieve_files(self): md_data = {"AWS::CloudFormation::Init": {"config": {"files": { @@ -518,9 +524,6 @@ class TestMetadataRetrieve(testtools.TestCase): md = cfn_helper.Metadata('teststack', None) - with tempfile.NamedTemporaryFile() as last_file: - pass - with tempfile.NamedTemporaryFile(mode='w+') as default_file: default_file.write(md_str) default_file.flush() @@ -528,28 +531,25 @@ class TestMetadataRetrieve(testtools.TestCase): md.retrieve( default_path=default_file.name, - last_path=last_file.name) + last_path=self.last_file) - self.assertThat(last_file.name, ttm.FileContains(md_str)) + self.assertThat(self.last_file, ttm.FileContains(md_str)) self.assertThat(md_data, ttm.Equals(md._metadata)) md = cfn_helper.Metadata('teststack', None) md.retrieve( default_path=default_file.name, - last_path=last_file.name) + last_path=self.last_file) self.assertThat(md_data, ttm.Equals(md._metadata)) def test_metadata_retrieve_none(self): md = cfn_helper.Metadata('teststack', None) - with tempfile.NamedTemporaryFile() as last_file: - pass - with tempfile.NamedTemporaryFile() as default_file: - pass + default_file = os.path.join(self.tdir.path, 'default_file') md.retrieve( - default_path=default_file.name, - last_path=last_file.name) + default_path=default_file, + last_path=self.last_file) self.assertIsNone(md._metadata) def test_metadata_retrieve_passed(self): @@ -558,15 +558,12 @@ class TestMetadataRetrieve(testtools.TestCase): "/tmp/foo": {"content": "bar"}}}}} md_str = json.dumps(md_data) - with tempfile.NamedTemporaryFile() as last_file: - pass - md = cfn_helper.Metadata('teststack', None) - md.retrieve(meta_str=md_str, last_path=last_file.name) + md.retrieve(meta_str=md_str, last_path=self.last_file) self.assertThat(md_data, ttm.Equals(md._metadata)) md = cfn_helper.Metadata('teststack', None) - md.retrieve(meta_str=md_data, last_path=last_file.name) + md.retrieve(meta_str=md_data, last_path=self.last_file) self.assertThat(md_data, ttm.Equals(md._metadata)) self.assertEqual(md_str, str(md)) @@ -600,10 +597,8 @@ class TestMetadataRetrieve(testtools.TestCase): md_data = {"AWS::CloudFormation::Init": {"config": {"files": { "/tmp/foo": {"content": "bar"}}}}} - with tempfile.NamedTemporaryFile() as last_file: - pass md = cfn_helper.Metadata('teststack', None) - md.retrieve(meta_str=md_data, last_path=last_file.name) + md.retrieve(meta_str=md_data, last_path=self.last_file) self.assertThat(md_data, ttm.Equals(md._metadata)) self.assertTrue(md._is_valid_metadata()) @@ -627,16 +622,13 @@ class TestMetadataRetrieve(testtools.TestCase): m.ReplayAll() - with tempfile.NamedTemporaryFile() as last_file: - pass - try: md = cfn_helper.Metadata( 'teststack', None, access_key='foo', secret_key='bar') - md.retrieve(last_path=last_file.name) + md.retrieve(last_path=self.last_file) self.assertThat(md_data, ttm.Equals(md._metadata)) with tempfile.NamedTemporaryFile(mode='w') as fcreds: @@ -644,7 +636,7 @@ class TestMetadataRetrieve(testtools.TestCase): fcreds.flush() md = cfn_helper.Metadata( 'teststack', None, credentials_file=fcreds.name) - md.retrieve(last_path=last_file.name) + md.retrieve(last_path=self.last_file) self.assertThat(md_data, ttm.Equals(md._metadata)) m.VerifyAll() @@ -653,15 +645,12 @@ class TestMetadataRetrieve(testtools.TestCase): def test_cfn_init(self): - with tempfile.NamedTemporaryFile() as last_file: - pass - with tempfile.NamedTemporaryFile(mode='w+') as foo_file: md_data = {"AWS::CloudFormation::Init": {"config": {"files": { foo_file.name: {"content": "bar"}}}}} md = cfn_helper.Metadata('teststack', None) - md.retrieve(meta_str=md_data, last_path=last_file.name) + md.retrieve(meta_str=md_data, last_path=self.last_file) md.cfn_init() self.assertThat(foo_file.name, ttm.FileContains('bar'))