Skip to content

Commit 9b4db58

Browse files
committed
Changing temp file strategy so the can be reopened on Windows
1 parent 3cc04be commit 9b4db58

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

test/platform_database.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,11 @@ class EmptyPlatformDatabaseTests(unittest.TestCase):
3838
"""
3939

4040
def setUp(self):
41-
self.base_db = tempfile.NamedTemporaryFile(prefix='base')
41+
self.base_db_path = os.path.join(tempfile.mkdtemp(), 'base')
42+
self.base_db = open(self.base_db_path, 'w+')
4243
self.base_db.write(b'{}')
4344
self.base_db.seek(0)
44-
self.pdb = PlatformDatabase([self.base_db.name])
45+
self.pdb = PlatformDatabase([self.base_db_path])
4546

4647
def tearDown(self):
4748
pass
@@ -52,7 +53,7 @@ def test_broken_database_io(self):
5253
"""
5354
with patch("mbed_lstools.platform_database.open") as _open:
5455
_open.side_effect = IOError("Bogus")
55-
self.pdb = PlatformDatabase([self.base_db.name])
56+
self.pdb = PlatformDatabase([self.base_db_path])
5657
self.pdb.add("1234", "MYTARGET")
5758
self.assertEqual(self.pdb.get("1234"), "MYTARGET")
5859

@@ -62,7 +63,7 @@ def test_broken_database_bad_json(self):
6263
"""
6364
self.base_db.write(b'{{}')
6465
self.base_db.seek(0)
65-
self.pdb = PlatformDatabase([self.base_db.name])
66+
self.pdb = PlatformDatabase([self.base_db_path])
6667
self.pdb.add("1234", "MYTARGET")
6768
self.assertEqual(self.pdb.get("1234"), "MYTARGET")
6869

@@ -119,15 +120,18 @@ class OverriddenPlatformDatabaseTests(unittest.TestCase):
119120
"""
120121

121122
def setUp(self):
122-
self.base_db = tempfile.NamedTemporaryFile(prefix='base')
123+
self.temp_dir = tempfile.mkdtemp()
124+
self.base_db_path = os.path.join(self.temp_dir, 'base')
125+
self.base_db = open(self.base_db_path, 'w+')
123126
self.base_db.write(json.dumps(dict([('0123', 'Base_Platform')])).
124127
encode('utf-8'))
125128
self.base_db.seek(0)
126-
self.overriding_db = tempfile.NamedTemporaryFile(prefix='overriding')
129+
self.overriding_db_path = os.path.join(self.temp_dir, 'overriding')
130+
self.overriding_db = open(self.overriding_db_path, 'w+')
127131
self.overriding_db.write(b'{}')
128132
self.overriding_db.seek(0)
129-
self.pdb = PlatformDatabase([self.overriding_db.name, self.base_db.name],
130-
primary_database=self.overriding_db.name)
133+
self.pdb = PlatformDatabase([self.overriding_db_path, self.base_db_path],
134+
primary_database=self.overriding_db_path)
131135
self.base_db.seek(0)
132136
self.overriding_db.seek(0)
133137

@@ -170,8 +174,8 @@ def test_load_override(self):
170174
self.overriding_db.write(json.dumps(dict([('0123', 'Overriding_Platform')])).
171175
encode('utf-8'))
172176
self.overriding_db.seek(0)
173-
self.pdb = PlatformDatabase([self.overriding_db.name, self.base_db.name],
174-
primary_database=self.overriding_db.name)
177+
self.pdb = PlatformDatabase([self.overriding_db_path, self.base_db_path],
178+
primary_database=self.overriding_db_path)
175179
self.assertIn(('0123', 'Overriding_Platform'), list(self.pdb.items()))
176180
self.assertEqual(set(self.pdb.all_ids()), set(['0123']))
177181
self.assertEqual(self.pdb.get('0123'), 'Overriding_Platform')
@@ -231,10 +235,12 @@ def setUp(self):
231235
self.mocked_lock = patch('mbed_lstools.platform_database.InterProcessLock', spec=True).start()
232236
self.acquire = self.mocked_lock.return_value.acquire
233237
self.release = self.mocked_lock.return_value.release
234-
self.base_db = tempfile.NamedTemporaryFile(prefix='base')
238+
239+
self.base_db_path = os.path.join(tempfile.mkdtemp(), 'base')
240+
self.base_db = open(self.base_db_path, 'w+')
235241
self.base_db.write(b'{}')
236242
self.base_db.seek(0)
237-
self.pdb = PlatformDatabase([self.base_db.name])
243+
self.pdb = PlatformDatabase([self.base_db_path])
238244
self.addCleanup(patch.stopall)
239245

240246
def tearDown(self):

0 commit comments

Comments
 (0)