Browse Source

Merge pull request #9 from cgoldberg/new-stuff

drop python 2.6 support and other fixes
master
Corey Goldberg 6 years ago
parent
commit
694fe897e9
  1. 8
      .travis.yml
  2. 6
      README.rst
  3. 17
      tox.ini
  4. 9
      xvfbwrapper.py

8
.travis.yml

@ -1,12 +1,12 @@
language: python
python:
- "2.6"
- "2.7"
- "3.2"
- "3.3"
- "3.4"
- "3.5"
before_install:
- sudo apt-get update -qq
- sudo apt-get install -y xvfb
script: nosetests
- "sudo apt-get update -qq"
- "sudo apt-get install -y xvfb"
script:
- "python -m unittest discover"

6
README.rst

@ -2,6 +2,8 @@
xvfbwrapper
===============
https://travis-ci.org/cgoldberg/xvfbwrapper.svg?branch=master
Python wrapper for running a display inside X virtual framebuffer (Xvfb). This is useful for running acceptance tests (i.e. browser-based tests) on a headless server.
* Dev: https://github.com/cgoldberg/xvfbwrapper
@ -24,7 +26,7 @@ Install xvfbwrapper from PyPI::
***********************
* Xvfb (`sudo apt-get install xvfb`, or similar)
* Python 2.7 or 3.2+ (tested on py27, py32, py33, py34, pypy)
* Python 2.7 or 3.2+ (tested on py27, py32, py33, py34, 3.5, pypy)
**************************************
About Xvfb (X Virtual Framebuffer)
@ -108,7 +110,7 @@ In the X Window System, Xvfb or X Virtual FrameBuffer is an X11 server that perf
if __name__ == '__main__':
unittest.main(verbosity=2)
This code uses `selenium` and `xvfbwrapper` to run a test with Firefox inside a headless display.
This above code uses `selenium` and `xvfbwrapper` to run a test with Firefox inside a headless display. It will:
* install selenium bindings: `pip install selenium`
* Firefox will launch inside virtual display (headless)

17
tox.ini

@ -4,20 +4,11 @@
# and then run "tox" from this directory.
[tox]
envlist = flake8, py27, py32, py33, py34, pypy
[flake8]
exclude = .tox, build
envlist=flake8,py27,py32,py33,py34,py35,pypy
[testenv]
deps =
nose
commands =
{envpython} setup.py install
nosetests -v
commands={envpython} -m unittest discover
[testenv:flake8]
deps =
flake8
commands =
flake8
deps=flake8
commands=flake8

9
xvfbwrapper.py

@ -47,11 +47,10 @@ class Xvfb:
def start(self):
self.vdisplay_num = self.search_for_free_display()
self.xvfb_cmd = ['Xvfb', ':%d' % self.vdisplay_num] + self.xvfb_cmd
self.proc = subprocess.Popen(self.xvfb_cmd,
stdout=open(os.devnull),
stderr=open(os.devnull),
)
with open(os.devnull, 'w') as fnull:
self.proc = subprocess.Popen(self.xvfb_cmd,
stdout=fnull,
stderr=fnull)
time.sleep(0.2) # give Xvfb time to start
ret_code = self.proc.poll()
if ret_code is None:

Loading…
Cancel
Save