2015-06-02 5 views
0

Я пишу несколько сценариев Python (3.4.2) в telnet в нашу устаревшую систему VMS для запуска некоторых отчетов. Эмуляция терминала, которую мы используем для доступа к системе, - VT320.Python Telnet с управляемой тестом

Я хочу использовать TDD в своих сценариях, чтобы подтвердить, что я нахожусь в правильном меню, прежде чем продолжить.

Ниже приведено начало моего сценария. Я не уверен, как включать:
Если test1 проходит, сделать шаг1
Если test2 проходит, сделать step2
т.д.

кто-нибудь включены TDD в сценарий Python Telnet для проверки вашего местоположения в удаленной системе ?

Куда я иду отсюда?

import unittest 
import re 
import telnetlib 
timeout = 120 
dataqueue = "" 
f = open('datafile.txt', 'w') 

class ConnectionTest(unittest.TestCase): 
    def test_connection_to_Legacy_System(self): 
     a = "---Test---" 
     self.assertIsNone(a) 
if __name__ == "__main__": 
    unittest.main() 

tn = telnetlib.Telnet(HOST,23,timeout) 
tn.read_until(b"YOUR ID:") 
tn.write(str.encode(user + "\r\n")) 
tn.read_until(b"PASSWORD:") 
tn.write(str.encode(password + "\r\n")) 
tn.read_until(b"Selection: ") 
tn.write("1\r\n") 
dataqueue = tn.read_very_eager() 
dataqueue = dataqueue.decode('ascii') 

tn.close() 
f.write(dataqueue) 
f.close() 

ответ

0

Я ничего не знаю (о Python или TDD), но вижу некоторые элементы, которые вы можете проверить.

\ r имеет значение ASCII 13 = CR = Возврат каретки \ n имеет значение ASCII 10 = LF = LineFeed справа?

Когда «Enter» - это тип, посылаемый только CR. LF является LF, является частью эхо-сигнала обратно к терминалу, а не от терминала.

Отправка LF обычно интерпретируется как «WORD DELETE» с помощью драйвера терминала OpenVMS. Теперь в предлагаемом использовании это не имеет значения, потому что ничего не нужно удалять для следующего ввода, но все же.

SET HOST 0/LOG может помочь показать символы, необходимые для отправки и ожиданий.

Когда я использую SSH мои подсказки являются "Войти как:"/"пароль:" и телнет "Имя пользователя:"/"Пароль:" я не видел "ВАШ ID:"/"PASSWORD:". Откуда это должно быть? Является ли сеанс уже зарегистрированным и это имя пользователя/пароль второго уровня?

Куда я иду отсюда?

Где вы? Каков результат до сих пор? Успешно зашел? Где находится «Выбор:»? Меню из программы? DCL Login.com?

Удачи вам! Хайн.