接続の失敗をテストしようとしましたが、残念ながら、ホストの IP アドレスがファイアウォールで保護されていても失敗しません。
これはコードです:
def get_connection(self, conn_data):
rtu, hst, prt, usr, pwd, db = conn_data
try:
self.conn = pgdb.connect(host=hst+":"+prt, user=usr, password=pwd, database=db)
self.cur = self.conn.cursor()
return True
except pgdb.Error as e:
logger.exception("Error trying to connect to the server.")
return False
if self.get_connection(conn_data):
# Do stuff here:
既知のサーバーに接続しようとして間違ったユーザー名を指定すると、例外がトリガーされて失敗します。
ただし、応答しない(ファイアウォールで保護された)マシンに接続しようとすると、決して通過しませんself.conn = pgdb.connect()
ユーザーが IP アドレスを間違って入力したときにアプリがハングしたように見えるのではなく、タイムアウトを待つかテストするにはどうすればよいですか?