Custom TestCases and other test helpers for Django apps
Project description
# incuna-test-utils
Incuna Test Utils is a collection of TestCases and other helpers for testing Django apps.
## TestCases
These are found in incuna_test_utils.testcases.
### urls.URLTestCase
URLTestCase adds assert_url_matches_view to check a url has been configured to use the correct view.
### request.BaseRequestTestCase
BaseRequestTestCase provides various helper methods for working with django views:
get_view returns a view callable based on a view attribute set on the TestCase class. view can be either a function-based or a class-based view.
view_instance returns an instance of a class-based view attribute set on the TestCase class. view_instance accepts a request and *args and **kwargs. These are set on the view instance.
add_session_to_request gives a request a session.
create_user returns a user using either AnonymousUser or a user_factory attribute set on the TestCase. The user_factory should have a create method that returns a user. [factory_boy](http://factoryboy.readthedocs.org/en/latest/index.html) is recommended.
create_request wraps Django’s RequestFactory to provide useful defaults. It returns a request with user and _messages attributes. It can also set DATA and session on the request.
### integration.BaseIntegrationTestCase
BaseIntegrationTestCase extends BaseRequestTestCase and adds more helper methods useful for integration tests:
access_view creates a request, calls the TestCase’s view and returns a response.
render_to_str renders a response using a request, response.template_name and response.context_data. If a request is not provided, render_to_str uses response.request.
access_view_and_render_response wraps access_view and render_to_str. It also checks the response.status_code is as expected. The default expected_status is 200 (HTTP_OK).
assert_count checks that an item appears in a container an expected number of times.
### api_request.BaseAPIRequestTestCase
BaseAPIRequestTestCase extends BaseRequestTestCase for use with [django-rest-framework](http://www.django-rest-framework.org/).
create_request is overriden to use rest framework’s [APIRequestFactory](http://www.django-rest-framework.org/api-guide/testing#apirequestfactory). It also sets request.format to ‘json’. If called with auth=True (the default), create_request also calls [force_authenticate](http://www.django-rest-framework.org/api-guide/testing#forcing-authentication).
## Factories
These are found in incuna_test_utils.factories. They require [factory_boy](http://factoryboy.readthedocs.org/en/latest/index.html).
### user.BaseUserFactory
This defines a simple factory with email and name attributes. This can be used with a custom User model that has these fields:
- class UserFactory(BaseUserFactory):
- class Meta:
model = User
### feincms_page.PageFactory
This factory can be used to create instances of [Feincms](http://feincms-django-cms.readthedocs.org/en/latest/index.html)’s [Page](http://feincms-django-cms.readthedocs.org/en/latest/page.html) model.
## compat
compat provides a few miscelleaneous helpers useful for testing cross-version code:
DJANGO_LT_15, DJANGO_LT_16, DJANGO_LT_17 each return True if django.VERSION is less than 1.5, 1.6 or 1.7 respectively.
wipe_id_fieldson_django_lt_17 removes any field name ending in _id from a collection if the django version is less than 1.7. This is useful for testing a model has the fields expected.
Python2AssertMixin aliases python 2.7 assert methods to match the python 3 api. * TestCase.assertItemsEqual is aliased as assertCountEqual * TestCase.assertRegexpMatches is aliased as assertRegex
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 Distribution
File details
Details for the file incuna-test-utils-5.1.0.tar.gz
.
File metadata
- Download URL: incuna-test-utils-5.1.0.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47315d4556a002c50cc1af5db84292e87beb80f04c2766a3c6c83d8ab39d1a79 |
|
MD5 | 476c7eed2b4a63798254f00347d6d10d |
|
BLAKE2b-256 | bac186cc69f74df02372334433f72b02d05bdcb5e5a6243a5db927ff2296f16f |
File details
Details for the file incuna_test_utils-5.1.0-py2.py3-none-any.whl
.
File metadata
- Download URL: incuna_test_utils-5.1.0-py2.py3-none-any.whl
- Upload date:
- Size: 17.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bfc3920d58e7444ad082fa30b76944ec5e8110694526ce0797b4fc20c1eb08f0 |
|
MD5 | 9ee0cc5bc8fd3c1b2d7de1a68d4fc652 |
|
BLAKE2b-256 | 61dea49b7d638df670b1bbfa5283a70ec89b3a4d02fd84e9a9d11cb507c2c648 |