User Story
En tant que développeur,
je veux des tests d'intégration qui simulent un vrai appel depuis un plugin Narractive mocké,
afin de valider le protocole de communication bout-en-bout sans avoir à installer Narractive.
Approche
Créer un MockNarractivePlugin qui reproduit le comportement de l'adapter Narractive et tester l'interaction complète.
Plan de tests
# tests/test_public_api/test_integration_inter_plugin.py
class MockNarractivePlugin:
"""Simulacre du plugin Narractive pour les tests d'intégration."""
def __init__(self):
self.adapter = FilterMateAdapter()
self.received_signals = []
def connect_to_filtermate(self):
api = qgis.utils.plugins["filter_mate"].get_public_api()
api.filter_applied.connect(self._on_filter_applied)
api.filter_cleared.connect(self._on_filter_cleared)
def _on_filter_applied(self, layer_name, expr):
self.received_signals.append(("applied", layer_name, expr))
class TestInterPluginIntegration:
def test_narractive_can_access_filtermate_api(self, mock_qgis_plugins):
"""Narractive accède à l'API via qgis.utils.plugins."""
def test_filter_applied_signal_received_by_narractive(self, qtbot):
"""Narractive reçoit le signal quand FilterMate applique un filtre."""
def test_narration_step_applies_multiple_filters(self):
"""Un step avec 3 filtres applique bien 3 filtres sur 3 couches."""
def test_step_transition_clears_previous_and_applies_new(self):
"""Transition step N → step N+1 : clear step N, apply step N+1."""
def test_narractive_handles_filtermate_unload_gracefully(self):
"""Narractive ne plante pas si FilterMate est déchargé pendant une narration."""
def test_version_compatibility_check(self):
"""Narractive vérifie la compatibilité de version avant d'utiliser l'API."""
def test_filtermate_absent_no_crash(self, mock_qgis_plugins_empty):
"""FilterMate absent : Narractive continue sans crash."""
Critères d'acceptance
Estimation
Points : 5 | Priorité : Haute | Epic : #22
Liens
User Story
En tant que développeur,
je veux des tests d'intégration qui simulent un vrai appel depuis un plugin Narractive mocké,
afin de valider le protocole de communication bout-en-bout sans avoir à installer Narractive.
Approche
Créer un
MockNarractivePluginqui reproduit le comportement de l'adapter Narractive et tester l'interaction complète.Plan de tests
Critères d'acceptance
qgis.utils.pluginsEstimation
Points : 5 | Priorité : Haute | Epic : #22
Liens