SPB Git forge

spb/crea-ka

Public

Créa·Ka — annuaire public cross-plateforme des créateurs de contenu québécois (crea-ka.com)

52commits 1branches 0releases
11.3 MBsize
maindefault branch
19 days agolast push
Python 73.6% HTML 13.2% TypeScript 6% JavaScript 4.5% CSS 1.7% Dockerfile 0.6%
2.0 KB · 51 lines python
Raw Blame History
1# ==============================================================================2# Author: Simon-Pierre Boucher <contact@spboucher.ai>3# File:   tests/test_schema.py4# Desc:   Validation de schéma (§18) — rejet des comptes sans url/confidence,5#         agrégats (tier, portée, plateforme principale)6# ==============================================================================7import pytest89from creaka.identity import account10from creaka.schema import Creator, PlatformAccount111213def test_compte_sans_confidence_rejete():14    with pytest.raises(ValueError):15        PlatformAccount(platform="instagram", handle="nom", url="x",16                        confidence=None).finalize()171819def test_compte_sans_url_canonisable_rejete():20    with pytest.raises(ValueError):21        PlatformAccount(platform="site-web", handle="nom", url="",22                        confidence=0.9).finalize()232425def test_creator_sans_compte_valide_rejete():26    with pytest.raises(ValueError):27        Creator(source="t", external_id="", display_name="Nom",28                platforms=[]).finalize()293031def test_agregats():32    cr = Creator(source="t", external_id="", display_name="Nom Scène", platforms=[33        account("instagram", "nom", "listes_medias", followers=250_000),34        account("tiktok", "nom", "listes_medias", followers=900_000),35    ]).finalize()36    assert cr.primary_platform == "tiktok"          # plus grosse audience37    assert cr.total_reach == 1_150_00038    assert cr.audience_tier == "macro"              # basée sur la principale (900k)39    assert cr.external_id == "nom-scene"40    assert cr.languages == ["fr"]414243def test_dedup_intra_fiche_meilleure_confiance():44    cr = Creator(source="t", external_id="", display_name="Nom", platforms=[45        account("instagram", "nom", "handle_match", followers=100),46        account("instagram", "@NOM", "link_in_bio"),47    ]).finalize()48    assert len(cr.platforms) == 149    assert cr.platforms[0].confidence == 0.9550    assert cr.platforms[0].followers == 10051