Created
January 22, 2012 13:21
-
-
Save baijum/1657059 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import time | |
import pytest | |
def pytest_configure_node(node): | |
node.slaveinput['all_nodes'] = {'a': True, 'b': True, 'c': True} | |
node.slaveinput['used_nodes'] = {} | |
def _get_browser(request): | |
def get_browser(): | |
class Browser(object): | |
node = None | |
browser = Browser() | |
if hasattr(request.config, 'slaveinput'): | |
all_nodes = request.config.slaveinput['all_nodes'] | |
used_nodes = request.config.slaveinput['used_nodes'] | |
free_nodes = set(all_nodes.keys()) - set(used_nodes.keys()) | |
node = free_nodes.pop() | |
used_nodes[node] = all_nodes[node] | |
request.config.slaveinput['used_nodes'] = used_nodes | |
browser.node = node | |
return browser | |
return get_browser | |
def _close_browser(request): | |
def close_browser(browser): | |
if hasattr(request.config, 'slaveinput'): | |
used_nodes = request.config.slaveinput['used_nodes'] | |
del used_nodes[browser.node] | |
request.config.slaveinput['used_nodes'] = used_nodes | |
return close_browser | |
def pytest_funcarg__browser(request): | |
return request.cached_setup( | |
setup=_get_browser(request), | |
teardown=_close_browser(request), | |
scope='function') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ py.test test_hello.py -d --tx 2*popen//python=python | |
==================================================================== test session starts ==================================================================== | |
platform linux2 -- Python 2.6.6 -- pytest-2.2.1 | |
gw0 [4] / gw1 [4] | |
scheduling tests via LoadScheduling | |
FFFF | |
========================================================================= FAILURES ========================================================================== | |
_________________________________________________________________________ test_one __________________________________________________________________________ | |
[gw1] linux2 -- Python 2.6.6 /home/baiju/ve/bin/python | |
browser = <conftest.Browser object at 0xb75f32cc> | |
def test_one(browser): | |
print browser.node | |
time.sleep(.5) | |
> assert browser.node == 1 | |
E assert 'a' == 1 | |
E + where 'a' = <conftest.Browser object at 0xb75f32cc>.node | |
test_hello.py:6: AssertionError | |
---------------------------------------------------------------------- Captured stdout ---------------------------------------------------------------------- | |
a | |
_________________________________________________________________________ test_two __________________________________________________________________________ | |
[gw0] linux2 -- Python 2.6.6 /home/baiju/ve/bin/python | |
browser = <conftest.Browser object at 0xb744d2cc> | |
def test_two(browser): | |
print browser.node | |
time.sleep(1) | |
> assert browser.node == 1 | |
E assert 'a' == 1 | |
E + where 'a' = <conftest.Browser object at 0xb744d2cc>.node | |
test_hello.py:11: AssertionError | |
---------------------------------------------------------------------- Captured stdout ---------------------------------------------------------------------- | |
a | |
________________________________________________________________________ test_three _________________________________________________________________________ | |
[gw1] linux2 -- Python 2.6.6 /home/baiju/ve/bin/python | |
browser = <conftest.Browser object at 0x9ccdd0c> | |
def test_three(browser): | |
print browser.node | |
time.sleep(1.5) | |
> assert browser.node == 1 | |
E assert 'a' == 1 | |
E + where 'a' = <conftest.Browser object at 0x9ccdd0c>.node | |
test_hello.py:16: AssertionError | |
---------------------------------------------------------------------- Captured stdout ---------------------------------------------------------------------- | |
a | |
_________________________________________________________________________ test_four _________________________________________________________________________ | |
[gw0] linux2 -- Python 2.6.6 /home/baiju/ve/bin/python | |
browser = <conftest.Browser object at 0xa0afb4c> | |
def test_four(browser): | |
print browser.node | |
time.sleep(1.3) | |
> assert browser.node == 1 | |
E assert 'a' == 1 | |
E + where 'a' = <conftest.Browser object at 0xa0afb4c>.node | |
test_hello.py:21: AssertionError | |
---------------------------------------------------------------------- Captured stdout ---------------------------------------------------------------------- | |
a | |
================================================================= 4 failed in 2.67 seconds ================================================================== | |
(ve) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import time | |
def test_one(browser): | |
print browser.node | |
time.sleep(.5) | |
assert browser.node == 1 | |
def test_two(browser): | |
print browser.node | |
time.sleep(1) | |
assert browser.node == 1 | |
def test_three(browser): | |
print browser.node | |
time.sleep(1.5) | |
assert browser.node == 1 | |
def test_four(browser): | |
print browser.node | |
time.sleep(1.3) | |
assert browser.node == 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment