personal memory agent
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

tests: 3-state retention derivation rule

+28
+28
tests/test_retention.py
··· 735 735 "always retain observed media" not in warning["message"] 736 736 for warning in warnings 737 737 ) 738 + 739 + 740 + class TestRetentionDerivationRule: 741 + @staticmethod 742 + def derive_retention(days_value: str, dont_retain: bool) -> tuple[str, int | None]: 743 + # Mirrors the JS deriveRetention helper in convey/templates/init.html 744 + # and apps/settings/workspace.html. 745 + if dont_retain: 746 + return ("processed", None) 747 + try: 748 + days = int(days_value) 749 + except (TypeError, ValueError): 750 + days = None 751 + if days is not None and days >= 1: 752 + return ("days", days) 753 + return ("keep", None) 754 + 755 + def test_empty_days_defaults_to_keep(self): 756 + assert self.derive_retention("", False) == ("keep", None) 757 + 758 + def test_numeric_days_uses_days_mode(self): 759 + assert self.derive_retention("30", False) == ("days", 30) 760 + 761 + def test_checkbox_wins_over_numeric_days(self): 762 + assert self.derive_retention("30", True) == ("processed", None) 763 + 764 + def test_checkbox_wins_when_days_empty(self): 765 + assert self.derive_retention("", True) == ("processed", None)