Helpers for creating functional tests in Django, with a unified API for WebTest and Selenium tests.
Project description
Helpers for creating high-level functional tests in Django, with a unified API for WebTest and Selenium tests.
Documentation
The full documentation is at https://django-functest.readthedocs.org.
Installation
pip install django-functest
Features
A simplified API for writing functional tests in Django (tests that check the behaviour of entire views, or sets of views, e.g. a checkout process).
A unified API that abstracts over both WebTest and Selenium - write two tests at once!
Many of the gotchas and difficulties of using WebTest and Selenium ironed out for you.
Well tested - as well as its own test suite, which is run against Firefox, Chrome, and PhantomJS, it is also used by Wolf & Badger for tests covering many business critical functionalities.
Typical usage
In your tests.py:
from django.test import LiveServerTestCase, TestCase from django_functest import FuncWebTestMixin, FuncSeleniumMixin class ContactTestBase(object): def test_contact_form(self): self.get_url('contact_form') self.fill({'#id_name': 'Joe', '#id_message': 'Hello'}) self.submit('input[type=submit]') self.assertTextPresent("Thanks for your message") class ContactWebTest(FuncWebTestMixin, TestCase): pass class ContactSeleniumTest(FuncSeleniumMixin, LiveServerTestCase): pass
In this way, you can write a single test with a high-level API, and run it in two way - using a fast, WSGI-based method with emulates typical HTTP usage of a browser, and using a full browser that actually executes Javascript (if present) etc.
Under the hood, the WSGI-based method uses and builds upon WebTest and django-webtest.
django-functest provides its functionality as mixins, so that you can have your own base class for tests.
Running Tests
To run the tests:
source <YOURVIRTUALENV>/bin/activate (myenv) $ ./setup.py develop (myenv) $ ./runtests.py
Or, to run on all environments:
pip install tox tox
Credits
This library was built by developers at Wolf & Badger, released with the kind permission of that company.
Tools used in rendering this package:
History
0.1.4
Added support for file uploads
0.1.3
Support for filling radio buttons
More convenient support for quotes and apostrophes (” ‘) in text assertion methods.
0.1.2
Fixed wheel building - again!
0.1.1
Fixed packaging bug that caused wheels to fail on Python 3.
0.1.0
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for django_functest-0.1.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 523f29c337a36a20be177f8b66da9526fc7f1435337fa4c15b0eee598d07eff5 |
|
MD5 | 922e097021f00243134be19cc79b9e04 |
|
BLAKE2b-256 | e629b43dda278ebf9c3799460ee9eb1442270af743578b8dc1349ab832f2c2b2 |
Hashes for django_functest-0.1.4-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3683a79f4de747ce3138852e035a75270dffb67ec9888b81fd5c498069fdad4 |
|
MD5 | 17a1da42edec5eac7ef527180742a323 |
|
BLAKE2b-256 | 7f4f599afc3ee7cd4ee0b9bd83c19be0df024c54222be56908992350f2d674e9 |