Source code for ase2sprkkr.asr.test.test_database_totree

import pytest
from .materials import std_test_materials


[docs] @pytest.mark.ci def test_database_totree(asr_tmpdir_w_params): from ase.db import connect from asr.database.totree import main from pathlib import Path dbname = 'database.db' db = connect(dbname) for atoms in std_test_materials: db.write(atoms) main(database=dbname, tree_structure='tree/{stoi}/{spg}/{formula:abc}') assert not Path('tree').is_dir() main(database=dbname, run=True, atomsfile='structure.json', tree_structure='tree/{stoi}/{spg}/{formula:abc}') assert Path('tree').is_dir() assert Path('tree/A/123/Ag/structure.json').is_file() assert Path('tree/A/227/Si2/structure.json').is_file() assert Path('tree/AB/187/BN/structure.json').is_file()
[docs] @pytest.fixture def make_test_db(asr_tmpdir): """Make a database that contains data in various forms.""" from .materials import BN from pathlib import Path from ase.db import connect dbname = 'database.db' db = connect(dbname) p = Path('hardlinkedfile.txt') p.write_text('Some content.') data = {'file.json': {'key': 'value'}, 'hardlinkedfile.txt': {'pointer': str(p.absolute())}} db.write(BN, data=data) return db