Ошибка распаковки при тестировании метода
У меня есть этот метод:
def split_pointer_part(self, line):
self.before_at, self.after_at = line.split('@', 1)
return self.before_at, self.after_at
Это работает, но когда я запускаю этот тест на нем:
def test_split_pointer_part(self):
line = '13797906 23 n 04 flood 0 inundation 0 deluge 0 torrent 0 005 @ 13796604 n 0000 + 00603894 a 0401 + 00753137 v 0302 + 01527311 v 0203 + 02361703 v 0101 | an overwhelming number or amount; "a flood of requests"; "a torrent of abuse"'
result = self.wn.split_pointer_part(line)
answer = ('13797906 23 n 04 flood 0 inundation 0 deluge 0 torrent 0 005',' 13796604 n 0000 + 00603894 a 0401 + 00753137 v 0302 + 01527311 v 0203 + 02361703 v 0101 | an overwhelming number or amount; "a flood of requests"; "a torrent of abuse"')
self.assertEqual(len(result), 2)
for r, a in zip(result, answer):
self.assertEqual(r, a)
это ошибка, которую я получаю:
self.before_at, self.after_at = line.split('@', 1)
ValueError: need more than 1 value to unpack
Я знаю, что я должен использовать argv где-то, я просто не знаю, как использовать его в этом сценарии.
1 ответ
Решение
Потому что после второго раскола ничего нет... Попробуйте использовать следующее, которое гарантирует, что after_at
будет ''
если нет, вместо выдачи исключения:
before_at, after_at = line.partition('@')[::2]