===============
xvfbwrapper
===============
**Manage headless displays with Xvfb (X virtual framebuffer)**
.. image:: https://travis-ci.org/cgoldberg/xvfbwrapper.svg?branch=master
:target: https://travis-ci.org/cgoldberg/xvfbwrapper
----
---------
Info:
---------
- Dev: https://github.com/cgoldberg/xvfbwrapper
- Releases: https://pypi.python.org/pypi/xvfbwrapper
- Author: `Corey Goldberg <https://github.com/cgoldberg>`_ - 2012-2016
- License: MIT
----
----------------------
About xvfbwrapper:
----------------------
xvfbwrapper is a python wrapper for controlling Xvfb.
----
---------------
About Xvfb:
---------------
Xvfb (X virtual framebuffer) is a display server implementing the X11 display server protocol. It runs in memory and does not require a physical display. Only a network layer is necessary.
Xvfb is especially useful for running acceptance tests on headless servers.
----
----------------------------------
Install xvfbwrapper from PyPI:
----------------------------------
``pip install xvfbwrapper``
----
------------------------
System Requirements:
------------------------
* Xvfb (``sudo apt-get install xvfb``, or similar)
* Python 2.7 or 3.3+
----
++++++++++++
Examples
++++++++++++
****************
Basic Usage:
****************
::
from xvfbwrapper import Xvfb
vdisplay = Xvfb()
vdisplay.start()
# launch stuff inside
# virtual display here.
vdisplay.stop()
----
*********************************************
Basic Usage, specifying display geometry:
*********************************************
::
from xvfbwrapper import Xvfb
vdisplay = Xvfb(width=1280, height=740, colordepth=16)
vdisplay.start()
# launch stuff inside
# virtual display here.
vdisplay.stop()
----
*******************************
Usage as a Context Manager:
*******************************
::
from xvfbwrapper import Xvfb
with Xvfb() as xvfb:
# launch stuff inside virtual display here.
# It starts/stops around this code block.
----
*******************************************************
Testing Example: Headless Selenium WebDriver Tests:
*******************************************************
::
import unittest
from selenium import webdriver
from xvfbwrapper import Xvfb
class TestPages(unittest.TestCase):
def setUp(self):
self.xvfb = Xvfb(width=1280, height=720)
self.addCleanup(self.xvfb.stop)
self.xvfb.start()
self.browser = webdriver.Firefox()
self.addCleanup(self.browser.quit)
def testUbuntuHomepage(self):
self.browser.get('http://www.ubuntu.com')
self.assertIn('Ubuntu', self.browser.title)
def testGoogleHomepage(self):
self.browser.get('http://www.google.com')
self.assertIn('Google', self.browser.title)
if __name__ == '__main__':
unittest.main()
The test class above uses `selenium` and `xvfbwrapper` to run each test case with Firefox inside a headless display.
* virtual display is launched
* Firefox launches inside virtual display (headless)
* browser is not shown while tests are run
* conditions are asserted in each test case
* browser quits during cleanup
* virtual display stops during cleanup
*Look Ma', no browser!*
(You can also take screenshots inside the virtual display for diagnosing test failures)
Raw data
{
"_id": null,
"home_page": "https://github.com/cgoldberg/xvfbwrapper",
"name": "xvfbwrapper",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "xvfb,virtual,display,headless,x11",
"author": "Corey Goldberg",
"author_email": "cgoldberg _at_ gmail.com",
"download_url": "https://files.pythonhosted.org/packages/57/b6/4920eabda9b49630dea58745e79f9919aba6408d460afe758bf6e9b21a04/xvfbwrapper-0.2.9.tar.gz",
"platform": "UNKNOWN",
"description": "===============\n xvfbwrapper\n===============\n\n\n**Manage headless displays with Xvfb (X virtual framebuffer)**\n\n.. image:: https://travis-ci.org/cgoldberg/xvfbwrapper.svg?branch=master\n :target: https://travis-ci.org/cgoldberg/xvfbwrapper\n\n----\n\n---------\n Info:\n---------\n\n- Dev: https://github.com/cgoldberg/xvfbwrapper\n- Releases: https://pypi.python.org/pypi/xvfbwrapper\n- Author: `Corey Goldberg <https://github.com/cgoldberg>`_ - 2012-2016\n- License: MIT\n\n----\n\n----------------------\n About xvfbwrapper:\n----------------------\n\nxvfbwrapper is a python wrapper for controlling Xvfb.\n\n----\n\n---------------\n About Xvfb:\n---------------\n\nXvfb (X virtual framebuffer) is a display server implementing the X11 display server protocol. It runs in memory and does not require a physical display. Only a network layer is necessary.\n\nXvfb is especially useful for running acceptance tests on headless servers.\n\n----\n\n\n----------------------------------\n Install xvfbwrapper from PyPI:\n----------------------------------\n\n ``pip install xvfbwrapper``\n\n----\n\n------------------------\n System Requirements:\n------------------------\n\n* Xvfb (``sudo apt-get install xvfb``, or similar)\n* Python 2.7 or 3.3+\n\n----\n\n++++++++++++\n Examples\n++++++++++++\n\n****************\n Basic Usage:\n****************\n\n::\n\n from xvfbwrapper import Xvfb\n\n vdisplay = Xvfb()\n vdisplay.start()\n\n # launch stuff inside\n # virtual display here.\n\n vdisplay.stop()\n\n----\n\n*********************************************\n Basic Usage, specifying display geometry:\n*********************************************\n\n::\n\n from xvfbwrapper import Xvfb\n\n vdisplay = Xvfb(width=1280, height=740, colordepth=16)\n vdisplay.start()\n\n # launch stuff inside\n # virtual display here.\n\n vdisplay.stop()\n\n----\n\n*******************************\n Usage as a Context Manager:\n*******************************\n\n::\n\n from xvfbwrapper import Xvfb\n\n with Xvfb() as xvfb:\n # launch stuff inside virtual display here.\n # It starts/stops around this code block.\n\n----\n\n*******************************************************\n Testing Example: Headless Selenium WebDriver Tests:\n*******************************************************\n\n::\n\n import unittest\n\n from selenium import webdriver\n from xvfbwrapper import Xvfb\n\n\n class TestPages(unittest.TestCase):\n\n def setUp(self):\n self.xvfb = Xvfb(width=1280, height=720)\n self.addCleanup(self.xvfb.stop)\n self.xvfb.start()\n self.browser = webdriver.Firefox()\n self.addCleanup(self.browser.quit)\n\n def testUbuntuHomepage(self):\n self.browser.get('http://www.ubuntu.com')\n self.assertIn('Ubuntu', self.browser.title)\n\n def testGoogleHomepage(self):\n self.browser.get('http://www.google.com')\n self.assertIn('Google', self.browser.title)\n\n\n if __name__ == '__main__':\n unittest.main()\n\n\nThe test class above uses `selenium` and `xvfbwrapper` to run each test case with Firefox inside a headless display.\n\n* virtual display is launched\n* Firefox launches inside virtual display (headless)\n* browser is not shown while tests are run\n* conditions are asserted in each test case\n* browser quits during cleanup\n* virtual display stops during cleanup\n\n*Look Ma', no browser!*\n\n(You can also take screenshots inside the virtual display for diagnosing test failures)",
"bugtrack_url": null,
"license": "MIT",
"summary": "run headless display inside X virtual framebuffer (Xvfb)",
"version": "0.2.9",
"split_keywords": [
"xvfb",
"virtual",
"display",
"headless",
"x11"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "3f3cbed698606f4b14e76ccc7b5dd366",
"sha256": "bcf4ae571941b40254faf7a73432dfc119ad21ce688f1fdec533067037ecfc24"
},
"downloads": -1,
"filename": "xvfbwrapper-0.2.9.tar.gz",
"has_sig": false,
"md5_digest": "3f3cbed698606f4b14e76ccc7b5dd366",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5575,
"upload_time": "2016-12-17T20:50:38",
"upload_time_iso_8601": "2016-12-17T20:50:38.431417Z",
"url": "https://files.pythonhosted.org/packages/57/b6/4920eabda9b49630dea58745e79f9919aba6408d460afe758bf6e9b21a04/xvfbwrapper-0.2.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2016-12-17 20:50:38",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "cgoldberg",
"github_project": "xvfbwrapper",
"travis_ci": true,
"coveralls": false,
"github_actions": false,
"tox": true,
"lcname": "xvfbwrapper"
}