1919import logging
2020import tempfile
2121import json
22+ import shutil
2223from mock import patch , MagicMock , DEFAULT
2324from io import StringIO
2425
@@ -35,14 +36,16 @@ class EmptyPlatformDatabaseTests(unittest.TestCase):
3536 """
3637
3738 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' )
3941 self .base_db = open (self .base_db_path , 'w+b' )
4042 self .base_db .write (b'{}' )
4143 self .base_db .seek (0 )
4244 self .pdb = PlatformDatabase ([self .base_db_path ])
4345
4446 def tearDown (self ):
4547 self .base_db .close ()
48+ shutil .rmtree (self .tempd_dir )
4649
4750 def test_broken_database_io (self ):
4851 """Verify that the platform database still works without a
@@ -123,6 +126,60 @@ def test_remove(self):
123126 self .assertEqual (self .pdb .remove ('4753' , permanent = False ), 'Test_Platform' )
124127 self .assertEqual (self .pdb .get ('4753' , None ), None )
125128
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+
126183 def test_bogus_add (self ):
127184 """Test that add requires properly formatted platform ids
128185 """
0 commit comments