Comment out pclist (#407)

This commit is contained in:
Nikhil Rao 2023-01-30 19:25:02 -08:00 committed by GitHub
parent 0e48ceda21
commit e578956b0c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 130 additions and 128 deletions

View File

@ -90,7 +90,7 @@ class State(Base, ABC):
Primarily for mutation in fields of mutable data types. Primarily for mutation in fields of mutable data types.
Args: Args:
field_name (str): The name of the field we want to reassign field_name: The name of the field we want to reassign
""" """
setattr( setattr(
self, self,
@ -287,9 +287,9 @@ class State(Base, ABC):
defined statically in the model. defined statically in the model.
Args: Args:
name (str): The name of the variable name: The name of the variable
type_ (Any): The type of the variable type_: The type of the variable
default_value (Any): The default value of the variable default_value: The default value of the variable
Raises: Raises:
NameError: if a variable of this name already exists NameError: if a variable of this name already exists
@ -688,17 +688,19 @@ def _convert_mutable_datatypes(
Returns: Returns:
The converted field_value The converted field_value
""" """
if isinstance(field_value, list): # TODO: The PCList class needs to be pickleable to work with Redis.
for index in range(len(field_value)): # We will uncomment this code once this is fixed.
field_value[index] = _convert_mutable_datatypes( # if isinstance(field_value, list):
field_value[index], reassign_field, field_name # for index in range(len(field_value)):
) # field_value[index] = _convert_mutable_datatypes(
# field_value[index], reassign_field, field_name
# )
field_value = PCList( # field_value = PCList(
field_value, reassign_field=reassign_field, field_name=field_name # field_value, reassign_field=reassign_field, field_name=field_name
) # )
elif isinstance(field_value, dict): if isinstance(field_value, dict):
for key, value in field_value.items(): for key, value in field_value.items():
field_value[key] = _convert_mutable_datatypes( field_value[key] = _convert_mutable_datatypes(
value, reassign_field, field_name value, reassign_field, field_name

View File

@ -1316,7 +1316,7 @@ def is_backend_variable(name: str) -> bool:
"""Check if this variable name correspond to a backend variable. """Check if this variable name correspond to a backend variable.
Args: Args:
name (str): The name of the variable to check name: The name of the variable to check
Returns: Returns:
bool: The result of the check bool: The result of the check

View File

@ -222,119 +222,119 @@ def list_mutation_state():
return TestState() return TestState()
@pytest.mark.asyncio # @pytest.mark.asyncio
@pytest.mark.parametrize( # @pytest.mark.parametrize(
"event_tuples", # "event_tuples",
[ # [
pytest.param( # pytest.param(
[ # [
( # (
"test_state.make_friend", # "test_state.make_friend",
{"test_state": {"plain_friends": ["Tommy", "another-fd"]}}, # {"test_state": {"plain_friends": ["Tommy", "another-fd"]}},
), # ),
( # (
"test_state.change_first_friend", # "test_state.change_first_friend",
{"test_state": {"plain_friends": ["Jenny", "another-fd"]}}, # {"test_state": {"plain_friends": ["Jenny", "another-fd"]}},
), # ),
], # ],
id="append then __setitem__", # id="append then __setitem__",
), # ),
pytest.param( # pytest.param(
[ # [
( # (
"test_state.unfriend_first_friend", # "test_state.unfriend_first_friend",
{"test_state": {"plain_friends": []}}, # {"test_state": {"plain_friends": []}},
), # ),
( # (
"test_state.make_friend", # "test_state.make_friend",
{"test_state": {"plain_friends": ["another-fd"]}}, # {"test_state": {"plain_friends": ["another-fd"]}},
), # ),
], # ],
id="delitem then append", # id="delitem then append",
), # ),
pytest.param( # pytest.param(
[ # [
( # (
"test_state.make_friends_with_colleagues", # "test_state.make_friends_with_colleagues",
{"test_state": {"plain_friends": ["Tommy", "Peter", "Jimmy"]}}, # {"test_state": {"plain_friends": ["Tommy", "Peter", "Jimmy"]}},
), # ),
( # (
"test_state.remove_tommy", # "test_state.remove_tommy",
{"test_state": {"plain_friends": ["Peter", "Jimmy"]}}, # {"test_state": {"plain_friends": ["Peter", "Jimmy"]}},
), # ),
( # (
"test_state.remove_last_friend", # "test_state.remove_last_friend",
{"test_state": {"plain_friends": ["Peter"]}}, # {"test_state": {"plain_friends": ["Peter"]}},
), # ),
( # (
"test_state.unfriend_all_friends", # "test_state.unfriend_all_friends",
{"test_state": {"plain_friends": []}}, # {"test_state": {"plain_friends": []}},
), # ),
], # ],
id="extend, remove, pop, clear", # id="extend, remove, pop, clear",
), # ),
pytest.param( # pytest.param(
[ # [
( # (
"test_state.add_jimmy_to_second_group", # "test_state.add_jimmy_to_second_group",
{ # {
"test_state": { # "test_state": {
"friends_in_nested_list": [["Tommy"], ["Jenny", "Jimmy"]] # "friends_in_nested_list": [["Tommy"], ["Jenny", "Jimmy"]]
} # }
}, # },
), # ),
( # (
"test_state.remove_first_person_from_first_group", # "test_state.remove_first_person_from_first_group",
{ # {
"test_state": { # "test_state": {
"friends_in_nested_list": [[], ["Jenny", "Jimmy"]] # "friends_in_nested_list": [[], ["Jenny", "Jimmy"]]
} # }
}, # },
), # ),
( # (
"test_state.remove_first_group", # "test_state.remove_first_group",
{"test_state": {"friends_in_nested_list": [["Jenny", "Jimmy"]]}}, # {"test_state": {"friends_in_nested_list": [["Jenny", "Jimmy"]]}},
), # ),
], # ],
id="nested list", # id="nested list",
), # ),
pytest.param( # pytest.param(
[ # [
( # (
"test_state.add_jimmy_to_tommy_friends", # "test_state.add_jimmy_to_tommy_friends",
{"test_state": {"friends_in_dict": {"Tommy": ["Jenny", "Jimmy"]}}}, # {"test_state": {"friends_in_dict": {"Tommy": ["Jenny", "Jimmy"]}}},
), # ),
( # (
"test_state.remove_jenny_from_tommy", # "test_state.remove_jenny_from_tommy",
{"test_state": {"friends_in_dict": {"Tommy": ["Jimmy"]}}}, # {"test_state": {"friends_in_dict": {"Tommy": ["Jimmy"]}}},
), # ),
( # (
"test_state.tommy_has_no_fds", # "test_state.tommy_has_no_fds",
{"test_state": {"friends_in_dict": {"Tommy": []}}}, # {"test_state": {"friends_in_dict": {"Tommy": []}}},
), # ),
], # ],
id="list in dict", # id="list in dict",
), # ),
], # ],
) # )
async def test_list_mutation_detection__plain_list( # async def test_list_mutation_detection__plain_list(
event_tuples: List[Tuple[str, List[str]]], list_mutation_state: State # event_tuples: List[Tuple[str, List[str]]], list_mutation_state: State
): # ):
"""Test list mutation detection # """Test list mutation detection
when reassignment is not explicitly included in the logic. # when reassignment is not explicitly included in the logic.
Args: # Args:
event_tuples: From parametrization. # event_tuples: From parametrization.
list_mutation_state: A state with list mutation features. # list_mutation_state: A state with list mutation features.
""" # """
for event_name, expected_delta in event_tuples: # for event_name, expected_delta in event_tuples:
result = await list_mutation_state.process( # result = await list_mutation_state.process(
Event( # Event(
token="fake-token", # token="fake-token",
name=event_name, # name=event_name,
router_data={"pathname": "/", "query": {}}, # router_data={"pathname": "/", "query": {}},
payload={}, # payload={},
) # )
) # )
assert result.delta == expected_delta # assert result.delta == expected_delta