Exemplo n.º 1
0
class FakerTest(TestCase):
    _multiprocess_can_split_ = True

    def setUp(self):
        self.faker = Faker()
        self.words = ['ut', 'sit', 'amet', 'lorem']
        self.faker._words = self.words

    def test_word(self):
        self.assertIn(self.faker.word(), self.words)

    def test_word_min_length(self):
        min_length = 5
        words = [word for word in self.words if len(word) >= min_length]
        self.assertIn(self.faker.word(min_length=min_length), words)

    def test_word_max_length(self):
        max_length = 2
        words = [word for word in self.words if len(word) <= max_length]
        self.assertIn(self.faker.word(max_length=max_length), words)

    def test_word_min_length_too_big(self):
        min_length = 6
        with self.assertRaises(IndexError):
            self.faker.word(min_length=min_length)

    def test_word_max_length_too_small(self):
        max_length = 1
        with self.assertRaises(IndexError):
            self.faker.word(max_length=max_length)

    def test_word_max_length_and_min_length(self):
        min_length, max_length = 3, 4
        words = []
        for word in self.words:
            if min_length <= len(word) <= max_length:
                words.append(word)
        self.assertIn(
            self.faker.word(min_length=min_length, max_length=max_length),
            words)

    def test_words(self):
        words = self.faker.words()
        self.assertTrue(set(self.words) >= set(words.split(' ')))

    def test_words_count(self):
        count = 12
        words = self.faker.words(words=count)
        self.assertEqual(len(words.split(' ')), count)

    def test_sentence_is_capitalized_and_ends_with_a_period(self):
        sentence = self.faker.sentence()
        self.assertEqual(sentence[0].upper(), sentence[0])
        self.assertEqual(sentence[-1], '.')

    def test_sentence_word_count(self):
        count = 12
        sentence = self.faker.sentence(words=count)
        self.assertEqual(len(sentence.split(' ')), count)

    def test_sentences(self):
        sentences = self.faker.sentences()
        for sentence in sentences.split('. '):
            self.assertEqual(sentence[0].upper(), sentence[0])

    def test_sentences_count(self):
        count = 12
        sentences = self.faker.sentences(sentences=count)
        self.assertEqual(len(sentences.split('. ')), count)

    def test_sentences_word_count(self):
        count = 12
        sentences = self.faker.sentences(words=count)
        for sentence in sentences.split('. '):
            self.assertEqual(len(sentence.split(' ')), count)

    def test_paragraphs(self):
        paragraphs = self.faker.paragraphs()
        self.assertIn('\n\n', paragraphs)

    def test_paragraphs_count(self):
        count = 12
        paragraphs = self.faker.paragraphs(paragraphs=count)
        self.assertEqual(len(paragraphs.split('\n\n')), count)

    def test_paragraphs_sentence_count(self):
        count = 12
        paragraphs = self.faker.paragraphs(sentences=count)
        for paragraph in paragraphs.split('\n\n'):
            self.assertEqual(len(paragraph.split('. ')), count)

    def test_paragraphs_word_count(self):
        count = 12
        paragraphs = self.faker.paragraphs(words=count)
        for paragraph in paragraphs.split('\n\n'):
            for sentence in paragraph.split('. '):
                self.assertEqual(len(sentence.split(' ')), count)

    def test_email(self):
        email = self.faker.email()
        email_regex = r'[^@]+@[^@]+\.[^@]+'
        self.assertTrue(re.match(email_regex, email))

    def test_password(self):
        password = self.faker.password()
        chars = string.letters + string.digits
        self.assertLessEqual(set(password), set(chars))

    def test_password_length(self):
        length = 12
        password = self.faker.password(length=length)
        self.assertEqual(len(password), length)

    def test_datetime(self):
        self.assertLessEqual(self.faker.datetime(), timezone.now())

    def test_pronounceable_unique_id(self):
        unique_id = self.faker.pronounceable_unique_id()
        self.assertGreaterEqual(set(string.letters + '-'), set(unique_id))

    def test_pronounceable_unique_id_length(self):
        length = 12
        unique_id = self.faker.pronounceable_unique_id(length=length)
        self.assertEqual(len(unique_id), length)

    def test_pronounceable_unique_id_delimiter(self):
        delimiter = '_'
        unique_id = self.faker.pronounceable_unique_id(delimiter=delimiter)
        self.assertIn(delimiter, unique_id)

    def test_pronounceable_unique_id_does_not_end_with_a_delimiter(self):
        self.faker._words = ['ut']
        delimiter = '_'
        unique_id = self.faker.pronounceable_unique_id(
            length=3, delimiter=delimiter)
        self.assertNotEqual(unique_id[-1], delimiter)