From eff76fc8a3721111ab829a3d87c177fcc6756660 Mon Sep 17 00:00:00 2001 From: Benedikt Bartscher <bb@senbax.de> Date: Sat, 1 Feb 2025 16:13:32 +0100 Subject: [PATCH] fix: allow replacing of _var_type in ComputedVar (worked in previous reflex versions) --- reflex/vars/base.py | 2 -- tests/units/vars/test_base.py | 16 +++++++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/reflex/vars/base.py b/reflex/vars/base.py index ec65c3711..8aaf7fc60 100644 --- a/reflex/vars/base.py +++ b/reflex/vars/base.py @@ -2088,14 +2088,12 @@ class ComputedVar(Var[RETURN_TYPE]): @override def _replace( self, - _var_type: Any = None, merge_var_data: VarData | None = None, **kwargs: Any, ) -> Self: """Replace the attributes of the ComputedVar. Args: - _var_type: ignored in ComputedVar. merge_var_data: VarData to merge into the existing VarData. **kwargs: Var fields to update. diff --git a/tests/units/vars/test_base.py b/tests/units/vars/test_base.py index e4ae7327a..8f9e99fe4 100644 --- a/tests/units/vars/test_base.py +++ b/tests/units/vars/test_base.py @@ -2,7 +2,8 @@ from typing import List, Mapping, Union import pytest -from reflex.vars.base import figure_out_type +from reflex.state import State +from reflex.vars.base import computed_var, figure_out_type class CustomDict(dict[str, str]): @@ -47,3 +48,16 @@ class ChildGenericDict(GenericDict): ) def test_figure_out_type(value, expected): assert figure_out_type(value) == expected + + +def test_computed_var_replace() -> None: + class StateTest(State): + @computed_var(cache=True) + def cv(self) -> int: + return 1 + + cv = StateTest.cv + assert cv._var_type is int + + replaced = cv._replace(_var_type=float) + assert replaced._var_type is float