From 57aefc7d97d62d2a26c14c7378f2e754f1ff69e1 Mon Sep 17 00:00:00 2001 From: Krzysztof Klimonda Date: Sat, 2 Mar 2013 11:06:53 -0800 Subject: [PATCH] Mock out Files using the commited screenshot.png file for tests --- pinry/core/tests.py | 22 ++++++++++++++++++---- pinry/pins/fixtures/test_resources.json | 2 +- requirements.txt | 3 ++- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/pinry/core/tests.py b/pinry/core/tests.py index 89a5638..cd7dd68 100644 --- a/pinry/core/tests.py +++ b/pinry/core/tests.py @@ -1,7 +1,8 @@ -# pylint: disable-msg=R0904 -# pylint: disable-msg=E1103 +import mock +from django.conf import settings from django.test.client import Client + from django_images.models import Thumbnail from taggit.models import Tag @@ -16,6 +17,17 @@ def filter_generator_for(size): return wrapped_func +def mock_urlopen(url): + return open('screenshot.png') + + +def mock_storage_path(self, name): + if name == 'screenshot.png': + return settings.SITE_ROOT + 'screenshot.png' + return name + + +@mock.patch('django.core.files.storage.FileSystemStorage.path', mock_storage_path) class ImageResourceTest(ResourceTestCase): fixtures = ['test_resources.json'] pass @@ -46,6 +58,7 @@ class ImageResourceTest(ResourceTestCase): }) +@mock.patch('django.core.files.storage.FileSystemStorage.path', mock_storage_path) class PinResourceTest(ResourceTestCase): fixtures = ['test_resources.json'] @@ -53,15 +66,16 @@ class PinResourceTest(ResourceTestCase): super(PinResourceTest, self).setUp() self.pin_1 = Pin.objects.get(pk=1) - self.image_url = 'http://technicallyphilly.com/wp-content/uploads/2013/02/url1.jpeg' + self.image_url = '' self.user = User.objects.get(pk=1) self.api_client.client.login(username=self.user.username, password='password') + @mock.patch('urllib2.urlopen', mock_urlopen) def test_post_create_url(self): post_data = { 'submitter': '/api/v1/user/1/', - 'url': self.image_url, + 'url': 'http://testserver/mocked/screenshot.png', 'description': 'That\'s an Apple!' } response = self.api_client.post('/api/v1/pin/', data=post_data) diff --git a/pinry/pins/fixtures/test_resources.json b/pinry/pins/fixtures/test_resources.json index b707831..dec7a69 100644 --- a/pinry/pins/fixtures/test_resources.json +++ b/pinry/pins/fixtures/test_resources.json @@ -1 +1 @@ -[{"pk": 1, "model": "auth.permission", "fields": {"codename": "add_permission", "name": "Can add permission", "content_type": 1}}, {"pk": 2, "model": "auth.permission", "fields": {"codename": "change_permission", "name": "Can change permission", "content_type": 1}}, {"pk": 3, "model": "auth.permission", "fields": {"codename": "delete_permission", "name": "Can delete permission", "content_type": 1}}, {"pk": 4, "model": "auth.permission", "fields": {"codename": "add_group", "name": "Can add group", "content_type": 2}}, {"pk": 5, "model": "auth.permission", "fields": {"codename": "change_group", "name": "Can change group", "content_type": 2}}, {"pk": 6, "model": "auth.permission", "fields": {"codename": "delete_group", "name": "Can delete group", "content_type": 2}}, {"pk": 7, "model": "auth.permission", "fields": {"codename": "add_user", "name": "Can add user", "content_type": 3}}, {"pk": 8, "model": "auth.permission", "fields": {"codename": "change_user", "name": "Can change user", "content_type": 3}}, {"pk": 9, "model": "auth.permission", "fields": {"codename": "delete_user", "name": "Can delete user", "content_type": 3}}, {"pk": 10, "model": "auth.permission", "fields": {"codename": "add_contenttype", "name": "Can add content type", "content_type": 4}}, {"pk": 11, "model": "auth.permission", "fields": {"codename": "change_contenttype", "name": "Can change content type", "content_type": 4}}, {"pk": 12, "model": "auth.permission", "fields": {"codename": "delete_contenttype", "name": "Can delete content type", "content_type": 4}}, {"pk": 13, "model": "auth.permission", "fields": {"codename": "add_session", "name": "Can add session", "content_type": 5}}, {"pk": 14, "model": "auth.permission", "fields": {"codename": "change_session", "name": "Can change session", "content_type": 5}}, {"pk": 15, "model": "auth.permission", "fields": {"codename": "delete_session", "name": "Can delete session", "content_type": 5}}, {"pk": 16, "model": "auth.permission", "fields": {"codename": "add_migrationhistory", "name": "Can add migration history", "content_type": 6}}, {"pk": 17, "model": "auth.permission", "fields": {"codename": "change_migrationhistory", "name": "Can change migration history", "content_type": 6}}, {"pk": 18, "model": "auth.permission", "fields": {"codename": "delete_migrationhistory", "name": "Can delete migration history", "content_type": 6}}, {"pk": 19, "model": "auth.permission", "fields": {"codename": "add_tag", "name": "Can add Tag", "content_type": 7}}, {"pk": 20, "model": "auth.permission", "fields": {"codename": "change_tag", "name": "Can change Tag", "content_type": 7}}, {"pk": 21, "model": "auth.permission", "fields": {"codename": "delete_tag", "name": "Can delete Tag", "content_type": 7}}, {"pk": 22, "model": "auth.permission", "fields": {"codename": "add_taggeditem", "name": "Can add Tagged Item", "content_type": 8}}, {"pk": 23, "model": "auth.permission", "fields": {"codename": "change_taggeditem", "name": "Can change Tagged Item", "content_type": 8}}, {"pk": 24, "model": "auth.permission", "fields": {"codename": "delete_taggeditem", "name": "Can delete Tagged Item", "content_type": 8}}, {"pk": 25, "model": "auth.permission", "fields": {"codename": "add_image", "name": "Can add image", "content_type": 9}}, {"pk": 26, "model": "auth.permission", "fields": {"codename": "change_image", "name": "Can change image", "content_type": 9}}, {"pk": 27, "model": "auth.permission", "fields": {"codename": "delete_image", "name": "Can delete image", "content_type": 9}}, {"pk": 28, "model": "auth.permission", "fields": {"codename": "add_thumbnail", "name": "Can add thumbnail", "content_type": 10}}, {"pk": 29, "model": "auth.permission", "fields": {"codename": "change_thumbnail", "name": "Can change thumbnail", "content_type": 10}}, {"pk": 30, "model": "auth.permission", "fields": {"codename": "delete_thumbnail", "name": "Can delete thumbnail", "content_type": 10}}, {"pk": 31, "model": "auth.permission", "fields": {"codename": "add_pin", "name": "Can add pin", "content_type": 12}}, {"pk": 32, "model": "auth.permission", "fields": {"codename": "change_pin", "name": "Can change pin", "content_type": 12}}, {"pk": 33, "model": "auth.permission", "fields": {"codename": "delete_pin", "name": "Can delete pin", "content_type": 12}}, {"pk": 1, "model": "auth.user", "fields": {"username": "jdoe", "first_name": "", "last_name": "", "is_active": true, "is_superuser": false, "is_staff": false, "last_login": "2013-02-25T18:07:05.308Z", "groups": [], "user_permissions": [31], "password": "pbkdf2_sha256$10000$fWo1asHpXTeD$zDtszDL5fU2JZQd2goXayWCWl/EZbL8CZ+COg4Xqi04=", "email": "jdoe@example.com", "date_joined": "2013-02-25T18:07:05.308Z"}}, {"pk": 1, "model": "django_images.image", "fields": {"width": 300, "image": "image/original/by-md5/f/2/f2ed405126da6815fdd737eb6bd2a15b/cc_white.png", "height": 300}}, {"pk": 2, "model": "django_images.image", "fields": {"width": 500, "image": "image/original/by-md5/0/6/06cb8b191139d74a5c82f48bfa1ddf22/tumblr_lgabq4NUsR1qb1aw7o1_500.jpg", "height": 500}}, {"pk": 1, "model": "pins.pin", "fields": {"submitter": 1, "url": "https://si0.twimg.com/profile_images/70370524/cc_white.png", "image": 1, "description": "Creative Commons Logo", "published": "2013-02-25T18:08:31.308Z"}}, {"pk": 2, "model": "pins.pin", "fields": {"submitter": 1, "url": "https://si0.twimg.com/profile_images/70370524/cc_white.png", "image": 2, "description": "Creative Commons logo downloaded from DeviantArt", "published": "2013-02-25T18:08:54.612Z"}}, {"pk": 1, "model": "taggit.tag", "fields": {"name": "creative-commons", "slug": "creative-commons"}}, {"pk": 2, "model": "taggit.tag", "fields": {"name": "deviantart", "slug": "deviantart"}}, {"pk": 1, "model": "taggit.taggeditem", "fields": {"tag": 1, "content_type": 12, "object_id": 1}}, {"pk": 2, "model": "taggit.taggeditem", "fields": {"tag": 1, "content_type": 12, "object_id": 2}}, {"pk": 3, "model": "taggit.taggeditem", "fields": {"tag": 2, "content_type": 12, "object_id": 2}}] \ No newline at end of file +[{"pk": 1, "model": "auth.permission", "fields": {"codename": "add_permission", "name": "Can add permission", "content_type": 1}}, {"pk": 2, "model": "auth.permission", "fields": {"codename": "change_permission", "name": "Can change permission", "content_type": 1}}, {"pk": 3, "model": "auth.permission", "fields": {"codename": "delete_permission", "name": "Can delete permission", "content_type": 1}}, {"pk": 4, "model": "auth.permission", "fields": {"codename": "add_group", "name": "Can add group", "content_type": 2}}, {"pk": 5, "model": "auth.permission", "fields": {"codename": "change_group", "name": "Can change group", "content_type": 2}}, {"pk": 6, "model": "auth.permission", "fields": {"codename": "delete_group", "name": "Can delete group", "content_type": 2}}, {"pk": 7, "model": "auth.permission", "fields": {"codename": "add_user", "name": "Can add user", "content_type": 3}}, {"pk": 8, "model": "auth.permission", "fields": {"codename": "change_user", "name": "Can change user", "content_type": 3}}, {"pk": 9, "model": "auth.permission", "fields": {"codename": "delete_user", "name": "Can delete user", "content_type": 3}}, {"pk": 10, "model": "auth.permission", "fields": {"codename": "add_contenttype", "name": "Can add content type", "content_type": 4}}, {"pk": 11, "model": "auth.permission", "fields": {"codename": "change_contenttype", "name": "Can change content type", "content_type": 4}}, {"pk": 12, "model": "auth.permission", "fields": {"codename": "delete_contenttype", "name": "Can delete content type", "content_type": 4}}, {"pk": 13, "model": "auth.permission", "fields": {"codename": "add_session", "name": "Can add session", "content_type": 5}}, {"pk": 14, "model": "auth.permission", "fields": {"codename": "change_session", "name": "Can change session", "content_type": 5}}, {"pk": 15, "model": "auth.permission", "fields": {"codename": "delete_session", "name": "Can delete session", "content_type": 5}}, {"pk": 16, "model": "auth.permission", "fields": {"codename": "add_migrationhistory", "name": "Can add migration history", "content_type": 6}}, {"pk": 17, "model": "auth.permission", "fields": {"codename": "change_migrationhistory", "name": "Can change migration history", "content_type": 6}}, {"pk": 18, "model": "auth.permission", "fields": {"codename": "delete_migrationhistory", "name": "Can delete migration history", "content_type": 6}}, {"pk": 19, "model": "auth.permission", "fields": {"codename": "add_tag", "name": "Can add Tag", "content_type": 7}}, {"pk": 20, "model": "auth.permission", "fields": {"codename": "change_tag", "name": "Can change Tag", "content_type": 7}}, {"pk": 21, "model": "auth.permission", "fields": {"codename": "delete_tag", "name": "Can delete Tag", "content_type": 7}}, {"pk": 22, "model": "auth.permission", "fields": {"codename": "add_taggeditem", "name": "Can add Tagged Item", "content_type": 8}}, {"pk": 23, "model": "auth.permission", "fields": {"codename": "change_taggeditem", "name": "Can change Tagged Item", "content_type": 8}}, {"pk": 24, "model": "auth.permission", "fields": {"codename": "delete_taggeditem", "name": "Can delete Tagged Item", "content_type": 8}}, {"pk": 25, "model": "auth.permission", "fields": {"codename": "add_image", "name": "Can add image", "content_type": 9}}, {"pk": 26, "model": "auth.permission", "fields": {"codename": "change_image", "name": "Can change image", "content_type": 9}}, {"pk": 27, "model": "auth.permission", "fields": {"codename": "delete_image", "name": "Can delete image", "content_type": 9}}, {"pk": 28, "model": "auth.permission", "fields": {"codename": "add_thumbnail", "name": "Can add thumbnail", "content_type": 10}}, {"pk": 29, "model": "auth.permission", "fields": {"codename": "change_thumbnail", "name": "Can change thumbnail", "content_type": 10}}, {"pk": 30, "model": "auth.permission", "fields": {"codename": "delete_thumbnail", "name": "Can delete thumbnail", "content_type": 10}}, {"pk": 31, "model": "auth.permission", "fields": {"codename": "add_pin", "name": "Can add pin", "content_type": 12}}, {"pk": 32, "model": "auth.permission", "fields": {"codename": "change_pin", "name": "Can change pin", "content_type": 12}}, {"pk": 33, "model": "auth.permission", "fields": {"codename": "delete_pin", "name": "Can delete pin", "content_type": 12}}, {"pk": 1, "model": "auth.user", "fields": {"username": "jdoe", "first_name": "", "last_name": "", "is_active": true, "is_superuser": false, "is_staff": false, "last_login": "2013-02-25T18:07:05.308Z", "groups": [], "user_permissions": [31], "password": "pbkdf2_sha256$10000$fWo1asHpXTeD$zDtszDL5fU2JZQd2goXayWCWl/EZbL8CZ+COg4Xqi04=", "email": "jdoe@example.com", "date_joined": "2013-02-25T18:07:05.308Z"}}, {"pk": 1, "model": "django_images.image", "fields": {"width": 300, "image": "screenshot.png", "height": 300}}, {"pk": 2, "model": "django_images.image", "fields": {"width": 500, "image": "screenshot.png", "height": 500}}, {"pk": 1, "model": "pins.pin", "fields": {"submitter": 1, "url": "https://si0.twimg.com/profile_images/70370524/cc_white.png", "image": 1, "description": "Creative Commons Logo", "published": "2013-02-25T18:08:31.308Z"}}, {"pk": 2, "model": "pins.pin", "fields": {"submitter": 1, "url": "https://si0.twimg.com/profile_images/70370524/cc_white.png", "image": 2, "description": "Creative Commons logo downloaded from DeviantArt", "published": "2013-02-25T18:08:54.612Z"}}, {"pk": 1, "model": "taggit.tag", "fields": {"name": "creative-commons", "slug": "creative-commons"}}, {"pk": 2, "model": "taggit.tag", "fields": {"name": "deviantart", "slug": "deviantart"}}, {"pk": 1, "model": "taggit.taggeditem", "fields": {"tag": 1, "content_type": 12, "object_id": 1}}, {"pk": 2, "model": "taggit.taggeditem", "fields": {"tag": 1, "content_type": 12, "object_id": 2}}, {"pk": 3, "model": "taggit.taggeditem", "fields": {"tag": 2, "content_type": 12, "object_id": 2}}] diff --git a/requirements.txt b/requirements.txt index 0679918..8ae83a6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,5 +3,6 @@ Pillow South django-tastypie django-braces -django-images +mock +http://github.com/mirumee/django-images/tarball/master#egg=django-images http://github.com/hcarvalhoalves/django-taggit/tarball/master#egg=django-taggit