Skip to content
Snippets Groups Projects
test_serializers.py 2.22 KiB
import datetime

from funkwhale_network import serializers




def test_serialize_check():
    data = {
        "time": datetime.datetime.now(),
        "up": True,
        "open_registrations": True,
        "private": True,
        "federation_enabled": False,
        "anonymous_can_listen": True,
        "usage_users_total": 1,
        "usage_users_active_half_year": 2,
        "usage_users_active_month": 3,
        "usage_listenings_total": 4,
        "usage_downloads_total": 44,
        "library_tracks_total": 5,
        "library_albums_total": 6,
        "library_artists_total": 7,
        "library_music_hours": 8,
        "software_name": "funkwhale",
        "software_version_major": 0,
        "software_version_minor": 18,
        "software_version_patch": 0,
        "software_prerelease": "dev",
        "software_build": "git.hash",
    }

    expected = {
        "time": data["time"].isoformat(),
        "up": True,
        "settings": {
            "openRegistrations": True,
            "federationEnabled": False,
            "anonymousCanListen": True,
        },
        "library": {
            "tracks": {"total": 5},
            "albums": {"total": 6},
            "artists": {"total": 7},
            "music": {"hours": 8},
        },
        "usage": {
            "users": {"total": 1, "activeHalfyear": 2, "activeMonth": 3},
            "listenings": {"total": 4},
            "downloads": {"total": 44},
        },
        "software": {
            "name": "funkwhale",
            "version": "0.18.0-dev+git.hash",
            "versionDetail": {
                "major": 0,
                "minor": 18,
                "patch": 0,
                "prerelease": "dev",
                "build": "git.hash",
            },
        },
    }

    assert serializers.serialize_check(data) == expected


def test_serialize_domain_from_check():
    data = {
        "domain": "test",
        "node_name": "Hello",
        "first_seen": datetime.datetime.now(),
        "other_data": False,
    }

    expected = {
        "name": "test",
        "node_name": "Hello",
        "first_seen": data["first_seen"].isoformat(),
        "lastCheck": {"other_data": False},
    }

    assert serializers.serialize_domain_from_check(data) == expected