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))
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"