19
19
import logging
20
20
import tempfile
21
21
import json
22
+ import shutil
22
23
from mock import patch , MagicMock , DEFAULT
23
24
from io import StringIO
24
25
@@ -35,14 +36,16 @@ class EmptyPlatformDatabaseTests(unittest.TestCase):
35
36
"""
36
37
37
38
def setUp (self ):
38
- self .base_db_path = os .path .join (tempfile .mkdtemp (), 'base' )
39
+ self .tempd_dir = tempfile .mkdtemp ()
40
+ self .base_db_path = os .path .join (self .tempd_dir , 'base' )
39
41
self .base_db = open (self .base_db_path , 'w+b' )
40
42
self .base_db .write (b'{}' )
41
43
self .base_db .seek (0 )
42
44
self .pdb = PlatformDatabase ([self .base_db_path ])
43
45
44
46
def tearDown (self ):
45
47
self .base_db .close ()
48
+ shutil .rmtree (self .tempd_dir )
46
49
47
50
def test_broken_database_io (self ):
48
51
"""Verify that the platform database still works without a
@@ -123,6 +126,60 @@ def test_remove(self):
123
126
self .assertEqual (self .pdb .remove ('4753' , permanent = False ), 'Test_Platform' )
124
127
self .assertEqual (self .pdb .get ('4753' , None ), None )
125
128
129
+ def test_remove_all (self ):
130
+ """Test that multiple entries can be removed at once
131
+ """
132
+ self .assertEqual (self .pdb .get ('4753' , None ), None )
133
+ self .assertEqual (self .pdb .get ('4754' , None ), None )
134
+ self .pdb .add ('4753' , 'Test_Platform1' , permanent = False )
135
+ self .pdb .add ('4754' , 'Test_Platform2' , permanent = False )
136
+ self .assertEqual (self .pdb .get ('4753' , None ), 'Test_Platform1' )
137
+ self .assertEqual (self .pdb .get ('4754' , None ), 'Test_Platform2' )
138
+ self .pdb .remove ('*' , permanent = False )
139
+ self .assertEqual (self .pdb .get ('4753' , None ), None )
140
+ self .assertEqual (self .pdb .get ('4754' , None ), None )
141
+
142
+ def test_remove_permanent (self ):
143
+ """Test that once something is removed permanently it no longer shows up
144
+ when queried
145
+ """
146
+ self .assertEqual (self .pdb .get ('4753' , None ), None )
147
+ self .pdb .add ('4753' , 'Test_Platform' , permanent = True )
148
+ self .assertEqual (self .pdb .get ('4753' , None ), 'Test_Platform' )
149
+
150
+ # Recreate platform database to simulate rerunning mbedls
151
+ self .pdb = PlatformDatabase ([self .base_db_path ])
152
+ self .assertEqual (self .pdb .get ('4753' , None ), 'Test_Platform' )
153
+ self .assertEqual (self .pdb .remove ('4753' , permanent = True ), 'Test_Platform' )
154
+ self .assertEqual (self .pdb .get ('4753' , None ), None )
155
+
156
+ # Recreate platform database to simulate rerunning mbedls
157
+ self .pdb = PlatformDatabase ([self .base_db_path ])
158
+ self .assertEqual (self .pdb .get ('4753' , None ), None )
159
+
160
+ def test_remove_all_permanent (self ):
161
+ """Test that multiple entries can be removed permanently at once
162
+ """
163
+ self .assertEqual (self .pdb .get ('4753' , None ), None )
164
+ self .assertEqual (self .pdb .get ('4754' , None ), None )
165
+ self .pdb .add ('4753' , 'Test_Platform1' , permanent = True )
166
+ self .pdb .add ('4754' , 'Test_Platform2' , permanent = True )
167
+ self .assertEqual (self .pdb .get ('4753' , None ), 'Test_Platform1' )
168
+ self .assertEqual (self .pdb .get ('4754' , None ), 'Test_Platform2' )
169
+
170
+ # Recreate platform database to simulate rerunning mbedls
171
+ self .pdb = PlatformDatabase ([self .base_db_path ])
172
+ self .assertEqual (self .pdb .get ('4753' , None ), 'Test_Platform1' )
173
+ self .assertEqual (self .pdb .get ('4754' , None ), 'Test_Platform2' )
174
+ self .pdb .remove ('*' , permanent = True )
175
+ self .assertEqual (self .pdb .get ('4753' , None ), None )
176
+ self .assertEqual (self .pdb .get ('4754' , None ), None )
177
+
178
+ # Recreate platform database to simulate rerunning mbedls
179
+ self .pdb = PlatformDatabase ([self .base_db_path ])
180
+ self .assertEqual (self .pdb .get ('4753' , None ), None )
181
+ self .assertEqual (self .pdb .get ('4754' , None ), None )
182
+
126
183
def test_bogus_add (self ):
127
184
"""Test that add requires properly formatted platform ids
128
185
"""
0 commit comments