From e27c11307a6a9ce5064a8077d08ae67324196d5e Mon Sep 17 00:00:00 2001 From: Simeon Visser Date: Thu, 22 Jul 2021 23:37:27 +0200 Subject: [PATCH] Return list instead of tuple in ``choices_distribution`` (#1485) --- faker/utils/distribution.py | 2 +- tests/providers/__init__.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/faker/utils/distribution.py b/faker/utils/distribution.py index 64cc2e084d..93b133d48f 100644 --- a/faker/utils/distribution.py +++ b/faker/utils/distribution.py @@ -61,7 +61,7 @@ def choices_distribution( if hasattr(random, 'choices'): if length == 1 and p is None: - return (random.choice(a),) + return [random.choice(a)] else: return random.choices(a, weights=p, k=length) else: diff --git a/tests/providers/__init__.py b/tests/providers/__init__.py index 23816985dd..af1f6767c4 100644 --- a/tests/providers/__init__.py +++ b/tests/providers/__init__.py @@ -152,6 +152,16 @@ def test_random_letter(self, faker, num_samples): letter = faker.random_letter() assert letter.isalpha() + @pytest.mark.parametrize('length', [0, 1, 2], ids=[ + 'empty_list', 'list_with_one_element', 'list_with_two_elements', + ]) + def test_random_letters(self, faker, length): + letters = faker.random_letters(length=length) + assert len(letters) == length + assert isinstance(letters, list) + for letter in letters: + assert letter.isalpha() + def test_random_lowercase_letter(self, faker, num_samples): for _ in range(num_samples): letter = faker.random_lowercase_letter()