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()