Merge pull request #1688 from ogayot/fix-list-drivers
drivers: fix empty list of drivers shown when it has not yet been retrieved
This commit is contained in:
commit
919ca5ebd4
|
@ -48,8 +48,6 @@ class DriversController(SubiquityController):
|
|||
}
|
||||
autoinstall_default = {"install": False}
|
||||
|
||||
drivers: Optional[List[str]] = None
|
||||
|
||||
def __init__(self, app) -> None:
|
||||
super().__init__(app)
|
||||
self.ubuntu_drivers: Optional[UbuntuDriversInterface] = None
|
||||
|
@ -57,7 +55,9 @@ class DriversController(SubiquityController):
|
|||
self._list_drivers_task: Optional[asyncio.Task] = None
|
||||
self.list_drivers_done_event = asyncio.Event()
|
||||
|
||||
self.drivers: List[str] = []
|
||||
# None means that the list has not (yet) been retrieved whereas an
|
||||
# empty list means that no drivers are available.
|
||||
self.drivers: Optional[List[str]] = None
|
||||
|
||||
def make_autoinstall(self):
|
||||
return {
|
||||
|
@ -84,7 +84,7 @@ class DriversController(SubiquityController):
|
|||
|
||||
self.ubuntu_drivers = get_ubuntu_drivers_interface(self.app)
|
||||
|
||||
self.drivers = []
|
||||
self.drivers = None
|
||||
self.list_drivers_done_event.clear()
|
||||
if self._list_drivers_task is not None:
|
||||
self._list_drivers_task.cancel()
|
||||
|
|
|
@ -1667,6 +1667,21 @@ class TestDrivers(TestAPI):
|
|||
async def test_desktop_source(self):
|
||||
await self._test_source('ubuntu-desktop', 'nvidia-driver-510')
|
||||
|
||||
@timeout()
|
||||
async def test_listing_ongoing(self):
|
||||
''' Ensure that the list of drivers returned by /drivers is null while
|
||||
the list has not been retrieved. '''
|
||||
async with start_server('examples/simple.json') as inst:
|
||||
resp = await inst.get('/drivers', wait=False)
|
||||
self.assertIsNone(resp['drivers'])
|
||||
|
||||
# POSTing to /source will restart the retrieval operation.
|
||||
await inst.post('/source', source_id='ubuntu-server',
|
||||
search_drivers=True)
|
||||
|
||||
resp = await inst.get('/drivers', wait=False)
|
||||
self.assertIsNone(resp['drivers'])
|
||||
|
||||
|
||||
class TestSource(TestAPI):
|
||||
@timeout()
|
||||
|
|
Loading…
Reference in New Issue