diff --git a/tests/fixtures/wild/domain_redirect.yaml b/tests/fixtures/wild/domain_redirect.yaml index 1804b71..6ed041f 100644 --- a/tests/fixtures/wild/domain_redirect.yaml +++ b/tests/fixtures/wild/domain_redirect.yaml @@ -6,8 +6,8 @@ - !!python/tuple [Accept, '*/*'] host: moz.com method: GET + path: / port: 80 - url: / response: body: string: !!binary | @@ -90,25 +90,25 @@ vgzx6kRFw3Xrl91AJeTDN6djuVwOfOoyB5TiNmKqfr39Z+XTX0IOnoxAyBMLcrAummRPhKWdCosw AwemT+yRqU7E5zy9mNKY5efF7HyWJnhMeQ391cS9/ZfiCS9VfUv6M2AgiYpsIL/OIejXNN0yTdW2 VFM1rZFqjkfGqCe/e5IUDtiIQDjrjQTLeXBKvJuGzz98c4knIfpNluWCXBmVrXvmkqC6M/iR6vFW - iq6917l6oCgVfSVk+Zpv7H3G7+o5TB8bumOPqDEejxkdQ8zoG4ZmmY6quWP7uu/qVSvLL7eKr8l9 - pAsqW/GK+M/CjMd+OBtgQTmr+J2S91jLPZf10Q+P2x09lqBhj10w6aIjzWWZHYK/cxcdE+vtlBdE - 66FFmmLBEewzadb448/HW1v/sY0dQvAhj+pPEIEWAL5Z+HnOsbX97cPmG5CtL/91uSKQ8acEC+iw - iPj1z3+S90AKIZ2qOoj6wHUhThVV9TcHija21ZE9UTSsn2/ofcTnEDr+AjE6Dih94DV9DzD9E0qa - QmfcmRv6HcRuwFv9xNX9DZ0PRXb4lmJXa6eP8hTf5u3v9Bd4/VnMocuFtsr7/yuzUM97MYs55Dev - mY9sSH3BCjdysrbqWv8W27d17uN9ATwXZvIkIq1WWR0nzjdOAIH4nV/ZoeRgC7dz2y9icdaw/Yj8 - IZjCDZ5R2F6PuwUe8w3kkeJxJG4gbvclGvpA44wOECnQt7+Clb54SbOr2IW3KPrHYnJoBF2Fpu2+ - tIl9Mm2tBFmXPJECO51zyOTJE9KvjGeWRX2yKz9LZ9B/RH4g/dKgKvU9KekaKKh3/3HNUtbmaMby - kp3s6dUZnSHuGsbeqx8ekwzUFhXrF0jZBnhzJ82fMggK2faM7pBMCPrPR9vrOiSs1y16RAj1Uh5F - sKuL89AD0nq/vLFHz42XZ8dPf3x1cvjy2Qvz3fPRce9x0zcJL8u+R0cvfnrx8ueXx2+Pnp69ev6b - 9eLHN4Yu+tb7ScoNRd555PEYS7YweBnGHl8O5Gcc0WmADg0gJB7I+XlJAHZg3rTZTSlYN70eLL2S - 5UetAQF+MxsQsF26xd7NEHgEGKgdaDaQtMhvX+6Syk/Rdnu1GKw9QDNQGlHYYQFIcdcWeOi3+5U4 - Xtur9lQCuIL6H0hv+HEoDmVh7gSQVnXc3r4FZGi9AbdoNuMiij4g2uBTaU/ujtAWPB8NaIKO4zAI - I28b+lSMhf52vfWP/qgftx/9+aeA7/Yj0bPB7z/+gcOEcdgb4rdyxN1w8Z9abP0fxmYJI+ZCAAA= - headers: {accept-ranges: bytes, age: '1594', cache-control: 'no-cache, must-revalidate, + iq6917l6oCgVfSVk+Zpv7H3G7+r5I9+zVXfsqaZDPW9sUtvV7Inpj0Y2ZZiDbP6uXrWy/HKr+Jrc + R7qgshWviP8szHjsh7MBFpSzit8peY+13HNZH/3wuN3RYwka9tgFky460lyW2SH4O3fRMbHeTnlB + tB5apCkWHME+k2aNP/58vLX1H9vYIQQf8qj+BBFoAeCbhZ/nHFvb3z5svgHZ+vJflysCGX9KsIAO + i4hf//wneQ+kENKpqoOoD1wX4lRRVX9zoGhjWx3ZE0XD+vmG3kd8DqHjLxCj44DSB17T9wDTP6Gk + KXTGnbmh30HsBrzVT1zd39D5UGSHbyl2tXb6KE/xbd7+Tn+B15/FHLpcaKu8/78yC+DnxSzmkN+8 + Zj6yIfUFK9zIydqqa/1bbN/WuY/3BfBcmMmTiLRaZXWcON84AQTid35lh5KDLdzObb+IxVnD9iPy + h2AKN3hGYXs97hZ4zDeQR4rHkbiBuN2XaOgDjTM6QKRA3/4KVvriJc2uYhfeougfi8mhEXQVmrb7 + 0ib2ybS1EmRd8kQK7HTOIZMnT0i/Mp5ZFvXJrvwsnUH/EfmB9EuDqtT3pKRroKDe/cc1S1mboxnL + S3ayp1dndIa4axh7r354TDJQW1SsXyBlG+DNnTR/yiAoZNszukMyIeg/H22v65CwXrfoESHUS3kU + wa4uzkMPSOv98sYePTdenh0//fHVyeHLZy/Md89Hx73HTd8kvCz7Hh29+OnFy59fHr89enr26vlv + 1osf3xi66FvvJyk3FHnnkcdjLNnC4GUYe3w5kJ9xRKcBOjSAkHgg5+clAdiBedNmN6Vg3fR6sPRK + lh+1BgT4zWxAwHbpFns3Q+ARYKB2oNlA0iK/fblLKj9F2+3VYrD2AM1AaURhhwUgxV1b4KHf7lfi + eG2v2lMJ4ArqfyC94cehOJSFuRNAWtVxe/sWkKH1Btyi2YyLKPqAaINPpT25O0Jb8Hw0oAk6jsMg + jLxt6FMxFvrb9dY/+qN+3H70558CvtuPRM8Gv//4Bw4TxmFviN/KEXfDxX9qsfV/BBAejOZCAAA= + headers: {accept-ranges: bytes, age: '2019', cache-control: 'no-cache, must-revalidate, s-maxage=3600', connection: keep-alive, content-encoding: gzip, content-length: '5300', - content-type: text/html, date: 'Thu, 08 Aug 2013 05:08:16 GMT', expires: 'Fri, - 15 Oct 2004 12:00:00 GMT', server: nginx, server-name: dalmozwww03.dal.moz.com, - vary: Accept-Encoding, via: 1.1 varnish, x-varnish: 1621116313 1621050553} + content-type: text/html, date: 'Sat, 10 Aug 2013 23:07:21 GMT', expires: 'Fri, + 15 Oct 2004 12:00:00 GMT', server: nginx, server-name: dalmozwww02.dal.moz.com, + vary: Accept-Encoding, via: 1.1 varnish, x-varnish: 2027532407 2027508286} status: {code: 200, message: OK} - request: !!python/object:vcr.request.Request body: null @@ -118,12 +118,12 @@ - !!python/tuple [Accept, '*/*'] host: seomoz.org method: GET + path: / port: 80 - url: / response: body: {string: "\r\n301 Moved Permanently\r\n\r\n

301 Moved Permanently

\r\n
nginx
\r\n\r\n\r\n"} headers: {accept-ranges: bytes, age: '0', connection: keep-alive, content-length: '178', - content-type: text/html, date: 'Thu, 08 Aug 2013 05:08:16 GMT', location: 'http://moz.com/', - server: nginx, server-name: dalmozwww02.dal.moz.com, via: 1.1 varnish, x-varnish: '1621116210'} + content-type: text/html, date: 'Sat, 10 Aug 2013 23:07:20 GMT', location: 'http://moz.com/', + server: nginx, server-name: dalmozwww03.dal.moz.com, via: 1.1 varnish, x-varnish: '2027532404'} status: {code: 301, message: Moved Permanently} diff --git a/vcr/cassette.py b/vcr/cassette.py index 11f6f03..579a536 100644 --- a/vcr/cassette.py +++ b/vcr/cassette.py @@ -49,7 +49,7 @@ class Cassette(object): self.play_counts[request] += 1 def append(self, request, response): - '''Add a pair of request, response to this cassette''' + '''Add a request, response pair to this cassette''' self.data[request] = response def response_of(self, request): @@ -63,7 +63,7 @@ class Cassette(object): return "".format(len(self)) def __len__(self): - '''Return the number of request / response pairs stored in here''' + '''Return the number of request,response pairs stored in here''' return len(self.data) def __contains__(self, request): diff --git a/vcr/request.py b/vcr/request.py index dc48692..461d577 100644 --- a/vcr/request.py +++ b/vcr/request.py @@ -1,15 +1,19 @@ class Request(object): - def __init__(self, host, port, method, url, body, headers): + def __init__(self, host, port, method, path, body, headers): self.host = host self.port = port self.method = method - self.url = url + self.path = path self.body = body self.headers = frozenset(headers.items()) + @property + def url(self): + return self.host + self.path + def __key(self): - return (self.host, self.port, self.method, self.url, self.body, self.headers) + return (self.host, self.port, self.method, self.path, self.body, self.headers) def __hash__(self): return hash(self.__key()) diff --git a/vcr/stubs/__init__.py b/vcr/stubs/__init__.py index eba447b..e102ee9 100644 --- a/vcr/stubs/__init__.py +++ b/vcr/stubs/__init__.py @@ -50,7 +50,7 @@ class VCRConnectionMixin: host = self.host, port = self.port, method = method, - url = url, + path = url, body = body, headers = headers or {} )