Rspec / Beaker, как проверить сбой подключения SSH? - PullRequest
0 голосов
/ 17 октября 2018

У меня проблемы с исправлением приемочного теста в моем модуле кукол.

Я должен проверить два ssh-соединения.Первый разрешен, а второй нет.

Вот код:

# Test if toto can access to client (allowed)
describe command('ssh -o "StrictHostKeyChecking no" toto@192.168.44.37 id') do
  its(:exit_status) { is_expected.to be 0 }
 end

# Test if toto can access to master (not allowed)
describe command('ssh -o "StrictHostKeyChecking no" toto@localhost id') do
  its(:exit_status) { is_expected.not_to be 0 }
end

Первый тест выполнен успешно, команда работает, возвращает 0, что является выходомОжидаемый статус.
Второй тест выше не пройден.Сбой соединения ssh (как и ожидалось), поскольку пользователь не разрешен, но тест возвращает ошибку.

Вот вывод:

Failure/Error: its(:exit_status) { is_expected.not_to be 0 }
     Beaker::Host::CommandFailure:
       Host 'ipa-server-1' exited with 255 running:
        /bin/sh -c ssh\ -o\ \"StrictHostKeyChecking\ no\"\ toto@localhost\ id
       Last 10 lines of output were:
        Authentication failed.

Если я попробую сам команду ssh -o "StrictHostKeyChecking no" toto@localhost id затем echo $?, я получаю 255 ...

Следующие строки представляют собой несколько тестов, которые я пробовал, но они тоже не работали:

  • its(:exit_status) { is_expected.to be 255 }
  • its(:stderr) { is_expected.to match(/.*failed.*/m) }
  • its(:stderr) { is_expected.to contain(/.*failed.*/m) }
  • its(:stdout) { is_expected.to match(/.*failed.*/m) }
  • its(:stdout) { is_expected.to contain(/.*failed.*/m) }

Чего мне не хватает?

...