{ "info": { "author": "Alex Hayes", "author_email": "alex@commoncode.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django", "Framework :: Django :: 1.6", "Framework :: Django :: 1.7", "Framework :: Django :: 1.8", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: OS Independent", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Object Brokering", "Topic :: System :: Distributed Computing" ], "description": "=======\nGhostly\n=======\n\nLightweight API around Selenium Webdriver and helpers for end to end testing\nwith Django.\n\nThis package is alpha, the API will most likely change!\n\nIt supports Django 1.6-1.8 for Python versions 2.7, 3.3, 3.4, 3.5 and pypy (where\nthe `Django version supports said Python version `_).\n\n.. image:: https://travis-ci.org/alexhayes/ghostly.png?branch=master\n :target: https://travis-ci.org/alexhayes/ghostly\n :alt: Build Status\n\n.. image:: https://landscape.io/github/alexhayes/ghostly/master/landscape.png\n :target: https://landscape.io/github/alexhayes/ghostly/\n :alt: Code Health\n\n.. image:: https://codecov.io/github/alexhayes/ghostly/coverage.svg?branch=master\n :target: https://codecov.io/github/alexhayes/ghostly?branch=master\n :alt: Code Coverage\n\n.. image:: https://readthedocs.org/projects/ghostly/badge/\n :target: http://ghostly.readthedocs.org/en/latest/\n :alt: Documentation Status\n\n.. image:: https://img.shields.io/pypi/v/ghostly.svg\n :target: https://pypi.python.org/pypi/ghostly\n :alt: Latest Version\n\n.. image:: https://img.shields.io/pypi/pyversions/ghostly.svg\n :target: https://pypi.python.org/pypi/ghostly/\n :alt: Supported Python versions\n\n.. image:: https://img.shields.io/pypi/dd/ghostly.svg\n :target: https://pypi.python.org/pypi/ghostly/\n :alt: Downloads\n\nDocs\n----\n\nAvailable at `ghostly.readthedocs.org`_\n\n\nInstallation\n------------\n\nYou can install ghostly either via the Python Package Index (PyPI) or from\ngithub.\n\nTo install using pip;\n\n.. code-block:: bash\n\n pip install ghostly\n\nFrom github;\n\n.. code-block:: bash\n\n $ pip install git+https://github.com/alexhayes/ghostly.git\n\n\nUsage\n-----\n\nYou can use use this package outside of Django however it has limited use.\n\nEssentially there are two components, as follows;\n\n- ``Ghostly`` - A lightweight wrapper and helper methods for Selenium\n Webdriver. Presently it provides a handful of methods that utilise xpath to\n deal with a page, such as ``xpath``, ``xpath_wait`` et al.\n- ``GhostlyDjangoTestCase`` - A lightweight test case that extends\n `StaticLiveServerTestCase`_ and sets up an instance of ``Ghostly``. It\n provides methods such as ``assertCurrentUrl``, ``assertXpathEqual`` et al.\n\nGhostlyDjangoTestCase\n---------------------\n\n``GhostlyDjangoTestCase`` inherits `StaticLiveServerTestCase`_ and thus fires up\na WSGI server that handles requests.\n\nGiven you have a named URL ``home`` with a ``

Hello World

`` visible in\nthe source, you can do the following;\n\n.. code-block:: python\n\n class MyTestCase(GhostlyDjangoTestCase):\n\n def test_homepage(self):\n self.goto(reverse('home'))\n\n # Assert that an element is equal to something\n self.assertXpathEqual('//h1', 'Hello World')\n\n # Assert the current url, relative or absolute\n self.assertCurrentUrl('/home')\n\n\nWorking with SVG\n----------------\n\nTo traverse SVG with Selenium web driver you must use xpath.\n\n.. code-block:: python\n\n class MyTestCase(GhostlyDjangoTestCase):\n\n def test_homepage(self):\n self.goto(reverse('home'))\n\n # Click on an element, or example, in an SVG.\n self.ghostly.xpath_click('//*[@id=\"refresh\"]')\n\n # Assert that an Xpath is equal to something\n self.assertXpathEqual('//h2', 'Hello World')\n\n # Wait for xpath to exist\n self.ghostly.xpath_wait('//div[@id=\"something\"]')\n\n\nHistory\n-------\n\nThis package started out as a simple way to construct browser tests using YAML,\nwritten by Brenton Cleeland.\n\nThe focus of this fork is to allow the developer to write programmatic unit\ntests in the style of `unittest`_.\n\nCurrently this fork does not contain any of the CSS selector style methods that\nwere originally available as the focus has been on xpath only support until a\nmore robust CSS selector toolkit can be provided.\n\n\nLicense\n-------\n\nThis software is licensed under the `MIT License`. See the ``LICENSE``\nfile in the top distribution directory for the full license text.\n\n\nAuthor\n------\n\n- Alex Hayes \n- Brenton Cleeland \n\n.. _StaticLiveServerTestCase: https://docs.djangoproject.com/en/1.8/ref/contrib/staticfiles/#django.contrib.staticfiles.testing.StaticLiveServerTestCase\n.. _unittest: https://docs.python.org/2/library/unittest.html\n.. _ghostly.readthedocs.org: http://ghostly.readthedocs.org/en/latest/", "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/alexhayes/ghostly", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "ghostly", "package_url": "https://pypi.org/project/ghostly/", "platform": "any", "project_url": "https://pypi.org/project/ghostly/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/alexhayes/ghostly" }, "release_url": "https://pypi.org/project/ghostly/0.2.4/", "requires_dist": null, "requires_python": null, "summary": "Lightweight API around Selenium Webdriver for end to end testing with Django.", "version": "0.2.4" }, "last_serial": 2077301, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "cd1ebdbd298d7b67b72d60720f7eaca1", "sha256": "fb98814cea248643ad3ab0e626e687965a7070d095d61ca482a7be6815230ac9" }, "downloads": -1, "filename": "ghostly-0.1.0.tar.gz", "has_sig": false, "md5_digest": "cd1ebdbd298d7b67b72d60720f7eaca1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10483, "upload_time": "2015-11-30T22:33:04", "url": "https://files.pythonhosted.org/packages/33/1f/b1cc6b591b79b0247197640c42d4184000a291de57f9fb6cb27f0899d7e5/ghostly-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "6a35f4e19d60af276c08f0198dc0fba7", "sha256": "e041ae5dfb22e9ee775818ecae3fde5d72ea8c416550620ad3bf3159dac7cd01" }, "downloads": -1, "filename": "ghostly-0.2.0.tar.gz", "has_sig": false, "md5_digest": "6a35f4e19d60af276c08f0198dc0fba7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10830, "upload_time": "2015-12-01T01:15:13", "url": "https://files.pythonhosted.org/packages/76/3b/2642b87137beb57fe039e6be4529c3fe979368f1a957fd6c56bc9edcab03/ghostly-0.2.0.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "f22fe21f80ca748201d035ee02b9387e", "sha256": "624e994069d3c0a585367e5017abf1e34e8b4b834e5779cc43520f69115d31a4" }, "downloads": -1, "filename": "ghostly-0.2.2.tar.gz", "has_sig": false, "md5_digest": "f22fe21f80ca748201d035ee02b9387e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 911609, "upload_time": "2015-12-24T00:55:28", "url": "https://files.pythonhosted.org/packages/5c/6d/dea418e93c4068b4e421dbfac88b36754d0b0a8ebc32a6727150ddecdaad/ghostly-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "ff05f37617d13d56a8bf7b487ebe357d", "sha256": "d2b46874540d78a85c66eb719d76ed25530adf400cd55f727d341c45f47f37d1" }, "downloads": -1, "filename": "ghostly-0.2.3.tar.gz", "has_sig": false, "md5_digest": "ff05f37617d13d56a8bf7b487ebe357d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 911682, "upload_time": "2015-12-24T01:33:00", "url": "https://files.pythonhosted.org/packages/e6/d7/bb04f65aabdb728994cb903e1e940a5035ee2cdab8f969c70e1756034ef8/ghostly-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "3508c12d145f10e9f804695e8feb10e3", "sha256": "beb4bcd9ed2857dbbb28b20e9993e74653138c154d7a9c12b63751ebb7865ac2" }, "downloads": -1, "filename": "ghostly-0.2.4.tar.gz", "has_sig": false, "md5_digest": "3508c12d145f10e9f804695e8feb10e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 913316, "upload_time": "2016-04-22T00:50:57", "url": "https://files.pythonhosted.org/packages/c2/a6/8d92909b8c37ce451573d4aa18098beef9e0d763b02f0871a5564ff4821e/ghostly-0.2.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3508c12d145f10e9f804695e8feb10e3", "sha256": "beb4bcd9ed2857dbbb28b20e9993e74653138c154d7a9c12b63751ebb7865ac2" }, "downloads": -1, "filename": "ghostly-0.2.4.tar.gz", "has_sig": false, "md5_digest": "3508c12d145f10e9f804695e8feb10e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 913316, "upload_time": "2016-04-22T00:50:57", "url": "https://files.pythonhosted.org/packages/c2/a6/8d92909b8c37ce451573d4aa18098beef9e0d763b02f0871a5564ff4821e/ghostly-0.2.4.tar.gz" } ] }