forked from platformio/platformio-core
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)
|
description = DataField(max_length=1000, required=True)
|
||||||
keywords = DataField(
|
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,
|
required=True,
|
||||||
)
|
)
|
||||||
authors = DataField(type=ListOfType(AuthorModel), required=True)
|
authors = DataField(type=ListOfType(AuthorModel), required=True)
|
||||||
|
@ -149,7 +149,7 @@ class BaseManifestParser(object):
|
|||||||
or not isinstance(examples, list)
|
or not isinstance(examples, list)
|
||||||
or not all(isinstance(v, dict) for v in examples)
|
or not all(isinstance(v, dict) for v in examples)
|
||||||
):
|
):
|
||||||
data["examples"] = None
|
examples = None
|
||||||
if not examples and self.package_dir:
|
if not examples and self.package_dir:
|
||||||
data["examples"] = self.parse_examples_from_dir(self.package_dir)
|
data["examples"] = self.parse_examples_from_dir(self.package_dir)
|
||||||
if "examples" in data and not data["examples"]:
|
if "examples" in data and not data["examples"]:
|
||||||
|
@ -427,7 +427,9 @@ def test_package_json_model():
|
|||||||
|
|
||||||
def test_examples_from_dir(tmpdir_factory):
|
def test_examples_from_dir(tmpdir_factory):
|
||||||
package_dir = tmpdir_factory.mktemp("project")
|
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")
|
examples_dir = package_dir.mkdir("examples")
|
||||||
|
|
||||||
# PlatformIO project #1
|
# PlatformIO project #1
|
||||||
|
Reference in New Issue
Block a user