Fix test by mocking requests.get function

This commit is contained in:
Krzysztof Klimonda
2013-03-19 15:41:55 +01:00
parent 98876bb0bd
commit 494f7fbd8c
2 changed files with 13 additions and 11 deletions

View File

@@ -18,8 +18,9 @@ def filter_generator_for(size):
return wrapped_func return wrapped_func
def mock_urlopen(url): def mock_requests_get(url):
return open('logo.png') response = mock.Mock(content=open('logo.png').read())
return response
class ImageResourceTest(ResourceTestCase): class ImageResourceTest(ResourceTestCase):
@@ -62,7 +63,7 @@ class PinResourceTest(ResourceTestCase):
self.user = UserFactory(password='password') self.user = UserFactory(password='password')
self.api_client.client.login(username=self.user.username, password='password') self.api_client.client.login(username=self.user.username, password='password')
@mock.patch('urllib2.urlopen', mock_urlopen) @mock.patch('requests.get', mock_requests_get)
def test_post_create_url(self): def test_post_create_url(self):
post_data = { post_data = {
'submitter': '/api/v1/user/1/', 'submitter': '/api/v1/user/1/',
@@ -74,7 +75,7 @@ class PinResourceTest(ResourceTestCase):
self.assertEqual(Pin.objects.count(), 1) self.assertEqual(Pin.objects.count(), 1)
self.assertEqual(Image.objects.count(), 1) self.assertEqual(Image.objects.count(), 1)
@mock.patch('urllib2.urlopen', mock_urlopen) @mock.patch('requests.get', mock_requests_get)
def test_post_create_url_with_empty_tags(self): def test_post_create_url_with_empty_tags(self):
url = 'http://testserver/mocked/logo.png' url = 'http://testserver/mocked/logo.png'
post_data = { post_data = {
@@ -90,7 +91,7 @@ class PinResourceTest(ResourceTestCase):
pin = Pin.objects.get(url=url) pin = Pin.objects.get(url=url)
self.assertEqual(pin.tags.count(), 0) self.assertEqual(pin.tags.count(), 0)
@mock.patch('urllib2.urlopen', mock_urlopen) @mock.patch('requests.get', mock_requests_get)
def test_post_create_url_with_empty_origin(self): def test_post_create_url_with_empty_origin(self):
url = 'http://testserver/mocked/logo.png' url = 'http://testserver/mocked/logo.png'
post_data = { post_data = {
@@ -105,7 +106,7 @@ class PinResourceTest(ResourceTestCase):
self.assertEqual(Image.objects.count(), 1) self.assertEqual(Image.objects.count(), 1)
self.assertEqual(Pin.objects.get(url=url).origin, None) self.assertEqual(Pin.objects.get(url=url).origin, None)
@mock.patch('urllib2.urlopen', mock_urlopen) @mock.patch('requests.get', mock_requests_get)
def test_post_create_url_with_origin(self): def test_post_create_url_with_origin(self):
origin = 'http://testserver/mocked/' origin = 'http://testserver/mocked/'
url = origin + 'logo.png' url = origin + 'logo.png'

View File

@@ -9,8 +9,9 @@ from ..core.models import Image, Pin
from .models import User from .models import User
def mock_urlopen(url): def mock_requests_get(url):
return open('logo.png') response = mock.Mock(content=open('logo.png').read())
return response
class CombinedAuthBackendTest(TestCase): class CombinedAuthBackendTest(TestCase):
@@ -33,14 +34,14 @@ class CombinedAuthBackendTest(TestCase):
def test_authenticate_unknown_user(self): def test_authenticate_unknown_user(self):
self.assertIsNone(self.backend.authenticate(username='wrong-username', password='wrong-password')) self.assertIsNone(self.backend.authenticate(username='wrong-username', password='wrong-password'))
@mock.patch('urllib2.urlopen', mock_urlopen) @mock.patch('requests.get', mock_requests_get)
def test_has_perm_on_pin(self): def test_has_perm_on_pin(self):
image = Image.objects.create_for_url('http://testserver/mocked/screenshot.png') image = Image.objects.create_for_url('http://testserver/mocked/screenshot.png')
user = User.objects.get(pk=1) user = User.objects.get(pk=1)
pin = Pin.objects.create(submitter=user, image=image) pin = Pin.objects.create(submitter=user, image=image)
self.assertTrue(self.backend.has_perm(user, 'add_pin', pin)) self.assertTrue(self.backend.has_perm(user, 'add_pin', pin))
@mock.patch('urllib2.urlopen', mock_urlopen) @mock.patch('requests.get', mock_requests_get)
def test_has_perm_on_pin_unauthorized(self): def test_has_perm_on_pin_unauthorized(self):
image = Image.objects.create_for_url('http://testserver/mocked/screenshot.png') image = Image.objects.create_for_url('http://testserver/mocked/screenshot.png')
user = User.objects.get(pk=1) user = User.objects.get(pk=1)