This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Adds selenium testing support to your nose test suite.

To use, run nosetests with the --with-selenium flag.

Why use Selenium?

Selenium is a portable testing framework for web applications. It allows you to write tests that run in the browser to test your user interface and javascript code that is not available through the usual testing channels. See the examples below to get a clearer impression of what selenium tests can provide.

django-nose-selenium allows you to write and run selenium tests the same way as usual django unit tests.

Requirements

The plugin expects that you have configured the django-nose app. In a nutshell, this is done by running pip install django-nose, adding django_nose to INSTALLED_APPS and setting TEST_RUNNER to django_nose.NoseTestSuiteRunner in the settings.py.

Installation

From PyPI:

pip install django-nose-selenium

In-development version via Pip:

pip install django-nose-selenium==dev

Directly from Git:

pip install -e
git://github.com/weluse/django-nose-selenium.git#egg=django-nose-selenium

Django Settings

The plugin supports the following settings:

  • SELENIUM_HOST, default: 127.0.0.1
  • SELENIUM_PORT, default: 4444
  • SELENIUM_BROWSER_COMMAND, default: chrome
  • SELENIUM_URL_ROOT, default: http://127.0.0.1:8000
  • FORCE_SELENIUM_TESTS, default: False. By default, SocketErrors cause the tests to be skipped. This options causes the tests to fail when the Selenium server is unavailable.

Usage

Define the class variable selenium_test = True in your nose test class. You can use self.selenium to access a selenium instance with the given options:

class TestSelenium(TestCase):

    selenium_test = True

    def test_start(self):
        """Tests the start page."""

        self.selenium.open("/")

To run this test, you have to pass the option --with-selenium to the Django management command test:

python manage.py test --with-selenium

Alternatively, django-nose-selenium provides a mixin that has the benefit of raising a SkipTest exception if the plugin was not loaded and the selenium attribute is accessed:

from noseselenium.cases import SeleniumTestCaseMixin


class TestSelenium(TestCase, SeleniumTestCaseMixin):

    def test_start(self):
        """Tests the start page."""

        self.selenium.open("/")

Fixtures

The default fixtures of django are run in transactions and not available to a live testing server, therefore noseselenium provides an option to load and commit fixtures to the database automatically. Please note that there’s no automatic rollback, so the data will stay in your test database for the rest of the run if you don’t provide a custom teardown strategy.

from noseselenium.cases import SeleniumTestCaseMixin


class TestUserLogin(TestCase, SeleniumTestCaseMixin):

    selenium_fixtures = ['user_data.json']

    def tearDown(self):
        # Remove data from user_data.json

    def test_login(self):
        """Tests the login page."""

        sel = self.selenium
        sel.open("/login/")
        sel.type("id_username", "pascal")
        sel.type("id_password", "iwantapony")
        sel.click("//form[@id='myform']/p/button")
        sel.wait_for_page_to_load(5000)
        self.failUnless(self.is_text_present("Hello, Pascal!"))

To enable selenium fixtures, nosetests must be called with the additional --with-selenium-fixtures flag.

Liveserver

noseselenium provides expiremental support for running a live server that Selenium can connect to. Currently, there’s a threaded server that reuses django’s development webserver and a cherrypy implementation. It’s recommended you use the cherrypy one as the django devserver is certainly not designed to run in a multi-threaded environment.

The liveserver plugin introduces two new configuration options:

  • LIVE_SERVER_ADDRESS, defaults to 0.0.0.0
  • LIVE_SERVER_PORT, defaults to 8080
  • LIVE_SERVER_STATIC, boolean that defaults to True. If enabled, the live server enables serving of static files via the django.contrib.staticfiles app.

These should match your Selenium Settings.

To start the liveserver, nosetest is called with either the --with-djangoliveserver or preferably the --with-cherrypyliveserver flag.

Release History

Release History

0.7.3

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.7.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.7.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.7

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
django-nose-selenium-0.7.3.tar.gz (26.8 kB) Copy SHA256 Checksum SHA256 Source Aug 15, 2011

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting