Add photo.transform support and testcase.
This commit is contained in:
parent
b900b2abd3
commit
4147029b14
3 changed files with 38 additions and 6 deletions
|
@ -89,4 +89,13 @@ class ApiPhoto:
|
||||||
return photo.next_previous(**kwds)
|
return photo.next_previous(**kwds)
|
||||||
|
|
||||||
def transform(self, photo, **kwds):
|
def transform(self, photo, **kwds):
|
||||||
raise NotImplementedError()
|
"""
|
||||||
|
Performs transformation specified in **kwds
|
||||||
|
Example: transform(photo, rotate=90)
|
||||||
|
"""
|
||||||
|
if not isinstance(photo, Photo):
|
||||||
|
photo = Photo(self._client, {"id": photo})
|
||||||
|
photo.transform(**kwds)
|
||||||
|
# The API doesn't currently return the transformed photo
|
||||||
|
# Uncomment the below once frontend issue #955 is resolved
|
||||||
|
# return photo
|
||||||
|
|
|
@ -85,8 +85,15 @@ class Photo(OpenPhotoObject):
|
||||||
return value
|
return value
|
||||||
|
|
||||||
def transform(self, **kwds):
|
def transform(self, **kwds):
|
||||||
raise NotImplementedError()
|
"""
|
||||||
|
Performs transformation specified in **kwds
|
||||||
|
Example: transform(rotate=90)
|
||||||
|
"""
|
||||||
|
new_dict = self._openphoto.post("/photo/%s/transform.json" % self.id,
|
||||||
|
**kwds)["result"]
|
||||||
|
# The API doesn't currently return the transformed photo
|
||||||
|
# Uncomment the below once frontend issue #955 is resolved
|
||||||
|
# self._replace_fields(new_dict)
|
||||||
|
|
||||||
class Tag(OpenPhotoObject):
|
class Tag(OpenPhotoObject):
|
||||||
def delete(self, **kwds):
|
def delete(self, **kwds):
|
||||||
|
|
|
@ -152,6 +152,22 @@ class TestPhotos(test_base.TestBase):
|
||||||
self.client.photo.dynamic_url(None)
|
self.client.photo.dynamic_url(None)
|
||||||
|
|
||||||
def test_transform(self):
|
def test_transform(self):
|
||||||
""" If photo.transform gets implemented, write a test! """
|
""" Test photo rotation """
|
||||||
with self.assertRaises(openphoto.NotImplementedError):
|
photo = self.photos[0]
|
||||||
self.client.photo.transform(None)
|
self.assertEqual(photo.rotation, "0")
|
||||||
|
photo = self.client.photo.transform(photo, rotate=90)
|
||||||
|
|
||||||
|
# Need an explicit update, since transform API doesn't return the rotated photo
|
||||||
|
# Remove the following line once Issue #955 is resolved
|
||||||
|
photo = self.client.photo.view(self.photos[0])
|
||||||
|
|
||||||
|
self.assertEqual(photo.rotation, "90")
|
||||||
|
|
||||||
|
# Do the same using the Photo object directly
|
||||||
|
photo.transform(rotate=90)
|
||||||
|
|
||||||
|
# Need an explicit update, since transform API doesn't return the rotated photo
|
||||||
|
# Remove the following line once Issue #955 is resolved
|
||||||
|
photo = self.client.photo.view(photo)
|
||||||
|
|
||||||
|
self.assertEqual(photo.rotation, "180")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue