Skip to content
Snippets Groups Projects
test_models.py 1.92 KiB
Newer Older
  • Learn to ignore specific revisions
  • import pytest
    from django import db
    
    
    def test_cannot_duplicate_actor(factories):
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        actor = factories["federation.Actor"]()
    
    
        with pytest.raises(db.IntegrityError):
    
    Eliot Berriot's avatar
    Eliot Berriot committed
            factories["federation.Actor"](
                domain=actor.domain, preferred_username=actor.preferred_username
    
            )
    
    
    def test_cannot_duplicate_follow(factories):
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        follow = factories["federation.Follow"]()
    
    
        with pytest.raises(db.IntegrityError):
    
    Eliot Berriot's avatar
    Eliot Berriot committed
            factories["federation.Follow"](target=follow.target, actor=follow.actor)
    
    def test_follow_federation_url(factories):
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        follow = factories["federation.Follow"](local=True)
    
        expected = "{}#follows/{}".format(follow.actor.fid, follow.uuid)
    
        assert follow.get_federation_id() == expected
    
    
    def test_actor_get_quota(factories):
        library = factories["music.Library"]()
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        factories["music.Upload"](
    
            library=library,
            import_status="pending",
            audio_file__from_path=None,
            audio_file__data=b"a",
        )
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        factories["music.Upload"](
    
            library=library,
            import_status="skipped",
            audio_file__from_path=None,
            audio_file__data=b"aa",
        )
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        factories["music.Upload"](
    
            library=library,
            import_status="errored",
            audio_file__from_path=None,
            audio_file__data=b"aaa",
        )
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        factories["music.Upload"](
    
            library=library,
            import_status="finished",
            audio_file__from_path=None,
            audio_file__data=b"aaaa",
        )
        expected = {"total": 10, "pending": 1, "skipped": 2, "errored": 3, "finished": 4}
    
        assert library.actor.get_current_usage() == expected
    
    
    
    @pytest.mark.parametrize(
        "value, expected",
        [
            ("Domain.com", "domain.com"),
            ("hello-WORLD.com", "hello-world.com"),
            ("posés.com", "posés.com"),
        ],
    )
    def test_domain_name_saved_properly(value, expected, factories):
        domain = factories["federation.Domain"](name=value)
        assert domain.name == expected