kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
43 wiersze
1.1 KiB
Python
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)
|