Skip to content

Instantly share code, notes, and snippets.

@gilsondev
Created July 31, 2012 18:58
Show Gist options
  • Save gilsondev/3219492 to your computer and use it in GitHub Desktop.
Save gilsondev/3219492 to your computer and use it in GitHub Desktop.
# -*- coding: utf8 -*-
from django.test import TestCase
from django.core.urlresolvers import reverse as r
from django.db import IntegrityError
from .models import Subscription
from .forms import SubscriptionForm
class SubscriptionUrlTest(TestCase):
def test_get_subscribe_page(self):
response = self.client.get(r('subscriptions:subscribe'))
self.assertEquals(200, response.status_code)
def test_get_success_page(self):
response = self.client.get(r('subscriptions:success', args=[1]))
self.assertEquals(200, response.status_code)
class SubscribeViewTest(TestCase):
def setUp(self):
self.resp = self.client.get(r('subscriptions:subscribe'))
def test_get(self):
'Ao visitar /inscricao/ a página de inscrição é exibida'
self.assertEquals(200, self.resp.status_code)
def test_use_template(self):
self.assertTemplateUsed(self.resp,
'subscriptions/subscription_form.html')
def test_has_form(self):
'A resposta deve contar o formulário de inscrição'
self.assertIsInstance(self.resp.context['form'], SubscriptionForm)
def test_form_has_fields(self):
'O formulário deve conter campos: name, email, cpf e phone.'
form = self.resp.context['form']
self.assertItemsEqual(['name', 'email', 'cpf', 'phone'], form.fields)
def test_html(self):
'O html deve conter os campos do formulário'
self.assertContains(self.resp, '<form')
self.assertContains(self.resp, '<input', 6)
self.assertContains(self.resp, 'type="text"', 4)
self.assertContains(self.resp, 'type="submit"')
class SubscriptionModelTest(TestCase):
def test_create(self):
'O model deve ter: name, email, cpf, phone, created_at'
s = Subscription.objects.create(
name='Henrique Bastos',
cpf='03901901981',
email='[email protected]',
phone='21-91820191',
)
self.assertEquals(s.id, 1)
class SubscriptionModelUniqueTest(TestCase):
def setUp(self):
# Cria uma primeira inscrição no banco
Subscription.objects.create(name='Henrique Bastos', cpf='01234567890',
email='[email protected]',
phone='21-91811791')
def test_cpf_must_be_unique(self):
'CPF deve ser único'
# instancia a inscrição do CPF existente
s = Subscription(name='Henrique Bastos', cpf='01234567890',
email='[email protected]', phone='21-91811791')
# Verifica se ocorre o erro de integridade ao persistir.
self.assertRaises(IntegrityError, s.save)
def test_email_must_be_unique(self):
'E-mail deve ser único'
# instancia a inscrição do CPF existente
s = Subscription(name='Henrique Bastos', cpf='000000000',
email='[email protected]', phone='21-91811791')
# Verifica se ocorre o erro de integridade ao persistir.
self.assertRaises(IntegrityError, s.save)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment