diff --git a/tests/test_pkgmanifest.py b/tests/test_pkgmanifest.py new file mode 100644 index 00000000..aa95df8a --- /dev/null +++ b/tests/test_pkgmanifest.py @@ -0,0 +1,34 @@ +# Copyright (C) Ivan Kravets +# See LICENSE for details. + +import requests +from platformio.util import get_api_result + + +def pytest_generate_tests(metafunc): + if "package_data" not in metafunc.fixturenames: + return + pkgs_manifest = get_api_result("/packages") + assert isinstance(pkgs_manifest, dict) + packages = [] + for _, variants in pkgs_manifest.iteritems(): + for item in variants: + packages.append(item) + metafunc.parametrize("package_data", packages) + + +def validate_response(req): + assert req.status_code == 200 + assert int(req.headers['Content-Length']) > 0 + + +def validate_package(url): + r = requests.head(url, allow_redirects=True) + validate_response(r) + assert r.headers['Content-Type'] == "application/x-gzip" + + +def test_package(package_data): + assert str( + package_data['version']) + ".tar.gz" in package_data['url'] + validate_package(package_data['url'])