def start(self): self.log.info('Starting Chromedriver') try: prev_display = os.environ.get('DISPLAY', None) if self.display: # We need DISPLAY in the env for chromium_flags() os.environ.update({'DISPLAY': self.display}) env = { 'CHROMIUM_FLAGS': quibble.chromium_flags(), 'PATH': os.environ.get('PATH'), } if self.display is not None: # Pass it to chromedriver env.update({'DISPLAY': self.display}) self.server = subprocess.Popen( [ 'chromedriver', '--port=%s' % self.port, '--url-base=%s' % self.url_base, ], env=env, universal_newlines=True, bufsize=1, # line buffered stdout=subprocess.DEVNULL, stderr=subprocess.PIPE, ) stream_relay(self.server, self.server.stderr, self.log.warning) finally: if prev_display: os.environ.update({'DISPLAY': prev_display}) elif prev_display is None and self.display: del (os.environ['DISPLAY'])
def run_qunit(mwdir, port=9412): karma_env = { 'CHROME_BIN': '/usr/bin/chromium', 'MW_SERVER': 'http://127.0.0.1:%s' % port, 'MW_SCRIPT_PATH': '/', 'FORCE_COLOR': '1', # for 'supports-color' } karma_env.update(os.environ) karma_env.update({'CHROMIUM_FLAGS': quibble.chromium_flags()}) subprocess.check_call( ['./node_modules/.bin/grunt', 'qunit'], cwd=mwdir, env=karma_env, )
def test_chrome_does_not_throttle_history_state_changes(self): self.assertIn('--disable-pushstate-throttle', quibble.chromium_flags())
def test_chrome_autoplay_does_not_require_user_gesture(self): self.assertIn('--autoplay-policy=no-user-gesture-required', quibble.chromium_flags())
def test_chrome_no_headless_arg(self, mock): self.assertNotIn('--headless', quibble.chromium_flags())
def test_chrome_outside_docker_uses_sandbox(self, mock): self.assertNotIn('--no-sandbox', quibble.chromium_flags())
def test_chrome_in_docker_does_not_use_sandbox(self, mock): self.assertIn('--no-sandbox', quibble.chromium_flags())