funkwhale/api/tests/activity/test_record.py

43 wiersze
1.1 KiB
Python

from django.db import models
from rest_framework import serializers
from funkwhale_api.activity import record
class FakeModel(models.Model):
class Meta:
app_label = "tests"
class FakeSerializer(serializers.ModelSerializer):
class Meta:
model = FakeModel
fields = ["id"]
def test_can_bind_serializer_to_model(activity_registry):
activity_registry.register_serializer(FakeSerializer)
assert activity_registry["tests.FakeModel"]["serializer"] == FakeSerializer
def test_can_bind_consumer_to_model(activity_registry):
activity_registry.register_serializer(FakeSerializer)
@activity_registry.register_consumer("tests.FakeModel")
def propagate(data, obj):
return True
assert activity_registry["tests.FakeModel"]["consumers"] == [propagate]
def test_record_object_calls_consumer(activity_registry, mocker):
activity_registry.register_serializer(FakeSerializer)
stub = mocker.stub()
activity_registry.register_consumer("tests.FakeModel")(stub)
o = FakeModel(id=1)
data = FakeSerializer(o).data
record.send(o)
stub.assert_called_once_with(data=data, obj=o)