def create_user(): """Create a sample User.""" faker = Faker() user = User.objects.create_user( username=faker.pronounceable_unique_id(length=30), first_name=faker.word().title(), last_name=faker.word().title(), email=faker.email(), password=faker.password()) return user
def wrapper(self): faker = Faker() username = faker.pronounceable_unique_id(length=30) password = faker.password() user = User.objects.create_user( username=username, first_name=faker.word().title(), last_name=faker.word().title(), email=faker.email(), password=password) user.save() self.client.login(username=username, password=password) return func(self)
class CreateCommentFormTest(TestCase): _multiprocess_can_split_ = True class AuthenticatedUser(User): def is_authenticated(self): return True def setUp(self): self.faker = Faker() self.body = self.faker.paragraphs(paragraphs=2, sentences=2) self.guest_name = self.faker.words(words=2).title() self.author = create_user() self.post = create_post() self.post.save() def test_guest_name_has_to_be_present_for_anonymous_user(self): data = { 'body': self.body, 'post': self.post.id} form = CommentForm(data=data) self.assertFalse(form.is_valid()) self.assertIn(_("This field is required."), form.errors['guest_name']) def test_guest_name_is_not_required_for_logged_in_user(self): request = HttpRequest() request.user = self.AuthenticatedUser( username=self.faker.pronounceable_unique_id(length=30), password=self.faker.password(), email=self.faker.email()) data = { 'body': self.body, 'post': self.post.id} form = CommentForm(data=data, request=request) self.assertTrue(form.is_valid()) def test_save_anonymous_user(self): data = { 'body': self.body, 'post': self.post.id, 'guest_name': self.guest_name} form = CommentForm(data=data) self.assertTrue(form.is_valid()) comment = form.save() self.assertEqual(comment.body, self.body) self.assertEqual(comment.post, self.post) self.assertEqual(comment.guest_name, self.guest_name) self.assertLessEqual(comment.created_at, timezone.now())