Ejemplo n.º 1
0
 def fetch(self, url, data = None, headers = None):
     """
         Fetches a single URL using either GET or POST depending on whether
         a body (data) is present
     """
     if not headers:
         headers = {}
     self.url = urlparse.urljoin(self.url, url)
     if len(self.fost):
         signed, signed_headers = 'X-FOST-Headers', []
         for header, value in self.fost['headers'].items():
             signed += ' ' + header
             signed_headers.append(value)
             headers[ header ] = value
         utcnow = unicode(datetime.datetime.utcnow())
         path = urlparse.urlsplit(self.url).path
         url_filespec_assert_valid(path)
         document = '%s %s\n%s\n%s\n%s' % (
             "POST" if data else "GET", path,
             utcnow,
             '\n'.join([signed] + signed_headers),
             data or urlparse.urlsplit(self.url).query
         )
         headers['X-FOST-Timestamp'] = utcnow
         headers['X-FOST-Headers'] = signed
         headers['Authorization'] = "FOST %s:%s" % (
             self.fost['key'],
             sha1_hmac(self.fost['secret'], document)
         )
         #print document
     return self.opener.open(urllib2.Request(self.url, data, headers))
Ejemplo n.º 2
0
    try:
        f(*args, **kwargs)
    except:
        threw = True
    assert threw
def check_eq(left, right):
    assert left==right, left


print "Testing url_filespec_encode"
assert _internet.url_filespec_encode("abc") == "abc"
assert _internet.url_filespec_encode("abc ") == "abc%20"
assert _internet.url_filespec_encode(u"abc ") == u"abc%20"

print "Testing url_filespec_assert_valid"
_internet.url_filespec_assert_valid("abc")
_internet.url_filespec_assert_valid("abc/def")
check_throw(_internet.url_filespec_assert_valid, "abc def")
_internet.url_filespec_assert_valid(u"abc/def")

print "Testing x_www_form_urlencoded"
assert _internet.x_www_form_urlencoded({}) == "", _internet.x_www_form_urlencoded({})
assert _internet.x_www_form_urlencoded({'a':12}) == "a=12", _internet.x_www_form_urlencoded({})
assert _internet.x_www_form_urlencoded({'a':'b'}) == "a=b", _internet.x_www_form_urlencoded({})

print "Testing host"
check_eq( unicode(_internet.host("localhost")), "localhost" )
check_eq( unicode(_internet.host("localhost", 8888)), "localhost:8888" )
check_eq( unicode(_internet.host("localhost", 8888).name), "localhost" )

print "Testing url"