class TestMyFlickr(unittest.TestCase): def setUp(self): self.flickr = MyFlickr("abc") def test_url_for_method_should_have_method(self): url = self.flickr.url_for_method("bob") assert re.search("method=bob", url) def test_url_for_method_should_have_api_key(self): url = self.flickr.url_for_method("test") assert re.search("api_key=abc", url) def test_dict_to_query_string(self): dict = {"a": 1, "b": "water"} assert "a=1&b=water&" == self.flickr.dict_to_query_string(dict) def test_generic_query_with_call(self): url = self.flickr.url_for_method("erik", page=1, per_page=50) assert re.search("method=erik", url) assert re.search("page=1", url) assert re.search("per_page=50", url) def test_signature(self): dict = {"b": 567, "a": 123} assert "ee63db973f62e0df82663d21c47cf56e" == self.flickr.signature(dict) def test_login_link(self): qs = "?perms=read&api_sig=375d9f0bbd53805d9c5a3b61f65ac69d&api_key=abc&" assert "http://flickr.com/services/auth/%s" % qs == self.flickr.login_link()
class PhotoHandler(RequestHandler): per_page = 15 def __init__(self): self.flickr = MyFlickr("bf1a023e68d6ce32412b9988a3c5cdcb", "a9953877adb04b9f") def parse(self): page = 1 item = self.request.url.split("/")[-1] if re.search("\?page=", item): item, page = item.split("?page=") page = int(page) return (item, page) def fetch(self, method, **kwargs): the_user = users.get_current_user() if the_user: user = User.get_by_key_name("foo_" + the_user.email()) args = {'per_page': self.per_page, 'extras': "owner_name,o_dims,media"} args.update(kwargs) if the_user: args.update({"auth_token": user.token}) photos = self.flickr.signed_call(method, **args) else: photos = self.flickr.call(method, **args) for photo in photos["photos"]["photo"]: sizes = self.flickr.call("flickr.photos.getSizes", photo_id=photo["id"]) for size in sizes["sizes"]["size"]: photo[size["label"].replace(' ', '_')] = size return photos["photos"]["photo"] def photo_render(self, **kwargs): photos_block = template.render("photos.html", kwargs) if (str(self.request.accept).startswith("text/javascript")): self.response.out.write(photos_block) else: kwargs.update({"photos_block": photos_block}) self.render("photo_page.html", **kwargs)
def setUp(self): self.flickr = MyFlickr("abc")
def __init__(self): self.flickr = MyFlickr("bf1a023e68d6ce32412b9988a3c5cdcb", "a9953877adb04b9f")