mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-10 17:45:35 +00:00
+ @bhartin - now vcr can handle multiple requests
This commit is contained in:
17
test.py
17
test.py
@@ -5,10 +5,10 @@ import vcr
|
|||||||
from vcr.cassette import Cassette
|
from vcr.cassette import Cassette
|
||||||
import urllib2
|
import urllib2
|
||||||
from urllib import urlencode
|
from urllib import urlencode
|
||||||
|
import json
|
||||||
|
|
||||||
TEST_CASSETTE_FILE = 'cassettes/test_req.yaml'
|
TEST_CASSETTE_FILE = 'cassettes/test_req.yaml'
|
||||||
|
|
||||||
|
|
||||||
class TestHttpRequest(unittest.TestCase):
|
class TestHttpRequest(unittest.TestCase):
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
@@ -17,6 +17,11 @@ class TestHttpRequest(unittest.TestCase):
|
|||||||
except OSError:
|
except OSError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def strip_origin(self, body):
|
||||||
|
body = json.loads(body)
|
||||||
|
del body['origin']
|
||||||
|
return body
|
||||||
|
|
||||||
def test_response_code(self):
|
def test_response_code(self):
|
||||||
code = urllib2.urlopen('http://httpbin.org/').getcode()
|
code = urllib2.urlopen('http://httpbin.org/').getcode()
|
||||||
with vcr.use_cassette(TEST_CASSETTE_FILE):
|
with vcr.use_cassette(TEST_CASSETTE_FILE):
|
||||||
@@ -37,11 +42,17 @@ class TestHttpRequest(unittest.TestCase):
|
|||||||
def test_multiple_requests(self):
|
def test_multiple_requests(self):
|
||||||
body1 = urllib2.urlopen('http://httpbin.org/').read()
|
body1 = urllib2.urlopen('http://httpbin.org/').read()
|
||||||
body2 = urllib2.urlopen('http://httpbin.org/get').read()
|
body2 = urllib2.urlopen('http://httpbin.org/get').read()
|
||||||
|
body2 = self.strip_origin(body2)
|
||||||
with vcr.use_cassette(TEST_CASSETTE_FILE):
|
with vcr.use_cassette(TEST_CASSETTE_FILE):
|
||||||
self.assertEqual(body1, urllib2.urlopen('http://httpbin.org/').read())
|
self.assertEqual(body1, urllib2.urlopen('http://httpbin.org/').read())
|
||||||
self.assertEqual(body2, urllib2.urlopen('http://httpbin.org/get').read())
|
new_body2 = urllib2.urlopen('http://httpbin.org/get').read()
|
||||||
|
new_body2 = self.strip_origin(new_body2)
|
||||||
|
self.assertEqual(body2, new_body2)
|
||||||
|
|
||||||
self.assertEqual(body1, urllib2.urlopen('http://httpbin.org/').read())
|
self.assertEqual(body1, urllib2.urlopen('http://httpbin.org/').read())
|
||||||
self.assertEqual(body2, urllib2.urlopen('http://httpbin.org/get').read())
|
new_body2 = urllib2.urlopen('http://httpbin.org/get').read()
|
||||||
|
new_body2 = self.strip_origin(new_body2)
|
||||||
|
self.assertEqual(body2, new_body2)
|
||||||
|
|
||||||
|
|
||||||
class TestHttps(unittest.TestCase):
|
class TestHttps(unittest.TestCase):
|
||||||
|
|||||||
@@ -16,5 +16,5 @@ def save_cassette(cassette_path, cassette):
|
|||||||
dirname, filename = os.path.split(cassette_path)
|
dirname, filename = os.path.split(cassette_path)
|
||||||
if not os.path.exists(dirname):
|
if not os.path.exists(dirname):
|
||||||
os.makedirs(dirname)
|
os.makedirs(dirname)
|
||||||
with open(cassette_path, 'wc') as cassette_file:
|
with open(cassette_path, 'a') as cassette_file:
|
||||||
cassette_file.write(yaml.dump(cassette.serialize()))
|
cassette_file.write(yaml.dump(cassette.serialize()))
|
||||||
|
|||||||
Reference in New Issue
Block a user