def config_update_description(path, text): config = ProjectConfig(path, parse_extra=False, expand_interpolations=False) if not config.has_section("platformio"): config.add_section("platformio") if text: config.set("platformio", "description", text) else: if config.has_option("platformio", "description"): config.remove_option("platformio", "description") if not config.options("platformio"): config.remove_section("platformio") return config.save()
def test_update_and_save(tmpdir_factory): tmpdir = tmpdir_factory.mktemp("project") tmpdir.join("platformio.ini").write( """ [platformio] extra_configs = a.ini, b.ini [env:myenv] board = myboard """ ) config = ProjectConfig(tmpdir.join("platformio.ini").strpath) assert config.envs() == ["myenv"] assert config.as_tuple()[0][1][0][1] == ["a.ini", "b.ini"] config.update( [ ["platformio", [("extra_configs", ["extra.ini"])]], ["env:myenv", [("framework", ["espidf", "arduino"])]], ["check_types", [("float_option", 13.99), ("bool_option", True)]], ] ) assert config.get("platformio", "extra_configs") == ["extra.ini"] config.remove_section("platformio") assert config.as_tuple() == [ ("env:myenv", [("board", "myboard"), ("framework", ["espidf", "arduino"])]), ("check_types", [("float_option", "13.99"), ("bool_option", "yes")]), ] config.save() contents = tmpdir.join("platformio.ini").read() assert contents[-4:] == "yes\n" lines = [ line.strip() for line in contents.split("\n") if line.strip() and not line.startswith((";", "#")) ] assert lines == [ "[env:myenv]", "board = myboard", "framework =", "espidf", "arduino", "[check_types]", "float_option = 13.99", "bool_option = yes", ]
def _copy_project_conf(build_dir, project_conf): config = ProjectConfig(project_conf, parse_extra=False) if config.has_section("platformio"): config.remove_section("platformio") config.save(join(build_dir, "platformio.ini"))