Test that computed vars can have conditionals.
()
| 1326 | |
| 1327 | |
| 1328 | def test_conditional_computed_vars(): |
| 1329 | """Test that computed vars can have conditionals.""" |
| 1330 | |
| 1331 | class MainState(BaseState): |
| 1332 | flag: bool = False |
| 1333 | t1: str = "a" |
| 1334 | t2: str = "b" |
| 1335 | |
| 1336 | @computed_var |
| 1337 | def rendered_var(self) -> str: |
| 1338 | if self.flag: |
| 1339 | return self.t1 |
| 1340 | return self.t2 |
| 1341 | |
| 1342 | ms = MainState() |
| 1343 | # Initially there are no dirty computed vars. |
| 1344 | assert ms._dirty_computed_vars(from_vars={"flag"}) == { |
| 1345 | (MainState.get_full_name(), "rendered_var") |
| 1346 | } |
| 1347 | assert ms._dirty_computed_vars(from_vars={"t2"}) == { |
| 1348 | (MainState.get_full_name(), "rendered_var") |
| 1349 | } |
| 1350 | assert ms._dirty_computed_vars(from_vars={"t1"}) == { |
| 1351 | (MainState.get_full_name(), "rendered_var") |
| 1352 | } |
| 1353 | assert ms.computed_vars["rendered_var"]._deps(objclass=MainState) == { |
| 1354 | MainState.get_full_name(): {"flag", "t1", "t2"} |
| 1355 | } |
| 1356 | |
| 1357 | |
| 1358 | def test_event_handlers_convert_to_fns(test_state, child_state): |
nothing calls this directly
no test coverage detected