{ "info": { "author": "Ross Patterson", "author_email": "me@rpatterson.net", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "==============================================\nbuster-selenium\n==============================================\nBuster.js Selenium and Python Test Integration\n==============================================\n\nThis package provides wrappers for the `Buster.js`_ server and test\nrunner that integrate bits of selenium to control the capture of\n`Buster slaves`_. It also provides wrappers for running Buster.js\ntests as a part of a `Python`_ test suite and further integration with\n`zope.testrunner`_ for doing test discovery and `testing layers`_ for\ncontrolling the `buster-server`_ and capturing Buster.JS browser\nslaves.\n\nManaging ``buster-server`` and Capturing Browser Slaves\n=======================================================\n\nThe ``buster_selenium.case.BusterJSTestCase`` class is a sub-class of\n`unittest.TestCase`_ and can be used to create Python test cases that\nwill run a Buster.JS test suite corresponding to one ``buster.js`` test\nconfiguration:\n\n >>> from buster_selenium import case\n >>> def suite():\n >>> suite = unittest.TestSuite()\n ... suite.addTest(\n ... case.BusterJSTestCase('/path/to/buster.js'))\n ... return suite\n\nThe test case will start ``buster-server``, launch a browser, and\ncapture a browser slave in the test ``setUp``. Then it will invoke\n``buster-test`` passing the ``buster.js`` config file and will report\nfailure if ``buster-test`` exits with a status code of ``1`` or will\nreport erro if it exits with any other non-zero status code. Finally,\nit will shutdown the browser slave and the ``buster-server``.\n\nThe ``BusterJSTestCase`` class uses a few environment variables to\ncontrol how the ``buster-test`` executable is invoked and what is done\nwith its output:\n\nBUSTER_TEST_EXECUTABLE\n If defined, the value of this will be used as the path to the\n ``buster-test`` executable to be used to run the tests. Useful if\n you're installing/building Buster.JS as a part of your\n build/deployment environment. If this variable is not defined, the\n first ``buster-test`` available on ``PATH`` will be used.\n\nBUSTER_TEST_OPTIONS\n If defined, the value of this variable will be passed to Python's\n `shlex.split`_ and passed as arguments/options to the ``buster-test``\n executable. This can be useful, for example, to use different\n `buster-test --report`_ options.\n\nBUSTER_TEST_STDOUT\n If defined, the stdout output of the ``buster-test`` executable will\n be written to this file.\n\nBUSTER_SERVER_EXECUTABLE\n Like ``BUSTER_TEST_EXECUTABLE``, if defined, the path given will be\n used as the ``buster-server`` executable. Otherwise the first\n ``buster-server`` found on ``PATH`` will be used.\n\nBUSTER_SLAVE_BROWSER_EXECUTABLE\n If defined, the executable at the path given will be invoked as a\n slave browser and captured by the ``buster-server`` previously\n started. If the ``selenium.webdriver`` package is availble, setting\n this overrides the default behavior of capturing a browser slave via\n Selenium.\n\nBUSTER_SLAVE_BROWSER_OPTIONS\n If defined, the value of this variable will be passed to Python's\n `shlex.split`_ and passed as arguments/options to the\n ``BUSTER_SLAVE_BROWSER_EXECUTABLE`` executable.\n\nBUSTER_SLAVE_SELENIUM_DRIVER\n If the ``selenium.webdriver`` package is availble and this variable is\n set, the value will be used to retrieve a Selenium driver from the\n `selenium.webdriver Python module`_. By default, ``Firefox`` is used.\n\nBUSTER_SLAVE_SELENIUM_ARGS\n If defined, the value of this variable will be passed to Python's\n `shlex.split`_ and passed as positional arguments to the\n ``selenium.webdriver`` used.\n\nBUSTER_SLAVE_SELENIUM_GRID_BROWSERNAME, BUSTER_SLAVE_SELENIUM_GRID_VERSION, BUSTER_SLAVE_SELENIUM_GRID_PLATFORM, BUSTER_SLAVE_SELENIUM_GRID_JAVASCRIPTENABLED\n If using `Selenium Grid`_ by setting\n ``BUSTER_SLAVE_SELENIUM_DRIVER=Remote`` and this variable defined,\n these values will be used to modify the values for the\n ``browserName``, ``version``, ``platform``, and ``javascriptEnabled`` keys\n in the ``selenium.webdriver.DesiredCapabilities`` dictionaries. This\n is useful to run your buster tests against different OS's, browsers,\n and versions.\n\nBuster.JS Test Discovery\n========================\n\nThe ``buster-selenium`` package provides a ``buster-testrunner`` console\nscript which adds discovery of Buster.JS tests to the\n`zope.testrunner`_ support for `automatically finding tests`_\nthroughout a project. In particular, it will create test suites from\nany directory under a valid ``buster-testrunner --test-path`` that has a\n``buster.js`` file::\n\n $ buster-testrunner --test-path=/path/to/project/module --test-path=/path/to/project/other-module\n\nSee the `zope.testrunner`_ docs or ``buster-testrunner --help`` for more\ndetails on controlling test discovery and which tests are run.\n\nSharing ``buster-server`` and Browser Slave Capture Between Tests\n=================================================================\n\nThe ``buster_selenium.layer`` module uses ``zope.testrunner`` support for\n`testing layers`_ to start ``buster-server``, launch a browser, and\ncapture a browser slave and use those for all ``buster-test`` runs when\nthe tests are run with ``buster-testrunner``. This can help speed up\nthe running of multiple Buster.JS test suites while still providing\nclean mangement of the ``buster-server`` and captured browser slaves.\nThese layers are used automatically when using the test discovery\ndescribed above.\n\nManaging Browser Slaves with Selenium Webdriver\n===============================================\n\nIf the selenium Python package is available, by default the\n``BusterJSTestCase`` and testing layer support described above will\nuse `selenium.webdriver`_ to open, capture, and clean up a browser\nslave. The way that ``selenium.webdriver`` launches browsers provides\nan additional degree of isolation from user extensions, profiles,\nthemes, and other add-ons and provides greater isolation for Buster.JS\ntests.\n\n\n.. _Buster.js: http://busterjs.org/\n.. _Buster slaves: http://busterjs.org/docs/capture-server/\n.. _Python: http://python.org\n.. _zope.testrunner: http://pypi.python.org/pypi/zope.testrunner\n.. _testing layers: http://pypi.python.org/pypi/zope.testrunner#layers\n.. _buster-server: http://busterjs.org/docs/server-cli/\n.. _unittest.TestCase: http://docs.python.org/library/unittest.html#unittest.TestCase\n.. _automatically finding tests: http://pypi.python.org/pypi/zope.testrunner#test-runner\n.. _selenium.webdriver: http://seleniumhq.org/docs/03_webdriver.html\n.. _shlex.split: http://docs.python.org/library/shlex.html#shlex.split\n.. _buster-test --report: http://busterjs.org/docs/test/reporters\n.. _selenium.webdriver Python module: http://seleniumhq.org/docs/03_webdriver.html#selenium-webdriver-s-drivers\n.. _Selenium Grid: http://selenium-grid.seleniumhq.org/\n\n\nChangelog\n=========\n\n0.1 - 2012-09-23\n----------------\n\n* Initial release", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/plone/buster-selenium", "keywords": "buster selenium js javascript ecmascript", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "buster-selenium", "package_url": "https://pypi.org/project/buster-selenium/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/buster-selenium/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/plone/buster-selenium" }, "release_url": "https://pypi.org/project/buster-selenium/0.1/", "requires_dist": null, "requires_python": null, "summary": "Manage buster.js slave browsers using selenium.", "version": "0.1" }, "last_serial": 787139, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "dfbf6fb6058ffcab508b3f7458bceaf5", "sha256": "1a1e877659613530787ff503dbefb0ae6ecc63502bf3d6260177a60e18c33721" }, "downloads": -1, "filename": "buster-selenium-0.1.tar.gz", "has_sig": false, "md5_digest": "dfbf6fb6058ffcab508b3f7458bceaf5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7529, "upload_time": "2012-09-24T03:55:11", "url": "https://files.pythonhosted.org/packages/d0/70/20db49de7a54a553f2d2cef8b25e995cf0e4cfe3c0621a852e488d61c4fb/buster-selenium-0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dfbf6fb6058ffcab508b3f7458bceaf5", "sha256": "1a1e877659613530787ff503dbefb0ae6ecc63502bf3d6260177a60e18c33721" }, "downloads": -1, "filename": "buster-selenium-0.1.tar.gz", "has_sig": false, "md5_digest": "dfbf6fb6058ffcab508b3f7458bceaf5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7529, "upload_time": "2012-09-24T03:55:11", "url": "https://files.pythonhosted.org/packages/d0/70/20db49de7a54a553f2d2cef8b25e995cf0e4cfe3c0621a852e488d61c4fb/buster-selenium-0.1.tar.gz" } ] }