From 04e25f7f80b3c6c6b413fb7619cc34b6cc3549cc Mon Sep 17 00:00:00 2001 From: zephraph Date: Sat, 25 Jul 2015 00:16:45 -0500 Subject: [PATCH 1/9] Added saucelabs config to travis --- .travis.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3125407a4..e4e144ca9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,5 +20,10 @@ script: env: matrix: - BROWSER=firefox - #- BROWSER=ie # will be added when we have completed SauceLabs CI - #- BROWSER=safari # will be added after #247 merged + - BROWSER=ie # will be added when we have completed SauceLabs CI + - BROWSER=safari # will be added after #247 merged + global: + - secure: JL3yH6vGVspkmKmXXmKLFXElam1SM3MBKD92CohdJA31WERVWjIJex1veOUKCPVqEBI+H+tXa93LQ8qy+/Ewm/p9XNUc+XUwuLArlgxKlG4k9pFPJr1uUUF8F9CYsP7m7PcPFO4hkn/Kzpq5wxFFMfLM7vXwaqpQSzxJqNxBEQE= + - secure: Ko4lJSVDhkoS9mjIp4TgQnExTCoW+56/6EgYzxx1fwFgmMMVkxIH09Q0bJRgZhA2xbF/xP9jMAKZXGIaKbbxjagkqYc9AhuaCiF7vUohqZV6I6bpZmtKWIuWgC8Gnx6hwVn5bU7t444y789TmLp0cZlGCNiVfBwriveNGNvBxw0= +addons: + sauce_connect: true From 2e70bef092c3cf1ad151459c669241323179d034 Mon Sep 17 00:00:00 2001 From: zephraph Date: Sat, 25 Jul 2015 01:31:25 -0500 Subject: [PATCH 2/9] Set travis to use saucelabs remote url --- .travis.yml | 2 +- test/run_tests.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e4e144ca9..9b3f9eb43 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,7 +16,7 @@ before_script: - "sh -e /etc/init.d/xvfb start" script: - "firefox --version" - - "python test/run_tests.py python $BROWSER --noncritical known_issue_-_travisci" + - "python test/run_tests.py python $BROWSER" env: matrix: - BROWSER=firefox diff --git a/test/run_tests.py b/test/run_tests.py index ac7f69c8c..f144d5070 100755 --- a/test/run_tests.py +++ b/test/run_tests.py @@ -13,6 +13,8 @@ '--outputdir', '%(outdir)s', '--variable', 'browser:%(browser)s', '--variable', 'pyversion:%(pyVersion)s', + '--variable', 'SAUCE_USER_NAME:%(sauceUserName)s', + '--variable', 'SAUCE_ACCESS_KEY:%(sauceAccessKey)s', '--escape', 'space:SP', '--report', 'none', '--log', 'none', @@ -36,6 +38,12 @@ def acceptance_tests(interpreter, browser, args): ARG_VALUES['browser'] = browser.replace('*', '') ARG_VALUES['pyVersion'] = interpreter + sys.version[:3] + ARG_VALUES['sauceUserName'] = env.SAUCE_USER_NAME + ARG_VALUES['sauceAccessKey'] = env.SAUCE_ACCESS_KEY + if env.TRAVIS: + args = ['--noncritical known_issue_-_travisci'] + + ['--variable REMOTE_URL:http://%s:%s@ondemand.saucelabs.com:80/wd/hub' % (env.SAUCE_USER_NAME, env.SAUCE_ACCESS_KEY)] + + args start_http_server() runner = {'python': 'pybot', 'jython': 'jybot', 'ipy': 'ipybot'}[interpreter] if os.sep == '\\': From 39146d82bdf7661f58c128c43a7252505ee5ee29 Mon Sep 17 00:00:00 2001 From: zephraph Date: Sat, 25 Jul 2015 01:41:23 -0500 Subject: [PATCH 3/9] Fix broken args --- test/run_tests.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test/run_tests.py b/test/run_tests.py index f144d5070..c3d32125c 100755 --- a/test/run_tests.py +++ b/test/run_tests.py @@ -41,9 +41,8 @@ def acceptance_tests(interpreter, browser, args): ARG_VALUES['sauceUserName'] = env.SAUCE_USER_NAME ARG_VALUES['sauceAccessKey'] = env.SAUCE_ACCESS_KEY if env.TRAVIS: - args = ['--noncritical known_issue_-_travisci'] + - ['--variable REMOTE_URL:http://%s:%s@ondemand.saucelabs.com:80/wd/hub' % (env.SAUCE_USER_NAME, env.SAUCE_ACCESS_KEY)] + - args + ROBOT_ARGS += ['--noncritical known_issue_-_travisci'] + ROBOT_ARGS += ['--variable REMOTE_URL:http://%(sauceUserName)s:%(sauceAccessName)s@ondemand.saucelabs.com:80/wd/hub'] start_http_server() runner = {'python': 'pybot', 'jython': 'jybot', 'ipy': 'ipybot'}[interpreter] if os.sep == '\\': From 702b8c2593f20dd041240fc3458ca0de79d009f4 Mon Sep 17 00:00:00 2001 From: zephraph Date: Sat, 25 Jul 2015 01:52:39 -0500 Subject: [PATCH 4/9] Add proper env variable references --- test/env.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/env.py b/test/env.py index efc6c4148..fb2295301 100755 --- a/test/env.py +++ b/test/env.py @@ -10,6 +10,9 @@ RESULTS_DIR = os.path.join(ROOT_DIR, "results") HTTP_SERVER_FILE = os.path.join(RESOURCES_DIR, 'testserver', 'testserver.py') SRC_DIR = os.path.join(ROOT_DIR, "..", "src") +TRAVIS = os.environ.get('TRAVIS') +SAUCE_USER_NAME = os.environ.get('SAUCE_USER_NAME') +SAUCE_ACCESS_KEY = os.environ.get('SAUCE_ACCESS_KEY') sys.path.insert(0, SRC_DIR) sys.path.append(LIB_DIR) From 5c57a35c468bd061c0a8bb162994034a742ff879 Mon Sep 17 00:00:00 2001 From: zephraph Date: Sat, 25 Jul 2015 02:06:30 -0500 Subject: [PATCH 5/9] Fix variable issues --- test/run_tests.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/run_tests.py b/test/run_tests.py index c3d32125c..4146e51e7 100755 --- a/test/run_tests.py +++ b/test/run_tests.py @@ -41,8 +41,8 @@ def acceptance_tests(interpreter, browser, args): ARG_VALUES['sauceUserName'] = env.SAUCE_USER_NAME ARG_VALUES['sauceAccessKey'] = env.SAUCE_ACCESS_KEY if env.TRAVIS: - ROBOT_ARGS += ['--noncritical known_issue_-_travisci'] - ROBOT_ARGS += ['--variable REMOTE_URL:http://%(sauceUserName)s:%(sauceAccessName)s@ondemand.saucelabs.com:80/wd/hub'] + ROBOT_ARGS.extend(['--noncritical', 'known_issue_-_travisci']) + ROBOT_ARGS.extend(['--variable', 'REMOTE_URL:http://%(sauceUserName)s:%(sauceAccessKey)s@ondemand.saucelabs.com:80/wd/hub']) start_http_server() runner = {'python': 'pybot', 'jython': 'jybot', 'ipy': 'ipybot'}[interpreter] if os.sep == '\\': From 921adb34749e75fb1fb021fb764144971080bcc4 Mon Sep 17 00:00:00 2001 From: zephraph Date: Thu, 13 Aug 2015 21:55:59 -0500 Subject: [PATCH 6/9] Fix typo'd env var MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit t’was suppose to be SAUCE_USERNAME. oos. --- test/env.py | 2 +- test/run_tests.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/env.py b/test/env.py index fb2295301..2ff978d95 100755 --- a/test/env.py +++ b/test/env.py @@ -11,7 +11,7 @@ HTTP_SERVER_FILE = os.path.join(RESOURCES_DIR, 'testserver', 'testserver.py') SRC_DIR = os.path.join(ROOT_DIR, "..", "src") TRAVIS = os.environ.get('TRAVIS') -SAUCE_USER_NAME = os.environ.get('SAUCE_USER_NAME') +SAUCE_USERNAME = os.environ.get('SAUCE_USERNAME') SAUCE_ACCESS_KEY = os.environ.get('SAUCE_ACCESS_KEY') sys.path.insert(0, SRC_DIR) diff --git a/test/run_tests.py b/test/run_tests.py index 4146e51e7..64b07e599 100755 --- a/test/run_tests.py +++ b/test/run_tests.py @@ -38,7 +38,7 @@ def acceptance_tests(interpreter, browser, args): ARG_VALUES['browser'] = browser.replace('*', '') ARG_VALUES['pyVersion'] = interpreter + sys.version[:3] - ARG_VALUES['sauceUserName'] = env.SAUCE_USER_NAME + ARG_VALUES['sauceUserName'] = env.SAUCE_USERNAME ARG_VALUES['sauceAccessKey'] = env.SAUCE_ACCESS_KEY if env.TRAVIS: ROBOT_ARGS.extend(['--noncritical', 'known_issue_-_travisci']) From 467371d0f506157bf782af099ea80c294c069b2a Mon Sep 17 00:00:00 2001 From: zephraph Date: Thu, 13 Aug 2015 21:57:41 -0500 Subject: [PATCH 7/9] Missed one! --- test/run_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/run_tests.py b/test/run_tests.py index 64b07e599..1340a0aa6 100755 --- a/test/run_tests.py +++ b/test/run_tests.py @@ -13,7 +13,7 @@ '--outputdir', '%(outdir)s', '--variable', 'browser:%(browser)s', '--variable', 'pyversion:%(pyVersion)s', - '--variable', 'SAUCE_USER_NAME:%(sauceUserName)s', + '--variable', 'SAUCE_USERNAME:%(sauceUserName)s', '--variable', 'SAUCE_ACCESS_KEY:%(sauceAccessKey)s', '--escape', 'space:SP', '--report', 'none', From e6fff7659cb1fab8900758624f40a236ee861ba4 Mon Sep 17 00:00:00 2001 From: zephraph Date: Thu, 13 Aug 2015 22:18:29 -0500 Subject: [PATCH 8/9] Added tunnel identifier Sauce labs needed a tunnel identifier to allow multiple sauce connect connections to be open at once. --- test/acceptance/resource.robot | 3 ++- test/env.py | 1 + test/run_tests.py | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/test/acceptance/resource.robot b/test/acceptance/resource.robot index 2c9b63e0e..3284832de 100644 --- a/test/acceptance/resource.robot +++ b/test/acceptance/resource.robot @@ -7,7 +7,8 @@ Library OperatingSystem ${SERVER} localhost:7000 ${BROWSER} firefox ${REMOTE_URL} ${NONE} -${DESIRED_CAPABILITIES} ${NONE} +${TUNNEL_IDENTIFIER} ${NONE} +${DESIRED_CAPABILITIES} tunnel-identifier=${TUNNEL_IDENTIFIER} ${ROOT} http://${SERVER}/html ${FRONT PAGE} ${ROOT}/ ${SPEED} 0 diff --git a/test/env.py b/test/env.py index 2ff978d95..2c97ec399 100755 --- a/test/env.py +++ b/test/env.py @@ -11,6 +11,7 @@ HTTP_SERVER_FILE = os.path.join(RESOURCES_DIR, 'testserver', 'testserver.py') SRC_DIR = os.path.join(ROOT_DIR, "..", "src") TRAVIS = os.environ.get('TRAVIS') +TRAVIS_JOB_NUMBER = os.environ.get('TRAVIS_JOB_NUMBER') SAUCE_USERNAME = os.environ.get('SAUCE_USERNAME') SAUCE_ACCESS_KEY = os.environ.get('SAUCE_ACCESS_KEY') diff --git a/test/run_tests.py b/test/run_tests.py index 1340a0aa6..7d84f7b0e 100755 --- a/test/run_tests.py +++ b/test/run_tests.py @@ -40,9 +40,11 @@ def acceptance_tests(interpreter, browser, args): ARG_VALUES['pyVersion'] = interpreter + sys.version[:3] ARG_VALUES['sauceUserName'] = env.SAUCE_USERNAME ARG_VALUES['sauceAccessKey'] = env.SAUCE_ACCESS_KEY + ARG_VALUES['travisJobNumber'] = env.TRAVIS_JOB_NUMBER if env.TRAVIS: ROBOT_ARGS.extend(['--noncritical', 'known_issue_-_travisci']) ROBOT_ARGS.extend(['--variable', 'REMOTE_URL:http://%(sauceUserName)s:%(sauceAccessKey)s@ondemand.saucelabs.com:80/wd/hub']) + ROBOT_ARGS.extend(['--variable', 'TUNNEL_IDENTIFIER:%(travisJobNumber)s']) start_http_server() runner = {'python': 'pybot', 'jython': 'jybot', 'ipy': 'ipybot'}[interpreter] if os.sep == '\\': From b091c9634d453c06cb65980549ac4425e01a1527 Mon Sep 17 00:00:00 2001 From: zephraph Date: Thu, 13 Aug 2015 22:40:10 -0500 Subject: [PATCH 9/9] Build desired capabilities I had incorrectly built out the desired capabilities. I added a new keyword in the test resources file to automatically build it out on browser open. --- test/acceptance/resource.robot | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/acceptance/resource.robot b/test/acceptance/resource.robot index 3284832de..5a1f232bf 100644 --- a/test/acceptance/resource.robot +++ b/test/acceptance/resource.robot @@ -8,7 +8,7 @@ ${SERVER} localhost:7000 ${BROWSER} firefox ${REMOTE_URL} ${NONE} ${TUNNEL_IDENTIFIER} ${NONE} -${DESIRED_CAPABILITIES} tunnel-identifier=${TUNNEL_IDENTIFIER} +${DESIRED_CAPABILITIES} ${NONE} ${ROOT} http://${SERVER}/html ${FRONT PAGE} ${ROOT}/ ${SPEED} 0 @@ -23,6 +23,7 @@ Open Browser To Start Page Open Browser To Start Page Without Testing Default Options [Documentation] Open Browser To Start Page Without Testing Default Options + Set Desired Capabilities Open Browser ${FRONT PAGE} ${BROWSER} remote_url=${REMOTE_URL} ... desired_capabilities=${DESIRED_CAPABILITIES} ${orig speed} = Set Selenium Speed ${SPEED} @@ -33,6 +34,7 @@ Open Browser To Start Page And Test Implicit Wait [Arguments] ${implicit_wait} [Documentation] This keyword tests that 'Set Selenium Implicit Wait' and ... 'Get Selenium Implicit Wait' work as expected + Set Desired Capabilities Should Not Be Equal 0 ${implicit_wait} ... Please do not pass in a value of 0 for the implicit wait argument for this function ${old_wait}= Set Selenium Implicit Wait ${implicit_wait} @@ -71,3 +73,8 @@ Set ${level} Loglevel Verify Location Is "${relative url}" [Documentation] Verifies location Location Should Be ${ROOT}/${relative url} + +Set Desired Capabilities + [Documentation] Builds the DESIRED_CAPABILITIES dictionary + ${capabilities}= Create Dictionary tunnel-identifier=${TUNNEL_IDENTIFIER} + Set Global Variable ${DESIRED_CAPABILITIES} ${capabilities}