def test_fleurinp_modifier2(create_fleurinp, inpxml_etree): """Tests if fleurinp_modifier with various other modifations methods, the detailed tests for method functionality is tested elsewhere.""" from aiida_fleur.tools.xml_util import eval_xpath fleurinp_tmp = create_fleurinp(inpxmlfilefolder) etree = inpxml_etree(inpxmlfilefolder) fm = FleurinpModifier(fleurinp_tmp) actions = fm.get_avail_actions() assert isinstance(actions, dict) new_tag = eval_xpath(etree, '/fleurInput/calculationSetup/scfLoop') fm.delete_tag('/fleurInput/calculationSetup/scfLoop') fm.replace_tag('/fleurInput/calculationSetup/cutoffs', new_tag) fm.delete_att('/fleurInput/calculationSetup/soc', 'theta') fm.create_tag('/fleurInput/calculationSetup/soc', 'theta') fm.xml_set_all_text('/fleurInput/cell/symmetryOperations/symOp/row-1', 'test text') fm.xml_set_text_occ('/fleurInput/cell/symmetryOperations/symOp/row-1', 'test text') fm.xml_set_text('/fleurInput/cell/symmetryOperations/symOp/row-1', 'test text') fm.xml_set_all_attribv('/fleurInput/calculationSetup/soc', 'theta', 12) fm.xml_set_first_attribv('/fleurInput/calculationSetup/soc', 'theta', 12) fm.xml_set_attribv_occ('/fleurInput/calculationSetup/soc', 'theta', 12) fm.set_species_label(' 222', {'mtSphere': {'radius': 3.333}}) fm.set_atomgr_att_label(attributedict={'force': [('relaxXYZ', 'FFF')]}, atom_label=' 222') fm.set_atomgr_att(attributedict={'force': [('relaxXYZ', 'TFF')]}, species='Fe-1') fm.set_nkpts(500, gamma='T') fm.set_kpath({'gamma': (0, 0, 0), 'L': (0.1, 0.1, 0.1)}, 300) fm.add_num_to_att('/fleurInput/calculationSetup/soc', 'theta', 4) #fm.set_species1 fm.show()
def test_fleurinp_modifier_included_files(create_fleurinp, inpxml_etree, file_regression): """Tests if fleurinp_modifier with various other modifations methods, the detailed tests for method functionality is tested elsewhere.""" TEST_FOLDER = os.path.dirname(os.path.abspath(__file__)) TEST_FOLDER = os.path.abspath(os.path.join(TEST_FOLDER, '../files/included_xml_files')) INPXML_FILE = os.path.join(TEST_FOLDER, 'inp.xml') KPTSXML_FILE = os.path.join(TEST_FOLDER, 'kpts.xml') SYMXML_FILE = os.path.join(TEST_FOLDER, 'sym.xml') fleurinp_tmp = create_fleurinp(INPXML_FILE, additional_files=[KPTSXML_FILE, SYMXML_FILE]) fm = FleurinpModifier(fleurinp_tmp) #Modify main inp.xml file fm.set_inpchanges({'dos': True, 'Kmax': 3.9}) fm.shift_value({'Kmax': 0.1}, 'rel') #Modify included xml files fm.delete_tag('symmetryOperations') fm.create_tag('symmetryOperations') fm.create_tag('kPointList') fm.create_tag('kPoint', occurrences=0) fm.set_attrib_value('name', 'TEST', contains='kPointList', occurrences=0) fm.set_text('kPoint', [0.0, 0.0, 0.0], complex_xpath="/fleurInput/cell/bzIntegration/kPointLists/kPointList[@name='TEST']/kPoint") fm.show() new_fleurinp = fm.freeze() assert new_fleurinp.files == ['kpts.xml', 'sym.xml', 'inp.xml'] file_content = [ new_fleurinp.get_content('inp.xml'), new_fleurinp.get_content('kpts.xml'), new_fleurinp.get_content('sym.xml') ] file_regression.check('\n'.join(file_content), extension='.xml')