Metadata-Version: 1.0
Name: django_csv_tests
Version: 0.1.3
Summary: This allows you to use a spreadsheet to define Django units tests that make requests to the Django testing client.
Home-page: https://github.com/enricobarzetti/django_csv_tests
Author: Enrico Barzetti
Author-email: enricobarzetti@gmail.com
License: The MIT License
Description: Django CSV Tests
        ================
        
        This allows you to use a spreadsheet to define Django units tests that make requests to the Django testing client.  Inspired by Robot Framework.
        
        Installation
        ------------
        
        To get the latest stable release from PyPi
        
        .. code-block:: bash
        
            pip install django_csv_tests
        
        Install the app
        
        .. code-block:: python
        
            INSTALLED_APPS = (
                ...,
                'django_csv_tests',
            )
        
        Usage
        -----
        
        Create a CSV file with the headers "test name", "expect failure", "login as",
        "url", "method", "querystring", "post body", "expect status",
        "expect header".  Then create a test file like:
        
        .. code-block:: python
        
            import os
        
            from django.contrib.auth import get_user_model
            from django.test import TestCase
        
            from django_csv_tests import generate_tests
        
        
            class TheTestCase(TestCase):
                def setUp(self):
                    self.user = get_user_model().objects.create_user(username='john.doe',
                                                                     email='john@doe.com',
                                                                     password='password')
        
        
            csv_path = os.path.join(os.path.dirname(__file__), 'tests.csv')
            generate_tests(csv_path, TheTestCase)
        
        You can define tests as a sequence of requests with associated assertions.  A
        test is defined with a test name and one or more rows that describe requests to
        make.  If a row does not have a test name it indicates that the request defined
        on that row is part of the last named test.
        
        Column values
        +++++++++++++
        
        test name
        ~~~~~~~~~
        
        A string used to name the test.
        
        expect failure
        ~~~~~~~~~~~~~~
        
        A boolean used to indicated whether the test is expected to fail.  Any non-zero
        length string indicates True.  An easy way is enter this in a spreadsheet is as
        "x".
        
        login as
        ~~~~~~~~
        
        A JSON encoded string that provides the username and password of the user to log
        in as.  This is passed as keyword arguments to
        django.contrib.auth.authenticate().  Example: {"username": "john.doe",
        "password": "password"}.
        
        url
        ~~~
        
        The URL that the request should be made to.
        
        method
        ~~~~~~
        
        An HTTP method.  GET and POST are supported.
        
        querystring
        ~~~~~~~~~~~
        
        A JSON encoded string that contains querystring keys and values.  This becomes
        ``request.GET``.
        
        post body
        ~~~~~~~~~
        
        A JSON encoded string that contains data to submit in a POST request.  This is
        used only if the method is POST.  This becomes ``request.POST``.
        
        expect status
        ~~~~~~~~~~~~~
        
        The HTTP status code expected for the response.
        
        expect header
        ~~~~~~~~~~~~~
        
        A JSON encoded string that contains header keys and values expected in the
        response.  Example: A redirect response could have the header
        {"Location": "http://testserver/new_location/"}
        
        Todo
        ----
        
        - Implement "expect context", "expect session", and "expect" directives.
        
        Run Tests
        ---------
        
        .. code-block:: bash
        
            ./configure.sh
            source venv/bin/activate
            python django_csv_tests/tests/manage.py test
        
Keywords: django
Platform: OS Independent
