From 73ef17b96dd736e0cd564872d527bfbdab66a6d7 Mon Sep 17 00:00:00 2001 From: benedikt-bartscher <31854409+benedikt-bartscher@users.noreply.github.com> Date: Mon, 3 Feb 2025 19:16:01 +0100 Subject: [PATCH] fix: allow replacing of _var_type in ComputedVar (worked in previous reflex versions) (#4730) --- 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 9f6652122..be4f19955 100644 --- a/reflex/vars/base.py +++ b/reflex/vars/base.py @@ -2122,14 +2122,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