В основном мне нужно создать функцию, которая позволяет мне загружать базовые детали запланированного путешествия из файла.Вот краткое описание:
Параметры: строка, содержащая путь к файлу
Возвращает: 3 набора строк, содержащих начальное местоположение, конечное местоположение и время прибытия поездки, считанные из файла,или (Нет, Нет, Нет) в случае неудачи.
Существует несколько тестов, которые используют магические числа в качестве входных данных.Тесты заключаются в следующем:
Этот код для теста неверных данных должен дать вам пример одного из тестов:
PATH = os.path.expanduser('~/test_prev_plan_spec.txt')
def test_missing_file_is_handled(self):
if os.path.exists(self.PATH):
os.unlink(self.PATH)
plan = utils.load_prev_plan_spec(self.PATH)
self.assertEqual(3, len(plan))
self.assertEqual(plan, (None, None, None))
def test_spec_loads_ok(self):
from_ = 'Bournemouth'
to = 'Southampton'
arrive_at = '2019/04/20 13:30'
with open(self.PATH, 'wt') as f:
f.write('{}\n{}\n{}\n'.format(from_, to, arrive_at))
plan = utils.load_prev_plan_spec(self.PATH)
self.assertEqual(3, len(plan))
self.assertEqual(from_, plan[0])
self.assertEqual(to, plan[1])
self.assertEqual(arrive_at, plan[2])
def test_short_spec_is_ignored(self):
from_ = 'Bournemouth'
to = 'Southampton'
with open(self.PATH, 'wt') as f:
f.write('{}\n{}\n'.format(from_, to))
plan = utils.load_prev_plan_spec(self.PATH)
self.assertEqual(3, len(plan))
self.assertEqual(plan, (None, None, None))
with open(self.PATH, 'wt') as f:
f.write('{}\n'.format(from_))
plan = utils.load_prev_plan_spec(self.PATH)
self.assertEqual(3, len(plan))
self.assertEqual(plan, (None, None, None))
def test_empty_line_is_handled(self):
from_ = 'Bournemouth'
to = ''
arrive_at = '2019/04/20 13:30'
with open(self.PATH, 'wt') as f:
f.write('{}\n{}\n{}\n'.format(from_, to, arrive_at))
plan = utils.load_prev_plan_spec(self.PATH)
self.assertEqual(3, len(plan))
self.assertEqual(plan, (None, None, None))
def test_bad_data_line_is_handled(self):
from_ = 'Bournemouth'
to = 'Southampton'
arrive_at = '2019/04/20 13:60'
with open(self.PATH, 'wt') as f:
f.write('{}\n{}\n{}\n'.format(from_, to, arrive_at))
plan = utils.load_prev_plan_spec(self.PATH)
self.assertEqual(3, len(plan))
self.assertEqual(plan, (None, None, None))
Это то, что у меня до сих пор, яЯ ищу помощь с этим, и любые объяснения были бы фантастическими!
Мой код атм:
def load_prev_plan_spec(PATH):
'''
Function: utils.load_prev_plan_specLoads the basic details of a planned journey from a file.
Parameters: A string containing a file path
Returns: A 3-tuple of strings containing start location, end location and arrival time of a journey
read from the file, or (None, None, None) if unsuccessful.
'''
try:
if os.path.exists(PATH):
infomation = []
f = open(PATH, 'r', encoding='cp1252')
for line in f:
infomation.append([line.strip()])
if not line.strip():
infomation = (None, None, None)
tuple(infomation)
f.close()
return infomation
else:
pass
except IOError as err2:
print(err2)
raise IOError
else:
return infomation