Esempio n. 1
0
    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'])
Esempio n. 2
0
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,
    )
Esempio n. 3
0
 def test_chrome_does_not_throttle_history_state_changes(self):
     self.assertIn('--disable-pushstate-throttle', quibble.chromium_flags())
Esempio n. 4
0
 def test_chrome_autoplay_does_not_require_user_gesture(self):
     self.assertIn('--autoplay-policy=no-user-gesture-required',
                   quibble.chromium_flags())
Esempio n. 5
0
 def test_chrome_no_headless_arg(self, mock):
     self.assertNotIn('--headless', quibble.chromium_flags())
Esempio n. 6
0
 def test_chrome_outside_docker_uses_sandbox(self, mock):
     self.assertNotIn('--no-sandbox', quibble.chromium_flags())
Esempio n. 7
0
 def test_chrome_in_docker_does_not_use_sandbox(self, mock):
     self.assertIn('--no-sandbox', quibble.chromium_flags())