7 from argparse
import ArgumentParser
8 from http.server
import HTTPServer, SimpleHTTPRequestHandler
10 from selenium
import webdriver
11 from selenium.common.exceptions
import WebDriverException
12 from selenium.webdriver.chrome.options
import Options
13 from selenium.webdriver.common.desired_capabilities
import DesiredCapabilities
14 from selenium.webdriver.common.by
import By
15 from selenium.webdriver.support.ui
import WebDriverWait
16 from selenium.webdriver.support
import expected_conditions
as EC
17 from webdriver_manager.chrome
import ChromeDriverManager
20 class SimpleHttpServer(threading.Thread):
21 def __init__(self, host='localhost', port=4001, path='.'):
24 self.
_cwd = os.getcwd()
25 self.
_server = HTTPServer((host, port), SimpleHTTPRequestHandler)
34 print(f
'starting server on port {self._server.server_port}')
41 print(f
'stopping server on port {self._server.server_port}')
45 desired_capabilities = DesiredCapabilities.CHROME
46 desired_capabilities[
'goog:loggingPrefs'] = {
'browser':
'ALL'}
49 driver = webdriver.Chrome(ChromeDriverManager().install(), desired_capabilities=desired_capabilities, options=opts)
52 assert "unit test" in driver.title
54 wait = WebDriverWait(driver, 3600)
56 driver.find_element_by_id(
"inContextAudioFile").send_keys(absolute_ic_audio_file)
57 wait.until(EC.visibility_of_element_located((By.ID,
"inContextAudioLoaded")))
59 driver.find_element_by_id(
"oocAudioFile").send_keys(absolute_ooc_audio_file)
60 wait.until(EC.visibility_of_element_located((By.ID,
"oocAudioLoaded")))
62 driver.find_element_by_id(
"accessKey").send_keys(access_key)
63 driver.find_element_by_id(
"submit").click()
64 wait.until(EC.visibility_of_element_located((By.ID,
"testComplete")))
67 test_message =
"Tests failed"
68 for entry
in driver.get_log(
'browser'):
69 print(entry[
'message'])
70 if 'Test passed!' in entry[
'message']:
71 test_message =
"Tests passed"
80 parser = ArgumentParser()
86 '--audio_file_in_context',
89 '--audio_file_out_context',
92 args = parser.parse_args()
94 absolute_ic_audio_file = os.path.abspath(args.audio_file_in_context)
95 absolute_ooc_audio_file = os.path.abspath(args.audio_file_out_context)
97 simple_server =
SimpleHttpServer(port=4005, path=os.path.join(os.path.dirname(__file__),
'..',
'..'))
98 test_url = f
'{simple_server.base_url}/rhino-web-en-factory/test/index.html'
106 absolute_ic_audio_file,
107 absolute_ooc_audio_file)
108 except Exception
as e:
116 if __name__ ==
'__main__':