I did a little audit using the `openssl` command-line tool to find the servers
that don't require SNI. Here's what I found:
icbrainz.org: SNI
images.weserv.nl: inconclusive, but docs say yes SNI
coverartarchive.org: SNI
webservice.fanart.tv: *no* SNI
dbpedia.org: *no* SNI
en.wikipedia.org: *no* SNI
ws.audioscrobbler.com: *no* SNI
api.microsofttranslator.com: *no* SNI
In summary, *only* MusicBrainz and CoverArtArchive were found to require SNI.
So I'm using SSL unconditionally on all the other sites.
Related to #1966. Previously, we used a `syspath` call inside MediaFile, which
probably wasn't right: the constructor should behave like `open` in that we
need to use pass an OS path.
Part of #1966. This also introduces a nicer, more lightweight way to create and
destroy temporary directories, decoupling that functionality from the
giant morass that is TestHelper.
This was a vestige from when we used to need the unittest2 library for pre-2.7
compatibility. Now that we require Python 2.7, we aren't using that library
and this indirection wasn't doing any good.
This is a little dirty, what with the hard-coded encoding, but I don't feel
too bad about it because we're only manipulating our test fixtures and
temporary directory that way.
More on #1966.
This is part of the effort to separate MediaFile from beets (#1966). It avoids
using the beets-specific logging infrastructure. This commit is part of
fdebab657d6e85de56b3996e8fdece09796940ae from the new MediaFile repository.
Sadly, I uploaded the wrong file to PyPI for 1.4.0. Once you do this, PyPI
never lets you change the file associated with a given released version. So we
need to use 1.4.1 instead. 😢