from pexpect import pxssh
import getpass
import time
import sys
s=pxssh.pxssh()
class Testinstall:
def setup_class(cls):
cls.s=pxssh.pxssh()
cls.s.login('10.10.62.253', 'User','PW',auto_prompt_reset=False)
def teardown_class(cls):
cls.s.logout()
def test_cleanup(cls):
cls.s.sendline('cat test.py')
cls.s.prompt(timeout=10)
cls.s.sendline('cat profiles.conf')
cls.s.prompt(timeout=10)
print('s.before')
print (cls.s.before)
print('s.after')
print(cls.s.after)
上記のコードprint(cls.s.before)
の出力では、cat
の両方のコマンドが出力されます。 期待通りに、2番目のcat
コマンドの出力のみを出力します。つまり、cat profiles.conf
です。 あなたがpxssh.login()
ためauto_prompt_reset=False
を使用する場合は、あなたがpxssh.prompt()
を使用することはできません(期待どおりに)それが唯一の二cat
コマンドの出力を示しシェルでPythonのセッションでpy.testで使用すると、pxssh.beforeの動作が異なるのはなぜですか?
私の答えはあなたの問題を説明していますか? – pynexj
ああ、そうです。最初の答えは完璧な解決策でした。 2番目のケースでは、質問自体が混乱していました。私は 'auto_prompt_reset = True'で、今度はPROMPT = x、コードのどこかでs.PROMPT = yを実行してから、PROMPTを再びxにリセットする方法を尋ねます。 –
この質問が表示されない場合は、pxsshで 'sync_original_prompt' APIを使用する方法を説明してください。前もって感謝します。 :) –