restrict this only to frontend vars for now.
This commit is contained in:
parent
dbf43b1b09
commit
15af1cade4
@ -1281,7 +1281,9 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow):
|
||||
return
|
||||
|
||||
if (
|
||||
not name.startswith("__")
|
||||
not name.startswith(
|
||||
"_"
|
||||
) # TODO: skipping backend vars and vars with double leading underscores for now. They should be supported, however.
|
||||
and name not in self.vars
|
||||
and name not in self.get_skip_vars()
|
||||
):
|
||||
|
@ -3269,10 +3269,23 @@ def test_assignment_to_undeclared_vars():
|
||||
|
||||
class State(BaseState):
|
||||
val: str
|
||||
_val: str
|
||||
__val: str
|
||||
|
||||
def handle(self):
|
||||
def handle_supported_regular_vars(self):
|
||||
self.val = "no underscore"
|
||||
self._val = "single leading underscore"
|
||||
self.__val = "double leading undercore"
|
||||
|
||||
def handle_regular_var(self):
|
||||
self.num = 5
|
||||
|
||||
def handle_backend_var(self):
|
||||
self._num = 5
|
||||
|
||||
def handle_non_var(self):
|
||||
self.__num = 5
|
||||
|
||||
class Substate(State):
|
||||
def handle_var(self):
|
||||
self.value = 20
|
||||
@ -3281,7 +3294,16 @@ def test_assignment_to_undeclared_vars():
|
||||
sub_state = Substate() # type: ignore
|
||||
|
||||
with pytest.raises(AttributeError):
|
||||
state.handle()
|
||||
state.handle_regular_var()
|
||||
|
||||
with pytest.raises(AttributeError):
|
||||
sub_state.handle_var()
|
||||
|
||||
# TODO: uncomment this if the case of backend vars are supported.
|
||||
# with pytest.raises(AttributeError):
|
||||
# state.handle_backend_var()
|
||||
#
|
||||
# with pytest.raises(AttributeError):
|
||||
# state.handle_non_var()
|
||||
|
||||
state.handle_supported_regular_vars()
|
||||
|
Loading…
Reference in New Issue
Block a user