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
21 def __init__(self, host='localhost', port=4001, path='.'):
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, 10)
56 driver.find_element_by_id(
"audioFile").send_keys(absolute_audio_file)
57 wait.until(EC.visibility_of_element_located((By.ID,
"audioLoaded")))
59 driver.find_element_by_id(
"accessKey").send_keys(access_key)
60 driver.find_element_by_id(
"sumbit").click()
61 wait.until(EC.visibility_of_element_located((By.ID,
"testComplete")))
64 test_message =
"Tests failed"
65 for entry
in driver.get_log(
'browser'):
66 print(entry[
'message'])
67 if 'Test passed!' in entry[
'message']:
68 test_message =
"Tests passed"
77 parser = ArgumentParser()
86 args = parser.parse_args()
88 absolute_audio_file = os.path.abspath(args.audio_file)
90 simple_server =
SimpleHttpServer(port=4005, path=os.path.join(os.path.dirname(__file__),
'..',
'..'))
91 test_url = f
'{simple_server.base_url}/porcupine-web-en-factory/test/index.html'
98 except Exception
as e:
106 if __name__ ==
'__main__':