async def test_remove_competition_cancel(storage_dir, activity_testbed, xcsoar_dir, async_sleep, sample_competition) -> None: # WHEN async with activity_testbed.shown(CompetitionDetailsScreen): # Let everything to be downloaded await activity_testbed.gather_tasks() rendered = activity_testbed.render() # WHEN # Navigate to "remove" button and press it await activity_testbed.keypress("down", "right", "enter") # THEN rendered = activity_testbed.render() assert "Test competition" in rendered assert "Are you sure you want to remove this competion?" in rendered # Cancel await activity_testbed.keypress("enter") rendered = activity_testbed.render() # We are back to details screen assert "XCSoar profiles" in rendered # The test competition should be gone assert storage.list_competitions() == [sample_competition] assert storage.get_settings( ).current_competition_id is sample_competition.id
def show(self) -> None: super().show() has_comps = storage.list_competitions() if not has_comps: return self._run_screen("welcome") curid = self._get_current_comp_id() if curid: return self._run_screen("details")
def test_delete_competition(storage_dir) -> None: comp = storage.StoredCompetition( id="first", title="First Competition", soaringspot_url="http://localhost", airspace="airspace.txt", waypoints="waypoints.txt", ) storage.save_competition(comp) comps = storage.list_competitions() assert [c.id for c in comps] == ["first"] # WHEN storage.delete_competition(comp.id) # THEN comps = storage.list_competitions() assert comps == []
def _populate_stored_comps(self): for comp in storage.list_competitions(): btn = widget.CMSelectableListItem(comp.title) urwid.connect_signal(btn, "click", self._on_competition_selected, comp) self._items.append(btn)
def test_list_competitions_empty(storage_dir) -> None: # WHEN comps = storage.list_competitions() # THEN assert comps == []