diff --git a/poetry/core/json/schemas/poetry-schema.json b/poetry/core/json/schemas/poetry-schema.json index af5d7ee0b..81664910f 100644 --- a/poetry/core/json/schemas/poetry-schema.json +++ b/poetry/core/json/schemas/poetry-schema.json @@ -496,6 +496,9 @@ }, { "$ref": "#/definitions/path-dependency" + }, + { + "$ref": "#/definitions/url-dependency" } ] } diff --git a/tests/json/__init__.py b/tests/json/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/json/test_poetry_schema.py b/tests/json/test_poetry_schema.py new file mode 100644 index 000000000..905427eb1 --- /dev/null +++ b/tests/json/test_poetry_schema.py @@ -0,0 +1,44 @@ +import pytest + +from poetry.core.json import validate_object + + +@pytest.fixture +def base_object(): + return { + "name": "myapp", + "version": "1.0.0", + "description": "Some description.", + "dependencies": {"python": "^3.6"}, + "dev-dependencies": {}, + } + + +@pytest.fixture +def multi_url_object(): + return { + "name": "myapp", + "version": "1.0.0", + "description": "Some description.", + "dependencies": { + "python": [ + { + "url": "https://download.pytorch.org/whl/cpu/torch-1.4.0%2Bcpu-cp37-cp37m-linux_x86_64.whl", + "platform": "linux", + }, + {"path": "../foo", "platform": "darwin"}, + ] + }, + "dev-dependencies": {}, + } + + +def test_path_dependencies(base_object): + base_object["dependencies"].update({"foo": {"path": "../foo"}}) + base_object["dev-dependencies"].update({"foo": {"path": "../foo"}}) + + assert len(validate_object(base_object, "poetry-schema")) == 0 + + +def test_multi_url_dependencies(multi_url_object): + assert len(validate_object(multi_url_object, "poetry-schema")) == 0