From 7ec5c72150c448cf284463a9ea023ee959071be5 Mon Sep 17 00:00:00 2001 From: Andrew Dickinson Date: Sun, 26 Apr 2020 13:47:09 -0400 Subject: [PATCH] Add some quick tests for localize_list --- ihatemoney/tests/tests.py | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/ihatemoney/tests/tests.py b/ihatemoney/tests/tests.py index 026baea3..fea97e78 100644 --- a/ihatemoney/tests/tests.py +++ b/ihatemoney/tests/tests.py @@ -16,7 +16,7 @@ from werkzeug.security import check_password_hash, generate_password_hash from ihatemoney import history, models, utils from ihatemoney.manage import DeleteProject, GenerateConfig, GeneratePasswordHash from ihatemoney.run import create_app, db, load_configuration -from ihatemoney.utils import em_surround +from ihatemoney.utils import em_surround, localize_list from ihatemoney.versioning import LoggingMode # Unset configuration file env var if previously set @@ -2854,5 +2854,34 @@ class HistoryTestCase(IhatemoneyTestCase): self.assertEqual(len(history_list), 6) +class LocalizeListTestCase(IhatemoneyTestCase): + def test_list_numbers_no_em(self): + self.assertEqual("", localize_list([], False)) + self.assertEqual("1", localize_list([1], False)) + self.assertEqual("1 and 2", localize_list([1, 2], False)) + self.assertEqual("1, 2, and 3", localize_list(list(range(1, 4)), False)) + self.assertEqual("1, 2, 3, and 4", localize_list(list(range(1, 5)), False)) + self.assertEqual("1, 2, 3, 4, and 5", localize_list(list(range(1, 6)), False)) + + def test_list_numbers_with_em(self): + self.assertEqual("", localize_list([])) + self.assertEqual(em_surround("1"), localize_list([1])) + self.assertEqual( + f"{em_surround(1)} and {em_surround(2)}", localize_list([1, 2]) + ) + self.assertEqual( + f"{em_surround(1)}, {em_surround(2)}, and {em_surround(3)}", + localize_list(list(range(1, 4))), + ) + self.assertEqual( + f"{em_surround(1)}, {em_surround(2)}, {em_surround(3)}, and {em_surround(4)}", + localize_list(list(range(1, 5))), + ) + self.assertEqual( + f"{em_surround(1)}, {em_surround(2)}, {em_surround(3)}, {em_surround(4)}, and {em_surround(5)}", + localize_list(list(range(1, 6))), + ) + + if __name__ == "__main__": unittest.main()