Skip to main content

This is an alternate TestCase class to improve test running times (I measured a 2x improvement on some of my projects).

You can just use it and get a speed improvement for free, as long as your projects satisfy the follwoing conditions:

  • You use Django 1.3 (It might work with newer versions but I haven’t tried)

  • Your tests use postgreSQL as a database backend, 8.0 or newer

  • Your tests usa a single-database setup

  • Your tests don’t make operations on the db connection that make some state change that is not reverted by a savepoint rollback.

If the last point is false for a few of your tests, you can use the regular django.test.TestCase for that case, and gain the speed improvement in most of them.

How to use

Change your:

from django.test import TestCase

to:

from django_fasttest import TestCase

How does it work

What makes it faster is that fixture parsing/loading is done once per TestCase instead of once per test. Between tests in a same TestCase, the database is rolled back (using a pgsql savepoint) to the point just after loading the fixtures.

All the tests within a testcase use the same database connection (the standard TestCase class shuts down the connection between tests), and are run within the same transaction. If you use transactions in your code, you’ll have the same limitations as you do currently in Django 1.3

The speed benefits will be more noticeable if you have many test cases that use large fixtures, and if those tests are grouped in a TestCase.

Release files for django-fasttest 0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-fasttest 0.1
File Size Uploaded
django-fasttest-0.1.tar.gz 3.5 kB Details

Release files / django-fasttest-0.1.tar.gz

Download URL django-fasttest-0.1.tar.gz
Size 3.5 kB
Tags Source
SHA-256 checksum
How to use checksums
d7869d943968941c6947f93ab2bc3d23315e9dc5b63775077e19b78c7f77a373
BLAKE2b-256 checksum
How to use checksums
8b4e5f3e04e21ef91755f01f05b07b5a37d2a5d3b42d81a6b6068e9d7a238a09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page