def decode(self): if PackedData(self.entity_data).unpack_one('4s') == ION_MAGIC: entity_value = PackedIon(self.entity_data).decode() else: entity_value = as_base64_bytes(self.entity_data) return (property_name(self.entity_type), property_name(self.entity_id), entity_value)
def test_basic_auth(self): # {{{ 'Test HTTP Basic auth' r = router(prefer_basic_auth=True) with TestServer(r.dispatch) as server: r.auth_controller.log = server.log conn = server.connect() conn.request('GET', '/open') r = conn.getresponse() self.ae(r.status, http_client.OK) self.ae(r.read(), b'open') conn.request('GET', '/closed') r = conn.getresponse() self.ae(r.status, http_client.UNAUTHORIZED) self.ae(r.getheader('WWW-Authenticate'), 'Basic realm="%s"' % REALM) self.assertFalse(r.read()) conn.request('GET', '/closed', headers={ 'Authorization': b'Basic ' + as_base64_bytes(b'testuser:testpw') }) r = conn.getresponse() self.ae(r.read(), b'closed') self.ae(r.status, http_client.OK) self.ae(b'closed', urlopen(server, method='basic').read()) self.ae( b'closed', urlopen(server, un='!@#$%^&*()-=_+', pw='!@#$%^&*()-=_+', method='basic').read()) def request(un='testuser', pw='testpw'): conn.request('GET', '/closed', headers={ 'Authorization': b'Basic ' + as_base64_bytes('%s:%s' % (un, pw)) }) r = conn.getresponse() return r.status, r.read() warnings = [] server.loop.log.warn = lambda *args, **kwargs: warnings.append( ' '.join(args)) self.ae((http_client.OK, b'closed'), request()) self.ae((http_client.UNAUTHORIZED, b''), request('x', 'y')) self.ae((http_client.BAD_REQUEST, b'The username or password was empty'), request('', '')) self.ae(1, len(warnings)) self.ae((http_client.UNAUTHORIZED, b''), request('testuser', 'y')) self.ae((http_client.BAD_REQUEST, b'The username or password was empty'), request('testuser', '')) self.ae((http_client.BAD_REQUEST, b'The username or password was empty'), request('')) self.ae((http_client.UNAUTHORIZED, b''), request('asf', 'testpw'))
def save_annots_to_epub(path, serialized_annots): try: zf = open(path, 'r+b') except IOError: return with zf: serialized_annots = EPUB_FILE_TYPE_MAGIC + b'\n'.join(split_lines(as_base64_bytes(serialized_annots))) safe_replace(zf, 'META-INF/calibre_bookmarks.txt', BytesIO(serialized_annots), add_missing=True)
def make_request(conn, url, headers={}, prefix='/ajax', username=None, password=None, method='GET', data=None): if username and password: headers[b'Authorization'] = b'Basic ' + as_base64_bytes((username + ':' + password)) conn.request(method, prefix + url, headers=headers, body=data) r = conn.getresponse() data = r.read() if r.status == OK and data and data[0] in b'{[': data = json.loads(data) return r, data
def request(un='testuser', pw='testpw'): conn.request('GET', '/closed', headers={ 'Authorization': b'Basic ' + as_base64_bytes(f'{un}:{pw}') }) r = conn.getresponse() return r.status, r.read()
def __init__(self, port, timeout=5): self.timeout = timeout self.socket = socket.create_connection(('localhost', port), timeout) set_socket_inherit(self.socket, False) self.key = as_base64_bytes(os.urandom(8)) self.socket.sendall(HANDSHAKE_STR.format(self.key).encode('ascii')) self.read_buf = deque() self.read_upgrade_response() self.mask = memoryview(os.urandom(4)) self.frames = []
def test_basic_auth(self): # {{{ 'Test HTTP Basic auth' r = router(prefer_basic_auth=True) with TestServer(r.dispatch) as server: r.auth_controller.log = server.log conn = server.connect() conn.request('GET', '/open') r = conn.getresponse() self.ae(r.status, http_client.OK) self.ae(r.read(), b'open') conn.request('GET', '/closed') r = conn.getresponse() self.ae(r.status, http_client.UNAUTHORIZED) self.ae(r.getheader('WWW-Authenticate'), 'Basic realm="%s"' % REALM) self.assertFalse(r.read()) conn.request('GET', '/closed', headers={'Authorization': b'Basic ' + as_base64_bytes(b'testuser:testpw')}) r = conn.getresponse() self.ae(r.read(), b'closed') self.ae(r.status, http_client.OK) self.ae(b'closed', urlopen(server, method='basic').read()) self.ae(b'closed', urlopen(server, un='!@#$%^&*()-=_+', pw='!@#$%^&*()-=_+', method='basic').read()) def request(un='testuser', pw='testpw'): conn.request('GET', '/closed', headers={'Authorization': b'Basic ' + as_base64_bytes('%s:%s' % (un, pw))}) r = conn.getresponse() return r.status, r.read() warnings = [] server.loop.log.warn = lambda *args, **kwargs: warnings.append(' '.join(args)) self.ae((http_client.OK, b'closed'), request()) self.ae((http_client.UNAUTHORIZED, b''), request('x', 'y')) self.ae((http_client.BAD_REQUEST, b'The username or password was empty'), request('', '')) self.ae(1, len(warnings)) self.ae((http_client.UNAUTHORIZED, b''), request('testuser', 'y')) self.ae((http_client.BAD_REQUEST, b'The username or password was empty'), request('testuser', '')) self.ae((http_client.BAD_REQUEST, b'The username or password was empty'), request('')) self.ae((http_client.UNAUTHORIZED, b''), request('asf', 'testpw'))
os.environ.pop('CALIBRE_WORKER_TEMP_DIR', None) reset_base_dir() if iswindows: # Ensure that all instances are grouped together in the task bar. This # prevents them from being grouped with viewer/editor process when # launched from within calibre, as both use calibre-parallel.exe set_app_uid(STORE_DIALOG_APP_UID) data = args[-1] data = json.loads(from_base64_bytes(data)) override = 'calibre-gui' if islinux else None app = Application(args, override_program_name=override) m = Main(data) m.show(), m.raise_() app.exec() del m del app if __name__ == '__main__': sample_data = as_base64_bytes( json.dumps({ 'window_title': 'MobileRead', 'base_url': 'https://www.mobileread.com/', 'detail_url': 'http://www.mobileread.com/forums/showthread.php?t=54477', 'id': 1, 'tags': '', })) main(['store-dialog', sample_data])
def request(un='testuser', pw='testpw'): conn.request('GET', '/closed', headers={'Authorization': b'Basic ' + as_base64_bytes('%s:%s' % (un, pw))}) r = conn.getresponse() return r.status, r.read()