django_html_assertions 0.1.0
A simple Django app to add html related assertions to djangos testing classes.
License: MIT
Keywords: django

Html assertions
===============

Html assertions is a simple django testing mixin that makes it possible to assert that a given block of html contains a tag (optionally with a given class) that also contains the specified textual content.

``pip install django_html_assertions``

Usage
-----

To use the new test assertion methods all you need to do is mix the mixin into your test suite.  You're then ready to go.

::

    from django.test import TestCase

    from django_html_assertions.mixins import HTMLContainsMixin


    TEST_HTML = """
    <html>
        <body>
            <p class="odd">Item 1</p>
            <p class="even">Item 2</p>
            <p class="odd">Item 3</p>
        </body>
    </html>
    """


    class HTMLContainsMixinTestCase(HTMLContainsMixin, TestCase):
        """
        Tests the test class mixin
        """
        def test_assert_html_tag_contains_valid(self):
            """
            The method should not raise an exception
            """
            self.assertHTMLTagContains(
                TEST_HTML,
                'Item 1',
                'p'
            )

        def test_assert_html_tag_contains_valid_with_class(self):
            """
            The method should not raise an exception
            """
            self.assertHTMLTagContains(
                TEST_HTML,
                'Item 1',
                'p',
                tag_class='odd'
            )

        def test_assert_html_tag_contains_invalid(self):
            """
            The method should raise an exception
            """
            with self.assertRaises(AssertionError):
                self.assertHTMLTagContains(
                    TEST_HTML,
                    'Item 10',
                    'p'
                )

        def test_assert_html_tag_contains_invalid_with_class(self):
            """
            The method should not raise an exception
            """
            with self.assertRaises(AssertionError):
                self.assertHTMLTagContains(
                    TEST_HTML,
                    'Item 1',
                    'p',
                    tag_class='even'
                )

        def test_assert_html_tag_not_contains_valid(self):
            """
            The method should not raise an exception
            """
            self.assertHTMLTagNotContains(
                TEST_HTML,
                'Item 10',
                'p'
            )

        def test_assert_html_tag_not_contains_valid_with_class(self):
            """
            The method should not raise an exception
            """
            self.assertHTMLTagNotContains(
                TEST_HTML,
                'Item 1',
                'p',
                tag_class='even'
            )

        def test_assert_html_tag_not_contains_invalid(self):
            """
            The method should raise an exception
            """
            with self.assertRaises(AssertionError):
                self.assertHTMLTagNotContains(
                    TEST_HTML,
                    'Item 1',
                    'p'
                )

        def test_assert_html_tag_not_contains_invalid_with_class(self):
            """
            The method should not raise an exception
            """
            with self.assertRaises(AssertionError):
                self.assertHTMLTagNotContains(
                    TEST_HTML,
                    'Item 1',
                    'p',
                    tag_class='odd'
                )