def test_instance_policy_serializer_purges_target_actor( factories, mocker, param, expected_only): params = {param: False} if param != "block_all": params["block_all"] = False policy = factories["moderation.InstancePolicy"](for_actor=True, **params) on_commit = mocker.patch("funkwhale_api.common.utils.on_commit") serializer = serializers.ManageInstancePolicySerializer(policy, data={param: True}, partial=True) serializer.is_valid(raise_exception=True) serializer.save() policy.refresh_from_db() assert getattr(policy, param) is True on_commit.assert_called_once_with( federation_tasks.purge_actors.delay, ids=[policy.target_actor_id], only=expected_only, ) on_commit.reset_mock() # setting to false should have no effect serializer = serializers.ManageInstancePolicySerializer( policy, data={param: False}, partial=True) serializer.is_valid(raise_exception=True) serializer.save() policy.refresh_from_db() assert getattr(policy, param) is False assert on_commit.call_count == 0
def test_instance_policy_serializer_save_domain(factories): domain = factories["federation.Domain"]() data = {"target": {"id": domain.name, "type": "domain"}, "block_all": True} serializer = serializers.ManageInstancePolicySerializer(data=data) serializer.is_valid(raise_exception=True) policy = serializer.save() assert policy.target_domain == domain
def test_instance_policy_serializer_save_actor(factories): actor = factories["federation.Actor"]() data = { "target": { "id": actor.full_username, "type": "actor" }, "block_all": True } serializer = serializers.ManageInstancePolicySerializer(data=data) serializer.is_valid(raise_exception=True) policy = serializer.save() assert policy.target_actor == actor
def test_instance_policy_serializer_repr(factories, factory_kwargs, expected, to_api_date): policy = factories["moderation.InstancePolicy"](block_all=True, **factory_kwargs) e = { "id": policy.id, "uuid": str(policy.uuid), "creation_date": to_api_date(policy.creation_date), "actor": policy.actor.full_username, "block_all": True, "silence_activity": False, "silence_notifications": False, "reject_media": False, "is_active": policy.is_active, "summary": policy.summary, } e.update(expected) assert serializers.ManageInstancePolicySerializer(policy).data == e