Make Sauce download the prerun script and Ahem over the tunnel
diff --git a/tools/serve/serve.py b/tools/serve/serve.py
index fb6675d..b2093d9 100644
--- a/tools/serve/serve.py
+++ b/tools/serve/serve.py
@@ -203,7 +203,8 @@
def __init__(self):
self.forbidden_override = [("GET", "/tools/runner/*", handlers.file_handler),
("POST", "/tools/runner/update_manifest.py",
- handlers.python_script_handler)]
+ handlers.python_script_handler),
+ ("GET", "/tools/wptrunner/wptrunner/browsers/sauce_setup/*", handlers.file_handler)]
self.forbidden = [("*", "/_certs/*", handlers.ErrorHandler(404)),
("*", "/tools/*", handlers.ErrorHandler(404)),
diff --git a/tools/wptrunner/wptrunner/browsers/sauce.py b/tools/wptrunner/wptrunner/browsers/sauce.py
index 9ae2f7e..0f91b57 100644
--- a/tools/wptrunner/wptrunner/browsers/sauce.py
+++ b/tools/wptrunner/wptrunner/browsers/sauce.py
@@ -39,13 +39,15 @@
build = kwargs["sauce_build"]
tags = kwargs["sauce_tags"]
tunnel_id = kwargs["sauce_tunnel_id"]
+ base_url = "http://%s:%d/tools/wptrunner/wptrunner/browsers/sauce_setup/" % \
+ (kwargs.config.domains[""], kwargs.config.ports["http"][0])
prerun_script = {
"MicrosoftEdge": {
- "executable": "sauce-storage:edge-prerun.bat",
+ "executable": base_url + "edge-prerun.sub.bat",
"background": False,
},
"safari": {
- "executable": "sauce-storage:safari-prerun.sh",
+ "executable": base_url + "safari-prerun.sub.sh",
"background": False,
}
}
@@ -103,7 +105,7 @@
executor_kwargs = base_executor_kwargs(test_type, server_config,
cache_manager, **kwargs)
- executor_kwargs["capabilities"] = get_capabilities(**kwargs)
+ executor_kwargs["capabilities"] = get_capabilities(config=server_config, **kwargs)
return executor_kwargs
@@ -154,9 +156,6 @@
get_tar("https://saucelabs.com/downloads/sc-4.4.9-linux.tar.gz", self.temp_dir)
self.sauce_connect_binary = glob.glob(os.path.join(self.temp_dir, "sc-*-linux/bin/sc"))[0]
- self.upload_prerun_exec('edge-prerun.bat')
- self.upload_prerun_exec('safari-prerun.sh')
-
self.sc_process = subprocess.Popen([
self.sauce_connect_binary,
"--user=%s" % self.sauce_user,
@@ -201,13 +200,6 @@
except OSError:
pass
- def upload_prerun_exec(self, file_name):
- auth = (self.sauce_user, self.sauce_key)
- url = "https://saucelabs.com/rest/v1/storage/%s/%s?overwrite=true" % (self.sauce_user, file_name)
-
- with open(os.path.join(here, 'sauce_setup', file_name), 'rb') as f:
- requests.post(url, data=f, auth=auth)
-
class SauceException(Exception):
pass
diff --git a/tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.bat b/tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.sub.bat
similarity index 81%
rename from tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.bat
rename to tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.sub.bat
index 9d0878e..ab6e973 100644
--- a/tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.bat
+++ b/tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.sub.bat
@@ -5,5 +5,5 @@
REM Download and install the Ahem font
REM - https://wiki.saucelabs.com/display/DOCS/Downloading+Files+to+a+Sauce+Labs+Virtual+Machine+Prior+to+Testing
REM - https://superuser.com/questions/201896/how-do-i-install-a-font-from-the-windows-command-prompt
-bitsadmin.exe /transfer "JobName" https://github.com/w3c/web-platform-tests/raw/master/fonts/Ahem.ttf "%WINDIR%\Fonts\Ahem.ttf"
+bitsadmin.exe /transfer "JobName" http://{{domains[]}}:{{ports[http][0]}}/fonts/Ahem.ttf "%WINDIR%\Fonts\Ahem.ttf"
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "Ahem (TrueType)" /t REG_SZ /d Ahem.ttf /f
diff --git a/tools/wptrunner/wptrunner/browsers/sauce_setup/safari-prerun.sh b/tools/wptrunner/wptrunner/browsers/sauce_setup/safari-prerun.sh
deleted file mode 100644
index 06c48bd..0000000
--- a/tools/wptrunner/wptrunner/browsers/sauce_setup/safari-prerun.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-curl https://raw.githubusercontent.com/w3c/web-platform-tests/master/fonts/Ahem.ttf > ~/Library/Fonts/Ahem.ttf
-defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaScriptCanOpenWindowsAutomatically -bool true
diff --git a/tools/wptrunner/wptrunner/browsers/sauce_setup/safari-prerun.sub.sh b/tools/wptrunner/wptrunner/browsers/sauce_setup/safari-prerun.sub.sh
new file mode 100644
index 0000000..728f4c7
--- /dev/null
+++ b/tools/wptrunner/wptrunner/browsers/sauce_setup/safari-prerun.sub.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+curl http://{{domains[]}}:{{ports[http][0]}}/fonts/Ahem.ttf > ~/Library/Fonts/Ahem.ttf
+defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaScriptCanOpenWindowsAutomatically -bool true
diff --git a/tools/wptrunner/wptrunner/tests/browsers/test_sauce.py b/tools/wptrunner/wptrunner/tests/browsers/test_sauce.py
index aa1bc01..0030a6d 100644
--- a/tools/wptrunner/wptrunner/tests/browsers/test_sauce.py
+++ b/tools/wptrunner/wptrunner/tests/browsers/test_sauce.py
@@ -12,8 +12,7 @@
def test_sauceconnect_success():
- with mock.patch.object(sauce.SauceConnect, "upload_prerun_exec"),\
- mock.patch.object(sauce.subprocess, "Popen") as Popen,\
+ with mock.patch.object(sauce.subprocess, "Popen") as Popen,\
mock.patch.object(sauce.os.path, "exists") as exists:
# Act as if it's still running
Popen.return_value.poll.return_value = None
@@ -42,8 +41,7 @@
(False, 2),
])
def test_sauceconnect_failure_exit(readyfile, returncode):
- with mock.patch.object(sauce.SauceConnect, "upload_prerun_exec"),\
- mock.patch.object(sauce.subprocess, "Popen") as Popen,\
+ with mock.patch.object(sauce.subprocess, "Popen") as Popen,\
mock.patch.object(sauce.os.path, "exists") as exists,\
mock.patch.object(sauce.time, "sleep") as sleep:
Popen.return_value.poll.return_value = returncode
@@ -67,8 +65,7 @@
def test_sauceconnect_failure_never_ready():
- with mock.patch.object(sauce.SauceConnect, "upload_prerun_exec"),\
- mock.patch.object(sauce.subprocess, "Popen") as Popen,\
+ with mock.patch.object(sauce.subprocess, "Popen") as Popen,\
mock.patch.object(sauce.os.path, "exists") as exists,\
mock.patch.object(sauce.time, "sleep") as sleep:
Popen.return_value.poll.return_value = None
@@ -96,8 +93,7 @@
def test_sauceconnect_tunnel_domains():
- with mock.patch.object(sauce.SauceConnect, "upload_prerun_exec"),\
- mock.patch.object(sauce.subprocess, "Popen") as Popen,\
+ with mock.patch.object(sauce.subprocess, "Popen") as Popen,\
mock.patch.object(sauce.os.path, "exists") as exists:
Popen.return_value.poll.return_value = None
Popen.return_value.returncode = None