Igor Leroy
Python Programmer.
project/myapp/tests.py
./manage.py test myapp
from django.test import TestCase from myapp.models import Animal class AnimalTestCase(TestCase): def setUp(self): Animal.objects.create(name="lion", sound="roar") Animal.objects.create(name="cat", sound="meow") def test_animals_can_speak(self): """Animals that can speak are correctly identified""" lion = Animal.objects.get(name="lion") cat = Animal.objects.get(name="cat") self.assertEqual(lion.speak(), 'The lion says "roar"') self.assertEqual(cat.speak(), 'The cat says "meow"')
import unittest from django.test import Client class SimpleTest(unittest.TestCase): def setUp(self): self.client = Client() def test_details(self): response = self.client.get('/customer/details/') self.assertEqual(response.status_code, 200) self.assertEqual(len(response.context['customers']), 5)
createdb -U postgres_user -h localhost test_db
python manage.py syncdb --settings myproject.test_settings
python manage.py migrate --settings myproject.test_settings
os.environ['REUSE_DB'] = "1"
REUSE_DB=1 python manage.py test
{
"pk": 4,
"model": "auth.user",
"fields": {
"username": "manager",
"first_name": "",
"last_name": "",
"is_active": true,
"is_superuser": false,
"is_staff": false,
"last_login": "2012-02-06 15:06:44",
from model_mommy import mommy from family.models import Kid kid = mommy.make(Kid)
from model_mommy.recipe import Recipe, foreign_key from family.models import Person, Dog person = Recipe(Person, name = 'John Doe', nickname = 'joe', age = 18, birthday = date.today(), appointment = datetime.now() ) dog = Recipe(Dog, breed = 'Pug', owner = foreign_key(person) )
from splinter import Browser browser = Browser() browser.visit('http://google.com') browser.fill('q', 'splinter - python acceptance testing for web applications') browser.find_by_name('btnG').click() if browser.is_text_present('splinter.cobrateam.info'): print "Yes, the official website was found!" else: print "No, it wasn't found... We need to improve our SEO techniques" browser.quit()
By Igor Leroy