Beispiel #1
0
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()
Beispiel #2
0
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)
Beispiel #3
0
 def setUp(self):
     self.flickr = MyFlickr("abc")
Beispiel #4
0
 def __init__(self):
     self.flickr = MyFlickr("bf1a023e68d6ce32412b9988a3c5cdcb", "a9953877adb04b9f")