ManifetPatrser fixes (#3080)

* Skip broken examples declaration

* Allow dots in keywords

* Allow "+" in keywords
This commit is contained in:
Ivan Kravets
2019-10-03 14:55:04 +03:00
committed by GitHub
parent 8febdc19ea
commit 76865a1730
3 changed files with 5 additions and 3 deletions

View File

@ -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)

View File

@ -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"]:

View File

@ -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