Beispiel #1
0
def test_to_unicode():
  assert isinstance(to_unicode(''), unicode_string)
  assert isinstance(to_unicode('abc'), unicode_string)
  assert isinstance(to_unicode(b'abc'), unicode_string)
  assert isinstance(to_unicode(u'abc'), unicode_string)
  assert isinstance(to_unicode(u'abc'.encode('latin-1'), encoding='latin-1'), unicode_string)

  for bad_value in (123, None):
    with pytest.raises(ValueError):
      to_unicode(bad_value)
def test_to_unicode():
    assert isinstance(to_unicode(''), unicode_string)
    assert isinstance(to_unicode('abc'), unicode_string)
    assert isinstance(to_unicode(b'abc'), unicode_string)
    assert isinstance(to_unicode(u'abc'), unicode_string)
    assert isinstance(to_unicode(u'abc'.encode('latin-1'), encoding='latin-1'),
                      unicode_string)

    for bad_value in (123, None):
        with pytest.raises(ValueError):
            to_unicode(bad_value)
Beispiel #3
0
def test_to_unicode():
    assert isinstance(to_unicode(""), unicode_string)
    assert isinstance(to_unicode("abc"), unicode_string)
    assert isinstance(to_unicode(b"abc"), unicode_string)
    assert isinstance(to_unicode(u"abc"), unicode_string)
    assert isinstance(to_unicode(u"abc".encode("latin-1"), encoding="latin-1"),
                      unicode_string)

    for bad_value in (123, None):
        with pytest.raises(ValueError):
            to_unicode(bad_value)
Beispiel #4
0
def test_to_unicode():
    # type: () -> None
    assert isinstance(to_unicode(""), unicode_string)
    assert isinstance(to_unicode("abc"), unicode_string)
    assert isinstance(to_unicode(b"abc"), unicode_string)
    assert isinstance(to_unicode(u"abc"), unicode_string)
    assert isinstance(
        to_unicode(u"abc".encode("latin-1"), encoding=u"latin-1"),
        unicode_string)

    for bad_value in (123, None):
        with pytest.raises(ValueError):
            to_unicode(bad_value)  # type: ignore[type-var]
Beispiel #5
0
    def get_body_iter(self, url):
        # type: (str) -> Iterator[Iterator[Text]]
        retries = 0
        retry_delay_secs = 0.1
        last_error = None  # type: Optional[Exception]
        while retries <= self._max_retries:
            if retries > 0:
                time.sleep(retry_delay_secs)
                retry_delay_secs *= 2

            opener = build_opener(*self._handlers)
            request = Request(url, headers=self._headers)
            try:
                with closing(opener.open(request,
                                         timeout=self._timeout)) as fp:
                    # The fp is typed as Optional[...] for Python 2 only in the typeshed. A `None`
                    # can only be returned if a faulty custom handler is installed and we only
                    # install stdlib handlers.
                    body_stream = cast("BinaryIO", fp)
                    yield (to_unicode(line)
                           for line in body_stream.readlines())
                    return
            except HTTPError as e:
                # See: https://tools.ietf.org/html/rfc2616#page-39
                if e.code not in (
                        408,  # Request Time-out
                        500,  # Internal Server Error
                        503,  # Service Unavailable
                        504,  # Gateway Time-out
                ):
                    raise e
                last_error = e
            except (IOError, OSError) as e:
                # Unfortunately errors are overly broad at this point. We can get either OSError or
                # URLError (a subclass of OSError) which at times indicates retryable socket level
                # errors. Since retrying a non-retryable socket level error just wastes local
                # machine resources we err towards always retrying.
                last_error = e
            finally:
                retries += 1

        raise cast(Exception, last_error)
Beispiel #6
0
  def parse_entry_points(self):
    def split_and_strip(entry_point):
      console_script, entry_point = entry_point.split('=', 2)
      return console_script.strip(), entry_point.strip()

    raw_entry_points = self.distribution.entry_points

    if isinstance(raw_entry_points, string):
      parser = ConfigParser()
      parser.readfp(StringIO(to_unicode(raw_entry_points)))
      if parser.has_section('console_scripts'):
        return dict(parser.items('console_scripts'))
    elif isinstance(raw_entry_points, dict):
      try:
        return dict(split_and_strip(script)
            for script in raw_entry_points.get('console_scripts', []))
      except ValueError:
        pass
    elif raw_entry_points is not None:
      die('When entry_points is provided, it must be a string or dict.')

    return {}
Beispiel #7
0
  def parse_entry_points(self):
    def parse_entry_point_name(entry_point):
      script_name = entry_point.split('=', 1)[0]
      return script_name.strip()

    raw_entry_points = self.distribution.entry_points

    if isinstance(raw_entry_points, string):
      parser = ConfigParser()
      parser.readfp(StringIO(to_unicode(raw_entry_points)))
      if parser.has_section('console_scripts'):
        return tuple(parser.options('console_scripts'))
    elif isinstance(raw_entry_points, dict):
      try:
        return tuple(parse_entry_point_name(script)
                     for script in raw_entry_points.get('console_scripts', []))
      except ValueError:
        pass
    elif raw_entry_points is not None:
      die('When entry_points is provided, it must be a string or dict.')

    return ()
Beispiel #8
0
    def parse_entry_points(self):
        def parse_entry_point_name(entry_point):
            script_name = entry_point.split('=', 1)[0]
            return script_name.strip()

        raw_entry_points = self.distribution.entry_points

        if isinstance(raw_entry_points, string):
            parser = ConfigParser()
            parser.readfp(StringIO(to_unicode(raw_entry_points)))
            if parser.has_section('console_scripts'):
                return tuple(parser.options('console_scripts'))
        elif isinstance(raw_entry_points, dict):
            try:
                return tuple(
                    parse_entry_point_name(script)
                    for script in raw_entry_points.get('console_scripts', []))
            except ValueError:
                pass
        elif raw_entry_points is not None:
            die('When entry_points is provided, it must be a string or dict.')

        return ()
Beispiel #9
0
 def run_pyenv(args):
     # type: (Iterable[str]) -> Text
     return to_unicode(subprocess.check_output([pyenv] + list(args), env=pyenv_env))
Beispiel #10
0
def _parse_message(message):
    # type: (bytes) -> Message
    return cast(Message, Parser().parse(StringIO(to_unicode(message))))