Permalink
Browse files

test requests GET / POST with VCR

  • Loading branch information...
1 parent 10f18af commit 5e05587ea069c46e83d6f8317e6d05b3551cef05 @kevin1024 committed Sep 4, 2012
Showing with 58 additions and 2 deletions.
  1. +1 −1 .travis.yml
  2. +54 −1 test.py
  3. +2 −0 test_requirements.txt
  4. +1 −0 tox.ini
View
@@ -3,5 +3,5 @@ python:
- 2.6
- 2.7
- pypy
-install: pip install -r requirements.txt --use-mirrors
+install: pip install -r test_requirements.txt --use-mirrors
script: python test.py
View
@@ -5,10 +5,10 @@
from vcr.cassette import Cassette
import urllib2
from urllib import urlencode
+import requests
TEST_CASSETTE_FILE = 'test/test_req.yaml'
-
class TestHttpRequest(unittest.TestCase):
def tearDown(self):
@@ -98,5 +98,58 @@ def test_serialize_cassette(self):
self.assertEqual(c1.requests, c2.requests)
self.assertEqual(c1.responses, c2.responses)
+class TestRequestsGet(unittest.TestCase):
+
+ def setUp(self):
+ self.unmolested_response = requests.get('http://httpbin.org/')
+ with vcr.use_cassette(TEST_CASSETTE_FILE):
+ self.initial_response = requests.get('http://httpbin.org/')
+ self.cached_response = requests.get('http://httpbin.org/')
+
+ def tearDown(self):
+ try:
+ os.remove(TEST_CASSETTE_FILE)
+ except OSError:
+ pass
+
+ def test_initial_response_code(self):
+ self.assertEqual(self.unmolested_response.status_code, self.initial_response.status_code)
+
+ def test_cached_response_code(self):
+ self.assertEqual(self.unmolested_response.status_code, self.cached_response.status_code)
+
+ def test_initial_response_headers(self):
+ self.assertEqual(self.unmolested_response.headers['content-type'], self.initial_response.headers['content-type'])
+
+ def test_cached_response_headers(self):
+ self.assertEqual(self.unmolested_response.headers['content-type'], self.cached_response.headers['content-type'])
+
+ def test_initial_response_text(self):
+ self.assertEqual(self.unmolested_response.text, self.initial_response.text)
+
+ def test_cached_response_text(self):
+ self.assertEqual(self.unmolested_response.text, self.cached_response.text)
+
+class TestRequestsPost(unittest.TestCase):
+ def setUp(self):
+ payload = {'key1': 'value1', 'key2': 'value2'}
+ self.unmolested_response = requests.post('http://httpbin.org/post', payload)
+ with vcr.use_cassette(TEST_CASSETTE_FILE):
+ self.initial_response = requests.post('http://httpbin.org/post', payload)
+ self.cached_response = requests.post('http://httpbin.org/post', payload)
+
+ def tearDown(self):
+ try:
+ os.remove(TEST_CASSETTE_FILE)
+ except OSError:
+ pass
+
+ def test_initial_post_response_text(self):
+ self.assertEqual(self.unmolested_response.text, self.initial_response.text)
+
+ def test_cached_post_response_text(self):
+ self.assertEqual(self.unmolested_response.text, self.cached_response.text)
+
+
if __name__ == '__main__':
unittest.main()
@@ -0,0 +1,2 @@
+PyYAML
+requests
View
@@ -11,3 +11,4 @@ commands =
python test.py
deps =
PyYAML
+ requests

0 comments on commit 5e05587

Please sign in to comment.