-
-
Save reddypdl/09ef892a1df62ecdc77c to your computer and use it in GitHub Desktop.
This file contains hidden or 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 hidden or 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 hidden or 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