User Story
En tant que développeur,
je veux une suite de tests unitaires complète pour FilterMatePublicAPI,
afin de garantir la stabilité du contrat d'interface pour les plugins tiers.
Fichier cible
/tests/test_public_api/test_filter_mate_public_api.py
Plan de tests
Groupe 1 : Propriétés et capacités
def test_version_format():
"""La version suit le format semver."""
def test_capabilities_contains_required_keys():
"""capabilities() retourne les clés attendues."""
Groupe 2 : apply_filter
def test_apply_filter_success_vectorlayer():
def test_apply_filter_layer_not_found_raises():
def test_apply_filter_invalid_expression_raises():
def test_apply_filter_empty_expression_clears_filter():
def test_apply_filter_case_insensitive_layer_name():
def test_apply_filter_duplicate_layer_name_uses_first():
def test_apply_filter_emits_filter_applied_signal():
def test_apply_filter_logs_source_plugin():
def test_apply_filter_all_four_backends():
Groupe 3 : clear_filter / clear_all_filters
def test_clear_filter_removes_subset_string():
def test_clear_filter_emits_filter_cleared_signal():
def test_clear_filter_nonexistent_layer_returns_false():
def test_clear_all_filters_returns_correct_count():
def test_clear_all_filters_emits_signal_per_layer():
Groupe 4 : get_active_filters / get_filter_for_layer
def test_get_active_filters_reflects_real_subset_strings():
def test_get_active_filters_empty_project():
def test_get_filter_for_layer_returns_none_if_no_filter():
def test_is_layer_filtered_true_when_subset_string():
Groupe 5 : Signaux et cycle de vie
def test_about_to_unload_signal_on_plugin_unload():
def test_no_memory_leak_with_weakref():
def test_error_occurred_signal_on_layer_not_found():
def test_error_occurred_includes_error_code():
Fixtures nécessaires
@pytest.fixture
def mock_qgs_project(mocker):
"""Projet QGIS mocké avec couches vectorielles."""
@pytest.fixture
def api(mock_qgs_project):
"""Instance FilterMatePublicAPI prête à l'emploi."""
Critères d'acceptance
Estimation
Points : 5 | Priorité : Haute | Epic : #22
Liens
User Story
En tant que développeur,
je veux une suite de tests unitaires complète pour
FilterMatePublicAPI,afin de garantir la stabilité du contrat d'interface pour les plugins tiers.
Fichier cible
/tests/test_public_api/test_filter_mate_public_api.pyPlan de tests
Groupe 1 : Propriétés et capacités
Groupe 2 : apply_filter
Groupe 3 : clear_filter / clear_all_filters
Groupe 4 : get_active_filters / get_filter_for_layer
Groupe 5 : Signaux et cycle de vie
Fixtures nécessaires
Critères d'acceptance
filter_mate_public_api.pypytest-qtetqtbot.waitSignalEstimation
Points : 5 | Priorité : Haute | Epic : #22
Liens