У меня есть список OrderedDict. OrderedDict - это кортеж пары ключ / значение:
dict_lists = [[OrderedDict([('name', 'Good check'), ('url',
'https://www.facebook.com/'), ('lag', 10), ('tags',
['team:team 4', 'section 1', 'section 2']), ('headers',
OrderedDict([('Location', 'http://facebook.com/')]))]),
OrderedDict([('name', 'Bad check'), ('url',
'https://www.google.com/'), ('lag', 5), ('tags',
['team:team 1'])]), OrderedDict([('name', 'Bad check'),
('url', 'https://www.microsoft.com/'), ('lag', 5), ('tags'
, ['team:team 5'])])]]
Я пытаюсь выдать ошибку AssertionError, когда для клавиши "name"
есть повторяющиеся значения.
В настоящее время он работает для ключей, потому что я считаю, что он генерирует ошибку AssertionError для дублированных ключей:
AssertionError: 'name' неожиданно найдено в ['name', 'url', 'lag',
'tags', 'headers']
Код для дубликатов ключей:
import unittest
from collections import OrderedDict
keys = []
for dict_list in dict_lists:
for dictionary in dict_list:
dict_keys = dictionary.keys()
for key in dict_keys:
self.assertNotIn(key, keys)
keys.append(key)
Как заставить его работать для дублирующихся значений (только для клавиши "name"
)