Skip to content
Snippets Groups Projects
test_record.py 1.13 KiB
Newer Older
  • Learn to ignore specific revisions
  • from django.db import models
    from rest_framework import serializers
    
    from funkwhale_api.activity import record
    
    
    class FakeModel(models.Model):
        class Meta:
    
    Eliot Berriot's avatar
    Eliot Berriot committed
            app_label = "tests"
    
    
    
    class FakeSerializer(serializers.ModelSerializer):
        class Meta:
            model = FakeModel
    
    Eliot Berriot's avatar
    Eliot Berriot committed
            fields = ["id"]
    
    
    
    def test_can_bind_serializer_to_model(activity_registry):
        activity_registry.register_serializer(FakeSerializer)
    
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        assert activity_registry["tests.FakeModel"]["serializer"] == FakeSerializer
    
    
    
    def test_can_bind_consumer_to_model(activity_registry):
        activity_registry.register_serializer(FakeSerializer)
    
    Eliot Berriot's avatar
    Eliot Berriot committed
    
        @activity_registry.register_consumer("tests.FakeModel")
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        assert activity_registry["tests.FakeModel"]["consumers"] == [propagate]
    
    
    
    def test_record_object_calls_consumer(activity_registry, mocker):
        activity_registry.register_serializer(FakeSerializer)
        stub = mocker.stub()
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        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)