from pathlib import Path import pytest import yaml from karl.services import Passwords from karl.services.mo import Mo @pytest.fixture(scope='class') def target_path(): p = Path('tests/files/test1/test.yaml') # posprzątaj przed testem, gdyby plik istniał z poprzednich uruchomień if p.exists(): p.unlink() yield p # sprzątanie po teście if p.exists(): p.unlink() @pytest.fixture(scope='class') def test1_content(target_path: Path): mo = Mo(Passwords()) mo.process(Path('tests/files/test1/test.mo.yaml').absolute()) assert target_path.exists() content = target_path.read_text() assert '${' not in content yield yaml.load(content, Loader=yaml.FullLoader) class TestParsing: def test_simple(self, test1_content: dict): assert test1_content['value'] == 'some_pass' def test_nested(self, test1_content: dict): assert test1_content['nested'] == 'nested_pass' def test_custom_field(self, test1_content: dict): assert test1_content['custom'] == 'custom_content' def test_username_field(self, test1_content: dict): assert test1_content['uname'] == 'sample_username' def test_invalid_key(self, test1_content: dict): assert test1_content.get('invalid') == 'None'