def __init__(self, user=None, password=None, server=None, port=None, anon=False): """Initialise an SR trac object.""" config = Config() if server is None: server = config["server"] if port is None: port = config["https_port"] self.server = server self.port = port rpc_settings = {"server": server, "port": port} if anon: rpc_url = "https://{server}:{port}/trac/rpc" else: rpc_url = "https://{user}:{password}@{server}:{port}/trac/login" \ "/rpc" user = config.get_user(user) rpc_settings["user"] = user rpc_settings["password"] = config.get_password(password, user=user) rpc_url = rpc_url.format(**rpc_settings) ServerProxy.__init__(self, rpc_url) if 'ticket.create' not in self.system.listMethods(): raise WrongServer()
def __init__(self, sock_path): # We can't pass funny characters in the host part of a URL, so we # encode the socket path in base16. ServerProxy.__init__(self, 'http://' + base64.b16encode(sock_path.encode('utf-8')), transport=UnixXmlRpcTransport(), allow_none=1)