You've already forked etude_lego_jurassic_world
Ajoute le total de minifigs aux statistiques
This commit is contained in:
56
tests/test_minifig_stats.py
Normal file
56
tests/test_minifig_stats.py
Normal file
@@ -0,0 +1,56 @@
|
||||
"""Tests des statistiques liées aux minifigs."""
|
||||
|
||||
from lib.rebrickable.minifig_stats import (
|
||||
MINIFIG_TOTAL_LABEL,
|
||||
TOTAL_PARTS_LABEL,
|
||||
compute_filtered_minifig_total,
|
||||
merge_minifig_stat,
|
||||
)
|
||||
|
||||
|
||||
def test_compute_filtered_minifig_total_counts_latest_inventory(tmp_path) -> None:
|
||||
"""Additionne les minifigs en utilisant la dernière version d'inventaire."""
|
||||
inventories_path = tmp_path / "inventories.csv"
|
||||
inventories_path.write_text(
|
||||
"id,version,set_num\n"
|
||||
"1,1,123-1\n"
|
||||
"2,2,123-1\n"
|
||||
"3,1,124-1\n"
|
||||
)
|
||||
inventory_minifigs_path = tmp_path / "inventory_minifigs.csv"
|
||||
inventory_minifigs_path.write_text(
|
||||
"inventory_id,fig_num,quantity\n"
|
||||
"1,fig-01,1\n"
|
||||
"2,fig-02,3\n"
|
||||
"3,fig-03,2\n"
|
||||
)
|
||||
filtered_sets = [{"set_num": "123-1"}, {"set_num": "124-1"}]
|
||||
|
||||
total = compute_filtered_minifig_total(filtered_sets, inventories_path, inventory_minifigs_path)
|
||||
|
||||
assert total == 5
|
||||
|
||||
|
||||
def test_merge_minifig_stat_inserts_after_total_parts_and_replaces_existing() -> None:
|
||||
"""Insère l'entrée minifigs après le total de pièces et remplace l'ancienne valeur."""
|
||||
base_stats = [
|
||||
("A", "1"),
|
||||
(TOTAL_PARTS_LABEL, "10"),
|
||||
("B", "2"),
|
||||
]
|
||||
|
||||
with_minifigs = merge_minifig_stat(base_stats, 7)
|
||||
refreshed = merge_minifig_stat(with_minifigs, 8)
|
||||
|
||||
assert with_minifigs == [
|
||||
("A", "1"),
|
||||
(TOTAL_PARTS_LABEL, "10"),
|
||||
(MINIFIG_TOTAL_LABEL, "7"),
|
||||
("B", "2"),
|
||||
]
|
||||
assert refreshed == [
|
||||
("A", "1"),
|
||||
(TOTAL_PARTS_LABEL, "10"),
|
||||
(MINIFIG_TOTAL_LABEL, "8"),
|
||||
("B", "2"),
|
||||
]
|
||||
Reference in New Issue
Block a user