Metadata-Version: 1.2
Name: pytest-tipsi-django
Version: 2.6.0
Summary: UNKNOWN
Home-page: https://github.com/micro-fan/pytest-tipsi-django
Author: cybergrind
Author-email: cybergrind@gmail.com
Maintainer: cybergrind
Maintainer-email: cybergrind@gmail.com
License: MIT
Description: pytest-tipsi-django
        ===================
        
        .. image:: https://travis-ci.org/micro-fan/pytest-tipsi-django.svg?branch=master
           :target: https://travis-ci.org/micro-fan/pytest-tipsi-django
        .. image:: https://img.shields.io/pypi/v/pytest-tipsi-django.svg
           :target: https://pypi.python.org/pypi/pytest-tipsi-django
        
        
        .. contents:: **Table of Contents**
            :backlinks: none
        
        
        Installation
        ------------
        
        .. code-block:: bash
        
            $ pip install pytest-tipsi-django
            
        Features 
        ------------
        
        Default django test settings
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        
          - if you run pytest after install pytest-tipsi-django, 
            Configuration already has django settings.CACHE['default']
           
          - of course if you has Custom django settings, this settings to below are ignored.
        
        .. code-block:: python
            
            DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
            BROKER_BACKEND = 'memory'
            CACHES = {
                'default': {
                    'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
                    'TIMEOUT': 60 * 15
                }
            }
        
        API helpers
        ^^^^^^^^^^^
        
        There is built-in fixture ``anonymouse_client`` and you can create helpers for your users wrapping them with `pytest_tipsi_django.client_fixtures.UserWrapper`.
        
        
        It provides you usefull helpers for all request types.
        
        ``expected`` parameter in ``<METHOD>_json`` is very usefull to prevent tedious status code checks.
        
        
        .. code-block:: python
        
           from pytest_tipsi_django.client_fixtures import UserWrapper
        
           def test_00_anonymous(anonymous_client, some_url):
               query_params = {'filter': 'query'}
               body = {'param1': 'param''}
        
               anonymous_client.get_json(some_url, query_params, expected=401)
               anonymous_client.post_json(some_url, body, expected=403)
        
               json_response = anonymous_client.patch_json(some_url, body)
               anonymous_client.put_json(some_url, body)
               anonymous_client.delete_json(some_url)
        
        
           @pytest.fixture
           def user_client(user_object):
               yield UserWrapper(user_client)
        
           def test_01_authorized(user_client, some_url):
               resp_json = user_client.get_json(some_url, expected=200)
           
          
        Other fixtures
        ^^^^^^^^^^^^^^
        
        * ``debug_db_queries`` - prints performed queries
          
        
        License
        -------
        
        pytest-tipsi-django is distributed under the terms of the
        `MIT License <https://choosealicense.com/licenses/mit>`_.
        
Keywords: pytest,pytest-django,fixtures,transactions,scopes
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
