/
githubmirror
/
pyyaml
Обзор
Документация
Войти
/
githubmirror
/
pyyaml
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
tests/legacy_tests/test_recursive.py
50 строк
1 KB
Matt Davis
Move tests to pytest
10 ноя 2023, 22:37
Не верифицирован
10 ноя 2023, 22:37
a98fd60
Код
Авторство
О чём код?
import yaml class AnInstance: def __init__(self, foo, bar): self.foo = foo self.bar = bar def __repr__(self): try: return "%s(foo=%r, bar=%r)" % (self.__class__.__name__, self.foo, self.bar) except RuntimeError: return "%s(foo=..., bar=...)" % self.__class__.__name__ class AnInstanceWithState(AnInstance): def __getstate__(self): return {'attributes': [self.foo, self.bar]} def __setstate__(self, state): self.foo, self.bar = state['attributes'] def test_recursive(recursive_filename, verbose=False): context = globals().copy() with open(recursive_filename, 'rb') as file: exec(file.read(), context) value1 = context['value'] output1 = None value2 = None output2 = None try: output1 = yaml.dump(value1) value2 = yaml.unsafe_load(output1) output2 = yaml.dump(value2) assert output1 == output2, (output1, output2) finally: if verbose: print("VALUE1:", value1) print("VALUE2:", value2) print("OUTPUT1:") print(output1) print("OUTPUT2:") print(output2) test_recursive.unittest = ['.recursive'] if __name__ == '__main__': import test_appliance test_appliance.run(globals())