Started photo API unit tests
This commit is contained in:
parent
b9c947c94c
commit
c1c309bc9d
1 changed files with 104 additions and 0 deletions
104
tests/unit/test_photos.py
Normal file
104
tests/unit/test_photos.py
Normal file
|
@ -0,0 +1,104 @@
|
|||
from __future__ import unicode_literals
|
||||
import mock
|
||||
try:
|
||||
import unittest2 as unittest # Python2.6
|
||||
except ImportError:
|
||||
import unittest
|
||||
|
||||
import openphoto
|
||||
|
||||
class TestPhotos(unittest.TestCase):
|
||||
TEST_HOST = "test.example.com"
|
||||
|
||||
TEST_PHOTOS = [{"id": "1a",
|
||||
"tags": ["tag1", "tag2"],
|
||||
"totalPages": 1,
|
||||
"totalRows": 2},
|
||||
{"id": "2b",
|
||||
"tags": ["tag3", "tag4"],
|
||||
"totalPages": 1,
|
||||
"totalRows": 2}]
|
||||
|
||||
def setUp(self):
|
||||
self.client = openphoto.OpenPhoto(host=self.TEST_HOST)
|
||||
|
||||
@staticmethod
|
||||
def _return_value(result, message="", code=200):
|
||||
return {"message": message, "code": code, "result": result}
|
||||
|
||||
class TestPhotosList(TestPhotos):
|
||||
@mock.patch.object(openphoto.OpenPhoto, 'get')
|
||||
def test_list(self, mock_get):
|
||||
photos = self.TEST_PHOTOS
|
||||
mock_get.return_value = self._return_value(photos)
|
||||
|
||||
result = self.client.photos.list()
|
||||
mock_get.assert_called_with("/photos/list.json")
|
||||
self.assertEqual(len(result), 2)
|
||||
self.assertEqual(result[0].id, "1a")
|
||||
self.assertEqual(result[0].tags, ["tag1", "tag2"])
|
||||
self.assertEqual(result[1].id, "2b")
|
||||
self.assertEqual(result[1].tags, ["tag3", "tag4"])
|
||||
|
||||
class TestPhotosUpdate(TestPhotos):
|
||||
@mock.patch.object(openphoto.OpenPhoto, 'post')
|
||||
def test_update(self, mock_post):
|
||||
mock_post.return_value = self._return_value(True)
|
||||
result = self.client.photos.update(["1a", "2b"], title="Test")
|
||||
mock_post.assert_called_with("/photos/update.json",
|
||||
ids=["1a", "2b"], title="Test")
|
||||
self.assertEqual(result, True)
|
||||
|
||||
@mock.patch.object(openphoto.OpenPhoto, 'post')
|
||||
def test_update_failure_raises_exception(self, mock_post):
|
||||
mock_post.return_value = self._return_value(False)
|
||||
with self.assertRaises(openphoto.OpenPhotoError):
|
||||
self.client.photos.update(["1a", "2b"], title="Test")
|
||||
|
||||
class TestPhotosDelete(TestPhotos):
|
||||
@mock.patch.object(openphoto.OpenPhoto, 'post')
|
||||
def test_delete(self, mock_post):
|
||||
mock_post.return_value = self._return_value(True)
|
||||
result = self.client.photos.delete(["1a", "2b"])
|
||||
mock_post.assert_called_with("/photos/delete.json", ids=["1a", "2b"])
|
||||
self.assertEqual(result, True)
|
||||
|
||||
@mock.patch.object(openphoto.OpenPhoto, 'post')
|
||||
def test_delete_failure_raises_exception(self, mock_post):
|
||||
mock_post.return_value = self._return_value(False)
|
||||
with self.assertRaises(openphoto.OpenPhotoError):
|
||||
self.client.photos.delete(["1a", "2b"])
|
||||
|
||||
class TestPhotoDelete(TestPhotos):
|
||||
@mock.patch.object(openphoto.OpenPhoto, 'post')
|
||||
def test_delete(self, mock_post):
|
||||
mock_post.return_value = self._return_value(True)
|
||||
result = self.client.photo.delete("1a")
|
||||
mock_post.assert_called_with("/photo/1a/delete.json")
|
||||
self.assertEqual(result, True)
|
||||
|
||||
# TODO: photo.delete should raise exception on failure
|
||||
@unittest.expectedFailure
|
||||
@mock.patch.object(openphoto.OpenPhoto, 'post')
|
||||
def test_delete_failure_raises_exception(self, mock_post):
|
||||
mock_post.return_value = self._return_value(False)
|
||||
with self.assertRaises(openphoto.OpenPhotoError):
|
||||
self.client.photo.delete("1a")
|
||||
|
||||
@mock.patch.object(openphoto.OpenPhoto, 'post')
|
||||
def test_object_delete(self, mock_post):
|
||||
mock_post.return_value = self._return_value(True)
|
||||
photo = openphoto.objects.Photo(self.client, self.TEST_PHOTOS[0])
|
||||
result = photo.delete()
|
||||
mock_post.assert_called_with("/photo/1a/delete.json")
|
||||
self.assertEqual(result, True)
|
||||
|
||||
# TODO: photo.delete should raise exception on failure
|
||||
@unittest.expectedFailure
|
||||
@mock.patch.object(openphoto.OpenPhoto, 'post')
|
||||
def test_object_delete_failure_raises_exception(self, mock_post):
|
||||
mock_post.return_value = self._return_value(False)
|
||||
photo = openphoto.objects.Photo(self.client, self.TEST_PHOTOS[0])
|
||||
with self.assertRaises(openphoto.OpenPhotoError):
|
||||
photo.delete()
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue