'This test validates that we correctly exclude some URLs from
preparation, and that we handle others. Specifically, it tests that
any URL whose scheme doesn\'t begin with "http" is left alone, and
those whose scheme *does* begin with "http" are mutated.'

@pytest.mark.parametrize('input,    expected', (('http+unix://%2Fvar%2Frun%2Fsocket/path%7E', u'http+unix://%2Fvar%2Frun%2Fsocket/path~'), (u'http+unix://%2Fvar%2Frun%2Fsocket/path%7E', u'http+unix://%2Fvar%2Frun%2Fsocket/path~'), ('mailto:user@example.org', u'mailto:user@example.org'), (u'mailto:user@example.org', u'mailto:user@example.org'), ('data:SSDimaUgUHl0aG9uIQ==', u'data:SSDimaUgUHl0aG9uIQ==')))
def test_url_mutation(self, input, expected):

    r = requests.Request('GET', url=input)
    p = r.prepare()
    assert (p.url == expected)
