Exscript.servers package¶
Very simple servers, useful for emulating a device for testing.
-
class
Exscript.servers.
HTTPd
(addr, handler_cls, user_data=None)[source]¶ Bases:
SocketServer.ThreadingMixIn
,BaseHTTPServer.HTTPServer
An HTTP server, derived from Python’s HTTPServer but with added support for HTTP/Digest. Usage:
from Exscript.servers import HTTPd, RequestHandler class MyHandler(RequestHandler): def handle_GET(self): self.send_response(200) self.end_headers() self.wfile.write('You opened ' + self.path) server = HTTPd(('', 8080), MyHandler) server.add_account('testuser', 'testpassword') print('started httpserver...') server.serve_forever()
-
__init__
(addr, handler_cls, user_data=None)[source]¶ Constructor.
Parameters: - address ((str, int)) – The address and port number on which to bind.
- handler_cls (
RequestHandler
) – The RequestHandler to use. - user_data (object) – Optional data that, stored in self.user_data.
-
add_account
(username, password)[source]¶ Adds a username/password pair that HTTP clients may use to log in.
Parameters: - username (str) – The name of the user.
- password (str) – The user’s password.
-
daemon_threads
= True¶
-
-
class
Exscript.servers.
SSHd
(host, port, device, key=None)[source]¶ Bases:
Exscript.servers.server.Server
A SSH2 server. Usage:
device = VirtualDevice('myhost') daemon = SSHd('localhost', 1234, device) device.add_command('ls', 'ok', prompt = True) device.add_command('exit', daemon.exit_command) daemon.start() # Start the server. daemon.exit() # Stop the server. daemon.join() # Wait until it terminates.
Parameters: key – An Exscript.PrivateKey object. -
__init__
(host, port, device, key=None)[source]¶ Constructor.
Parameters: - host (str) – The address against which the daemon binds.
- port (str) – The TCP port on which to listen.
- device (VirtualDevice) – A virtual device instance.
- encoding (str) – The encoding of data between client and server.
-
-
class
Exscript.servers.
Telnetd
(host, port, device, encoding='utf8')[source]¶ Bases:
Exscript.servers.server.Server
A Telnet server. Usage:
device = VirtualDevice('myhost') daemon = Telnetd('localhost', 1234, device) device.add_command('ls', 'ok', prompt = True) device.add_command('exit', daemon.exit_command) daemon.start() # Start the server. daemon.exit() # Stop the server. daemon.join() # Wait until it terminates.