binary.py (1227B)
1 import os 2 3 from tests.support.asserts import assert_error, assert_success 4 5 6 def test_bad_binary(new_session, configuration): 7 # skipif annotations are forbidden in wpt 8 if os.path.exists("/bin/echo"): 9 capabilities = configuration["capabilities"].copy() 10 capabilities["moz:firefoxOptions"]["binary"] = "/bin/echo" 11 12 response, _ = new_session({"capabilities": {"alwaysMatch": capabilities}}) 13 assert_error(response, "invalid argument") 14 15 16 def test_shell_script_binary(new_session, configuration): 17 # skipif annotations are forbidden in wpt 18 if os.path.exists("/bin/bash"): 19 capabilities = configuration["capabilities"].copy() 20 binary = configuration["browser"]["binary"] 21 22 path = os.path.abspath("firefox.sh") 23 assert not os.path.exists(path) 24 try: 25 script = f"""#!/bin/bash\n\n"{binary}" $@\n""" 26 with open("firefox.sh", "w") as f: 27 f.write(script) 28 os.chmod(path, 0o744) 29 capabilities["moz:firefoxOptions"]["binary"] = path 30 response, _ = new_session({"capabilities": {"alwaysMatch": capabilities}}) 31 assert_success(response) 32 finally: 33 os.unlink(path)