Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_deactivate_actor(self):
"""Activate ActorId('2') and deactivate it"""
test_actor_id = ActorId('2')
_run(self._manager.activate_actor(test_actor_id))
# assert
self.assertEqual(test_actor_id, self._manager._active_actors[test_actor_id.id].id)
self.assertTrue(self._manager._active_actors[test_actor_id.id].activated)
self.assertFalse(self._manager._active_actors[test_actor_id.id].deactivated)
_run(self._manager.deactivate_actor(test_actor_id))
self.assertIsNone(self._manager._active_actors.get(test_actor_id.id))
def test_fire_reminder_for_non_reminderable(self):
test_type_info = ActorTypeInformation.create(FakeSimpleActor)
ctx = ActorRuntimeContext(
test_type_info, self._serializer,
self._serializer, self._fake_client)
manager = ActorManager(ctx)
with self.assertRaises(ValueError):
_run(manager.fire_reminder(ActorId('testid'), 'test_reminder', self._test_reminder_req))
def test_register_reminder(self):
test_actor_id = ActorId('test_id')
test_type_info = ActorTypeInformation.create(FakeSimpleReminderActor)
test_client = FakeDaprActorClient
ctx = ActorRuntimeContext(
test_type_info, self._serializer,
self._serializer, test_client)
test_actor = FakeSimpleReminderActor(ctx, test_actor_id)
# register reminder
_run(test_actor.register_reminder(
'test_reminder', b'reminder_message',
timedelta(seconds=1), timedelta(seconds=1)))
test_client.register_reminder.mock.assert_called_once()
test_client.register_reminder.mock.assert_called_with(
'FakeSimpleReminderActor', 'test_id',
'test_reminder',
b'{"name":"test_reminder","dueTime":"0h0m1s","period":"0h0m1s","data":"cmVtaW5kZXJfbWVzc2FnZQ=="}') # noqa E501
def test_fire_reminder_success(self):
test_actor_id = ActorId('testid')
test_type_info = ActorTypeInformation.create(FakeSimpleReminderActor)
ctx = ActorRuntimeContext(
test_type_info, self._serializer,
self._serializer, self._fake_client)
manager = ActorManager(ctx)
_run(manager.activate_actor(test_actor_id))
_run(manager.fire_reminder(test_actor_id, 'test_reminder', self._test_reminder_req))
def test_create_actor_id(self):
actor_id_1 = ActorId('1')
self.assertEqual('1', actor_id_1.id)
def test_fire_timer_success(self):
test_actor_id = ActorId('testid')
test_type_info = ActorTypeInformation.create(FakeSimpleTimerActor)
ctx = ActorRuntimeContext(
test_type_info, self._serializer,
self._serializer, self._fake_client)
manager = ActorManager(ctx)
_run(manager.activate_actor(test_actor_id))
actor = manager._active_actors.get(test_actor_id.id, None)
# Setup timer
_run(actor.register_timer(
'test_timer', actor.timer_callback,
"timer call", timedelta(seconds=1), timedelta(seconds=1)))
# Fire timer
_run(manager.fire_timer(test_actor_id, 'test_timer'))
def setUp(self):
# Create mock client
self._fake_client = FakeDaprActorClient
self._test_actor_id = ActorId('1')
self._test_type_info = ActorTypeInformation.create(FakeSimpleActor)
self._serializer = DefaultJSONSerializer()
self._runtime_ctx = ActorRuntimeContext(
self._test_type_info, self._serializer, self._serializer, self._fake_client)
self._fake_actor = FakeSimpleActor(self._runtime_ctx, self._test_actor_id)
def test_get_hash(self):
actor_test_id = ActorId('testId')
self.assertIsNotNone(actor_test_id.__hash__)
async def fire_timer(cls, actor_type_name: str, actor_id: str, name: str) -> None:
"""Fires a timer for the Actor.
Args:
actor_type_name (str): the name of actor type.
actor_id (str): Actor ID.
name (str): the timer name.
Raises:
ValueError: `actor_type_name` actor type is not registered.
"""
manager = await cls._get_actor_manager(actor_type_name)
if not manager:
raise ValueError(f'{actor_type_name} is not registered.')
await manager.fire_timer(ActorId(actor_id), name)
Args:
actor_type_name (str): the name of actor type.
actor_id (str): Actor ID.
actor_method_name (str): the method name that is dispatched.
request_body (bytes): the body of request that is passed to actor method arguments.
Returns:
bytes: serialized response data.
Raises:
ValueError: `actor_type_name` actor type is not registered.
"""
manager = await cls._get_actor_manager(actor_type_name)
if not manager:
raise ValueError(f'{actor_type_name} is not registered.')
return await manager.dispatch(ActorId(actor_id), actor_method_name, request_body)