Skip to main content

A simple Django app to add html related assertions to djangos testing classes.

Project description

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'
            )

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_html_assertions-0.1.0.tar.gz (3.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page