Skip to content

Commit f6e28f3

Browse files
Fixes try_add_state in actor state manger (#756)
Signed-off-by: Elena Kolevska <elena@kolevska.com>
1 parent aafb900 commit f6e28f3

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

dapr/actor/runtime/state_manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ async def try_add_state(self, state_name: str, value: T) -> bool:
8585
existed = await self._actor.runtime_ctx.state_provider.contains_state(
8686
self._type_name, self._actor.id.id, state_name
8787
)
88-
if not existed:
88+
if existed:
8989
return False
9090

9191
state_change_tracker[state_name] = StateMetadata(value, StateChangeKind.add)

tests/actor/test_state_manager.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def setUp(self):
4646

4747
@mock.patch(
4848
'tests.actor.fake_client.FakeDaprActorClient.get_state',
49-
new=_async_mock(return_value=base64.b64encode(b'"value1"')),
49+
new=_async_mock(),
5050
)
5151
@mock.patch(
5252
'tests.actor.fake_client.FakeDaprActorClient.save_state_transactionally', new=_async_mock()
@@ -67,6 +67,20 @@ def test_add_state(self):
6767
added = _run(state_manager.try_add_state('state1', 'value1'))
6868
self.assertFalse(added)
6969

70+
@mock.patch(
71+
'tests.actor.fake_client.FakeDaprActorClient.get_state',
72+
new=_async_mock(return_value=base64.b64encode(b'"value1"')),
73+
)
74+
@mock.patch(
75+
'tests.actor.fake_client.FakeDaprActorClient.save_state_transactionally', new=_async_mock()
76+
)
77+
def test_add_state_with_existing_state(self):
78+
state_manager = ActorStateManager(self._fake_actor)
79+
80+
# Add first 'state1'
81+
added = _run(state_manager.try_add_state('state1', 'value1'))
82+
self.assertFalse(added)
83+
7084
@mock.patch('tests.actor.fake_client.FakeDaprActorClient.get_state', new=_async_mock())
7185
def test_get_state_for_no_state(self):
7286
state_manager = ActorStateManager(self._fake_actor)

0 commit comments

Comments
 (0)