diff --git a/tests/fixtures/urllib2/get_data.yaml b/tests/fixtures/urllib2/get_data.yaml
new file mode 100644
index 0000000..fe51488
--- /dev/null
+++ b/tests/fixtures/urllib2/get_data.yaml
@@ -0,0 +1 @@
+[]
diff --git a/tests/fixtures/urllib2/post_data.yaml b/tests/fixtures/urllib2/post_data.yaml
new file mode 100644
index 0000000..fe51488
--- /dev/null
+++ b/tests/fixtures/urllib2/post_data.yaml
@@ -0,0 +1 @@
+[]
diff --git a/tests/fixtures/wild/domain_redirect.yaml b/tests/fixtures/wild/domain_redirect.yaml
index aaf4134..a902531 100644
--- a/tests/fixtures/wild/domain_redirect.yaml
+++ b/tests/fixtures/wild/domain_redirect.yaml
@@ -13,8 +13,8 @@
body: {string: "\r\n
301 Moved Permanently\r\n\r\n301 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: 'Mon, 05 Aug 2013 22:05:23 GMT', location: 'http://moz.com/',
- server: nginx, server-name: dalmozwww03.dal.moz.com, via: 1.1 varnish, x-varnish: '836826051'}
+ content-type: text/html, date: 'Tue, 06 Aug 2013 05:57:12 GMT', location: 'http://moz.com/',
+ server: nginx, server-name: dalmozwww03.dal.moz.com, via: 1.1 varnish, x-varnish: '837662183'}
status: {code: 301, message: Moved Permanently}
- request:
body: null
@@ -28,10 +28,104 @@
port: 80
url: /
response:
- body: {string: ''}
- headers: {accept-ranges: bytes, age: '2763', cache-control: 'no-cache, must-revalidate,
- s-maxage=3600', connection: keep-alive, content-encoding: gzip, content-length: '0',
- content-type: text/html, date: 'Mon, 05 Aug 2013 22:05:23 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: 836826061 836743142}
+ body:
+ string: !!binary |
+ H4sIAAAAAAAAA+1ce3PTyJb/++ZTNJ4FJzWRracfITYVkjAwywwZEmBmKSrVklqWiKwWetgJc6dq
+ v8Z+vf0ke063nrbzIMDsH/dSkMitfpxz+nee3Wb/wdGrw7M/To6Jn83D6db+A0V5H3gkzMiLYzL8
+ MCX7+II4IU3TSSfiyscUXioBG8tfI/lr2CEhjWaTDos6MObBexa5gfdBUeopi/ngz21T3mmu0S1z
+ 3T7JLCvmwYZNjK5MoSjtaXxG3ekWkJAFWcimp8ev5vwzCVIS8SX5hX/ukVPuZUuaMEIjlxzy+TyP
+ guyKeDwhT1mWsYT8QpMLlgXRrEcUHLPfl5NtbW3tz1lGiePTJGXZpJNnnjLqTItmP8tihX3Kg8Wk
+ 87vy5kCB2WOaBXbIOsThUcYiGPPieMLcGdt1/ITP2UTbOPxQ9lbOruLm2IxdZn0UyeOKBkkC6cMs
+ YRBdkISFkw4NgY+IZjA2gxmgIY7DwAFaeNRP0vTHy3kIr5CrSef16SnRe2qH+AnzJh0kY6/f9xhz
+ 0x7+tPMkYknP4fM+yNIO+UwuJ4iOKPDQWQRsGfMka5C6DNzMn2i6qgKDuCGN7i5LnSSIkZrGiHcs
+ hDUYybjcqHeMOAkDJgjsIkmLbdsl83J7YAdpeJUFTgpjeJjuii2lYUgugshNCffKyXFOn4UxueI5
+ CRlNIhJENs+h+7ze7Hesi7AIU+hcEJL5jCyZ3U3JnKcZWQR2QmE6p4INrMEjEDwrJmJJ2hPiQbBI
+ LkmaOJNOv+86I9+N0vlnGi/mPSfkueslQF8vYlkfAM6ytC9HpCBoFzYw+Jz0PqZPhrrtDF02HFLN
+ dhgzdWY57kg3Bu7A84ZD0Kpzx40AHUnOOtP9YhIB1xoSaXYVstRnLCs3+o4UiXH9BoB6Tpo+US1T
+ 0xw2ZprmDSyVWXSkDhzbMl3NcYwBmJ45cwMK68Iegq4WOBQAhvEtkoW4muiFtZiS8dzxlQB2UIkT
+ BhKPecrcDkmDzwyMgTW8tIZfxkowpzNgxaMLnBXBrBTPijXsxdHsydAwLWpZJrVN4MFTbc0zTXVk
+ 68bINbShuqZnd6F0qF8O9W9G6VAXlFJrNB7bVB+ruqvb2mjMBmPqqq6lalQd6869KNU08xL+fTNa
+ YS5B7Mh22RjJoszxxobnadQyTMcYewNdNdg9iTWBWPMbEmtKYseqxQZDd0gNFRTNMxmggXqDAQWq
+ R44r4dq2Zwm3eZY2TFnEuRtLXEPPmjGHRjwCNQpXjC3Qgfa1GtE0rSwJvCtloTWn17WQB4ufnlv9
+ P/44mNn+xe/Bb3Of9d8tL/Nh/7P3+eT57NnZp4+hOtlA7ozzGcg3DTKmiOkLxW6s4J37b00zWp44
+ 2dGnPww/voos/ZmbnwFj/+ld5MHPz63R6LffDk/fbFhgni5oGLhguntqk+7BwWCkHhgDwxqbz44O
+ zaf6+EjVzEPdUq2BcXhUWAIxU5zwmCXZFdBi78Wwa+eB25hqZI7GYAF10yoG9aXn39q3uXtVRgzC
+ jOMPBRwCuyQ2dS5mCdp94D4E3pstEQ9SsJ/IixssSODixnL0aVX4wWGIF/Kl6IVxDqwJkxQdGnPZ
+ Yc4U2O0FBc9B0ww7Kkg8BVeR1IsUI6s3VedyhUanpFq3QSF4Y15RmMY0MogDAirWKDrTUkcajdAc
+ zGdf4psK3UGdwVULZVEtY+wyF5TbYyN3aFLPGNuW4XrgszwwmBCKTDrgzztERgQdTUedZcHMhxem
+ tuoJKur6tGK2D9xWHyK6aPKr6S2mik55HTRCd/inIKja7IdB2QcUYU5WpqmE1lbRPuDSzR3U9oza
+ AlXAUmd6UjQ3yJakh8E3WFSELP2U8eaqwPhLbP8+S1YhTnNJozOtIubvs6wML+sVzc70KTR9J7lS
+ iAGz5nJWZ3qAbTcut9/Pww2Ya6hqCTgFwp0EbFkehkqCiJea30KnDI+3NnBRa3tJ/g+Vqmd8hjY8
+ 5nEeNxkYQABYTwJ2hQjn9ilnKZp4DFJBOM8hFt7vB9OmkiH5CceEYM6ivFpIrEDET0WE0DQBQwTO
+ OW5amAbvIu5ra1rjrRBFyLxsdYdaRCsJn7FErIcBbXurm9Zg4+IKuoDV+ePpfpqBSZtNrwODXO0M
+ In4UD3me2ygeCKflMMgFj8H8X2U+ph6YSESQHGGScIG5pYCSSFz2+/EN9K5+9JN6S2OVQCCR8bnW
+ lG2x/m/FFqZEIJS8KBKYKlt9UpFaj20DFfA1fRuA3xd5zY0qOAVOCGoeykAkx7M8gLwNcqwEMq6Q
+ FdkWh5mSdgqE4klYyvPEYWlvg6begYbK+vQ/daa/PaLz+PGBoOQZT/I5Ch0yQ5d8qmSyDDIfCEqX
+ kIARcF1zSPDcHORxRdglBhKrlDSVuLEndadVk5KCrXX8++jkcLNOyglBG0/Fwz30sZhho0bCls1F
+ hCBjlKKvgs0rUUAUA5pkelbwWIRx8tM5BBMQmcYhdZjPQ5hr0pEU93q9iiwxi5LOIftuT5+ykDnZ
+ yoyyqnHzSDGaiyIBgXAyxyoGdjmA/B6yblGXka9vGSX1utbpOw36RBu4Wx8Bqib4arXZOehuVEWD
+ 8pP8JQLC8rng9Se+35ctTVTiBt2Iy0qN2q7i2tCBz4Kos5mo4l2N1BGEFHwGpkVavnpJqS3tQKwP
+ zqskrmgvHmQwzpLibQqCChqC2RwmFzhlYFQaEezmKHnpA9OFrbRaUX0e2XmSZpvDZ5ItGUT97Si6
+ EUsOAFgexLpGU5F8s+qCuRKsFiEJkkaC3oCkHLIdMEqxVdCkfkG004d0zLWvIB9jHGNrgGvIlTlG
+ zOW6oajk8cgJA+di0jmf0U+9OE/97ffdc4gvnAtwTFHW3SVdzHUwWcJnrLUQzD0LlGEbWvWDKAJZ
+ OWyOYz7sPF6hdb1k2sI9bYLVN5uC0ipDiEKRe+TQOC2FQoSHE8JasREg+ypl06VML1gSQbaP/jhh
+ SA0ltizPLinEnjhkCiqXNCcCt+Dy2gs1CdWahBotQjM6E94LqNNKTLXo+wNcGXHAmYBwwbuAF2TJ
+ AmjKWpIpfO87VlcagRjotMEt931jc3KzAshmbnPPdA0R0ZfhlK6qImmzXU+zXNMeamxsGgNHc8b2
+ 0LTHnuY53tg1i6TtNQ5CANiNJFjMhKIy64TOMOqEThsPN2d0LVu2ai4KCwGPTQGIymHq86xlEL5C
+ DPWMstpnjYemyWxmaUPdHtljDZJXb6DR8VhzPdeok1fQmbLSfFrNUQtA1Ya1BAxTX5VAyedGW9bk
+ DcDfRGZlTF5EmcgvMbRqkwM6QQFhvi7Hm63x0mCh1kE8t6FqXtbUUXHm0Dxjonp+hXgv6+PMA48k
+ oiep7JsrEqvANdcsaV2ECKIFWIZ+GswijJNKgWS0dEszlDAQAOMVYcTATDoXX24Aa7P3molIERwb
+ Ln3+/ETavbJZKLh4J+pglZFrYnaFwTpC3/ctIorkEKjRBBwqRmJ7mhVfwgqvEpCbdets5gYx1YWG
+ v0NCZ/QCNp+cgSQq8Yi2A9FGXnkEM6Py8GxdRPVD3EhozJWE5iXnF4hBTChOXr96gqIHHwFQzQJA
+ Xov7u7EDswj6UQovwdnhh+dY9js8O5BsZJI1D2RGDFVx6RXJkoCGBD0LMtIT5MdVfHNDwFJUDYX9
+ uz48aVXgml0WkELxFnJaoUXL8a2X737A8EBOQVyaUWXuQQ6AprD5ppiRxyySqYgi6s/3DCIkQvpi
+ bvz8Fh8qhDScUyt9FyXXglmR1zT99JJmkLQgqMCjJleVH8SIc01X1l3E1tr+rAq+GYlZa9sk4kAe
+ l5Zpv8hnm+pYu/9NfImzRoKiU1y+jFoFiuZCNt9QcL6maIIUt2OitisAZYRMFmVW2XGU6RmSUpn/
+ amw8FQ7iM6usOEIAT0mlbcfK/y5xg9TBgjbxQSKivTwthWgr9UHLIab1gfiZD57CQY0R5RWZ+M85
+ +A2RdeNIoVxCMD2yWv9ofbo+FhajrzV2X2XbcOYKs8eXcYi0I9nizVqtr0HwSsbTCGEK2NwXROXG
+ /N0wEhXjsnaEEKovO2yAUX0EX1Z/hFKnDQjgITmjoNAY8K4dqot+F4zJeDiP8UzIJVgBKaszLluw
+ kMeYjKRrpbM7QqdRHv8O8Hld1rI2Qqh6+/8CI3gANKQibPnbsfQzx+zJZwijwwYhm5BU9gUPrO6q
+ qvoj2JK5jenU0ufC8CQBiFzgCcW6dtNCQk7e3dhY34MGMbKo2mCIkc/vi6jG6cd3QFR1hrIRUdef
+ sHwpojY4z+rgcD1iwGjCh5b2EegygNCMnjPTXWjGJeSNVf/yDWwjnsrLEFikRHuj0RjCX5kR7Vmq
+ irGwDFnEkkqROEG3VnOZQll4aUhSkLE5ngSXoZNoALcVM/Ekq5bF3qWOz+a0x5NZX0Qpr+yPwDZM
+ JM6T65ncPFk97j45036xrFORq630zvx8bkc0CN8kYWNEuaas2UC215PiEOhxWRjgwTrknWzgarah
+ D6lluwPdHekD1VCZoTuWNTS8keMY8FIduz0bK3HryxcLvnn98h6LD3STGZpq256njlTNM92h6xm2
+ SQeWTS3mOEPmjT3duW5xsbVfsLQHwPD7YtR5HNIrlpwv9J7aS5feE13VDEW1FM18JEsphxwQP9H1
+ 8di1H/kuiPeh9RSi+IfW0cQLF1WTBAW2DnW1asWdxzbfbfbN8Sc0ApEPjYOH+jP4u5FUaK/lhB9c
+ c2SDkLQBtcyh51quwQzTocOx49i6Ydgq7JujjVBS1WoCxbiepo/URyI2OiqwNdE0q6c+SiG0esvD
+ fM4mWAt4JLIcGHwPCu8MpI/x7KHxTJQ9zh3YxvOE4Y0Z96FxBPp2Cbr1CIukngfZj3vK2MXEo2HK
+ HgkFux9tX4uzHIwfdY9EglIhrQSMrp3p2p5q7Jmj/xKDudDrzcbpvA4C8L0Twq+9I314ePR0cKwc
+ HA+OFE1zPGU8eDpSTNO0LMMywR2plQGDqBihuycy6rYJizkEzrC5ewmDZArYf9y0dmBoYprQeXkH
+ hi8CYKc8g/h6tUGnLhZor0PDkC+9PAzLi3bFiuVlwOuGyEuC1IHIJe3UByxLepVeM8yeOaiyVecf
+ VPHnmt5LvMJY9eUx/XQtPYL/BU1qOv5tIf6VLUSNEqETstr7LTSIrChLWaFdU4hKE0gB+kkBdlJh
+ 9d8g/dcGaWnm1jwQXs+/2ZtoqvrwWmciXm66tn+pwDY4F0u6YIpAYYcIG9s0rkID4Ld0kdP9iBdX
+ 0BvRb+PuvbjkUdQCuik5xXLcfr8cVBxbNH9WOWJ5OfLcgx+YQq4W7JopRNlHJijyU5lEFJ8gpbq6
+ vqB6l8uQG6vppHX3cSWBxkuMilxYXCZoX7+46VhuuOGOZX2nKwRIQGo9jyGRx4tgjceWJMqRdz3J
+ FzeM+kIomNYcygfyJl09rP+yaWXdbfqaFbdJqprY/acE653BtsGsJ8XTV85XHIX0aRx0pgcnL76S
+ Y5bMUyVOggV1YPPP8CMRVQNyIhvX52/f+WudcegbD/3L8+DmiUddFoNdTPOwfWtr5TAbddPlLI3+
+ 97//J8Pr0GjZGgN3sRwhzjC6eDiOqMN7MXe4UiUu089Z5OIxQ+MDFlsA3YGsZYnCjMsfNEQQb5JA
+ cZvlkMdX4oojeQTp+dVjgn63uEywC0bG6RG8ufMau6RYNcMzdLdZn7lR5YziQLF1My6u61rFIVMl
+ dZZ18XCUeGDbIzd9UEu5xcX6PWGpoooseN90YfiWKx43fn9q1RTJ1ZQkRUU8PV2xRVI4t9z/uZGY
+ bBng1YmShuvWL7qBSsiHb07HcrnsedRhNijFbcSU/TrTZ8XTdyEHT0Yg5IkEOVgXjdMnwtJOhEWY
+ gQPTx8OBqY7F5yy5mNCIZef57HyWxHhMeQ395cSd6UvxhJeqviX9KTAQh3nak1/nEPRrmm6Zpjq0
+ VFM1rYFqjgbGoCO/exLnNtgIXzjrjQTLeXBKvJuGzz9+c4nHAfpNlmaCXBmVrXvmgqCqM/iR8vFW
+ iq6917l6oCgVfSVk+Zpv7H3G7+qN7bFr2p7rqabp6oapmcbAdkzXNYbmaIiF0s3f1StXll9uFV+T
+ +0gXVLbiFfFfhBmPvGDWw4JyWvI7Ie+xlnsu66MfHjc7uixGwx45YNJFR5rJMjsEf+cOOibW2S0u
+ iFZD8yTBgiPYZ1Kv8edfj7e2/mMbOwTgQ3aqTxCB5gC+WfB5zrG1+e3D+huQjS//tbkikPEnBAvo
+ sIj49c9/kvdACiGtqjqI+sBxIE4VVfU3B4o2GqqD4VjRsH6+ofcRn0Po+CvE6Dig8IHX9D3A9E8o
+ aQKdcWdu6HcQOT5v9BNX9zd0PhTZ4VuKXa3dLspTfJu3u9td4PVnMYcuF9oq7v+vzEJd98Us4pDf
+ vGYesiH1BSvcyMnaqmv9G2zf1rmL9wXwXJjJk4ikXGV1nDjfOAEE4nd+ZYeCgy3czm0vj8RZw/YO
+ +VMwhRs8o7C9LndyPObrySPF41DcQNzuSjR0gcYZ7SFSoG93BStd8ZKmV5EDb1H0j8Xk0Ai6Ck3b
+ XWkTu2TSWAmyLnkiBXY645DJkyekWxrPNA27ZE9+ls6gu0N+JN3CoCrVPSnpGiiod/dxxVLa5GjG
+ soKd9OnVGZ0h7mrG3qsfHpMU1BYV61dI2Xp4cyfJnjIICtn2jO6SVAj6r53tdR0S1usWPSKEugkP
+ Q9jVxXngAmmdX98MB8+Nl2fHT396dXL48tkL893zwXHncd03Di6LvkdHL35+8fKXl8dvj56evXr+
+ u/XipzeGLvpW+0mKDUXeeejyCEu2MHgZRC5f9uRnHNFqgA41ICQeyPl5QQB2YO6k3k0pWCe5Hiyd
+ guWdxgAfv5kNCNgu3GLnZgjsAAYqB5r2JC3y25d7pPRTtNleLgZr99AMFEYUdlgAUty1BR66zX4F
+ jtf2qjmVAK6g/kfS6X/si0NZmDsGpJUdt7dvARlab8Atms0oD8MPiDb4VNiTuyO0Ac+dHo3RcRz6
+ QehuQ5+SscDbrrZ+58/qcXvnr78EfLd3RM8av//4Bw4TxmG/j9/KEXfDxX9qsfV/yvRCveZCAAA=
+ headers: {accept-ranges: bytes, age: '2217', cache-control: 'no-cache, must-revalidate,
+ s-maxage=3600', connection: keep-alive, content-encoding: gzip, content-length: '5300',
+ content-type: text/html, date: 'Tue, 06 Aug 2013 05:57:13 GMT', expires: 'Fri,
+ 15 Oct 2004 12:00:00 GMT', server: nginx, server-name: dalmozwww04.dal.moz.com,
+ vary: Accept-Encoding, via: 1.1 varnish, x-varnish: 837662198 837583885}
status: {code: 200, message: OK}
diff --git a/tests/__init__.py b/tests/integration/__init__.py
similarity index 100%
rename from tests/__init__.py
rename to tests/integration/__init__.py
diff --git a/tests/common.py b/tests/integration/common.py
similarity index 100%
rename from tests/common.py
rename to tests/integration/common.py
diff --git a/tests/integration/fixtures/wild/domain_redirect.yaml b/tests/integration/fixtures/wild/domain_redirect.yaml
new file mode 100644
index 0000000..aaf4134
--- /dev/null
+++ b/tests/integration/fixtures/wild/domain_redirect.yaml
@@ -0,0 +1,37 @@
+- request:
+ body: null
+ headers: !!python/object:requests.structures.CaseInsensitiveDict
+ _store:
+ accept: !!python/tuple [Accept, '*/*']
+ accept-encoding: !!python/tuple [Accept-Encoding, 'gzip, deflate, compress']
+ user-agent: !!python/tuple [User-Agent, vcrpy-test]
+ host: seomoz.org
+ method: GET
+ port: 80
+ url: /
+ response:
+ body: {string: "\r\n301 Moved Permanently\r\n\r\n301 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: 'Mon, 05 Aug 2013 22:05:23 GMT', location: 'http://moz.com/',
+ server: nginx, server-name: dalmozwww03.dal.moz.com, via: 1.1 varnish, x-varnish: '836826051'}
+ status: {code: 301, message: Moved Permanently}
+- request:
+ body: null
+ headers: !!python/object:requests.structures.CaseInsensitiveDict
+ _store:
+ accept: !!python/tuple [Accept, '*/*']
+ accept-encoding: !!python/tuple [Accept-Encoding, 'gzip, deflate, compress']
+ user-agent: !!python/tuple [User-Agent, vcrpy-test]
+ host: moz.com
+ method: GET
+ port: 80
+ url: /
+ response:
+ body: {string: ''}
+ headers: {accept-ranges: bytes, age: '2763', cache-control: 'no-cache, must-revalidate,
+ s-maxage=3600', connection: keep-alive, content-encoding: gzip, content-length: '0',
+ content-type: text/html, date: 'Mon, 05 Aug 2013 22:05:23 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: 836826061 836743142}
+ status: {code: 200, message: OK}
diff --git a/tests/test_basic.py b/tests/integration/test_basic.py
similarity index 100%
rename from tests/test_basic.py
rename to tests/integration/test_basic.py
diff --git a/tests/test_requests.py b/tests/integration/test_requests.py
similarity index 100%
rename from tests/test_requests.py
rename to tests/integration/test_requests.py
diff --git a/tests/test_urllib2.py b/tests/integration/test_urllib2.py
similarity index 100%
rename from tests/test_urllib2.py
rename to tests/integration/test_urllib2.py
diff --git a/tests/utils.py b/tests/integration/utils.py
similarity index 100%
rename from tests/utils.py
rename to tests/integration/utils.py
diff --git a/tests/unit/test_cassettes.py b/tests/unit/test_cassettes.py
new file mode 100644
index 0000000..d2b09fa
--- /dev/null
+++ b/tests/unit/test_cassettes.py
@@ -0,0 +1,12 @@
+import yaml
+from vcr.cassette import Cassette
+
+def test_cassette_load(tmpdir):
+ a_file = tmpdir.join('test_cassette.yml')
+ a_file.write(yaml.dumps([
+ {'request':'foo', 'response':'bar'}
+ ]))
+ a_cassette = Cassette.load(a_file)
+ assert a_cassette._requests
+ assert a_cassette._responses
+