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