mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-29 17:47:14 +02:00
ManifetPatrser fixes (#3080)
* Skip broken examples declaration * Allow dots in keywords * Allow "+" in keywords
This commit is contained in:
@ -56,7 +56,7 @@ class ManifestModel(DataModel):
|
||||
)
|
||||
description = DataField(max_length=1000, required=True)
|
||||
keywords = DataField(
|
||||
type=ListOfType(DataField(max_length=255, regex=r"^[a-z\d\- ]+$")),
|
||||
type=ListOfType(DataField(max_length=255, regex=r"^[a-z\d\-\+\. ]+$")),
|
||||
required=True,
|
||||
)
|
||||
authors = DataField(type=ListOfType(AuthorModel), required=True)
|
||||
|
@ -149,7 +149,7 @@ class BaseManifestParser(object):
|
||||
or not isinstance(examples, list)
|
||||
or not all(isinstance(v, dict) for v in examples)
|
||||
):
|
||||
data["examples"] = None
|
||||
examples = None
|
||||
if not examples and self.package_dir:
|
||||
data["examples"] = self.parse_examples_from_dir(self.package_dir)
|
||||
if "examples" in data and not data["examples"]:
|
||||
|
@ -427,7 +427,9 @@ def test_package_json_model():
|
||||
|
||||
def test_examples_from_dir(tmpdir_factory):
|
||||
package_dir = tmpdir_factory.mktemp("project")
|
||||
package_dir.join("library.json").write('{"name": "pkg", "version": "1.0.0"}')
|
||||
package_dir.join("library.json").write(
|
||||
'{"name": "pkg", "version": "1.0.0", "examples": ["examples/*/*.pde"]}'
|
||||
)
|
||||
examples_dir = package_dir.mkdir("examples")
|
||||
|
||||
# PlatformIO project #1
|
||||
|
Reference in New Issue
Block a user