From 05376f873d2b00c4e48dcabc393825d3d8098b01 Mon Sep 17 00:00:00 2001 From: Valeriy Koval Date: Fri, 20 Feb 2015 21:02:10 +0200 Subject: [PATCH] Cover package manifest with tests // Issue #69 --- tests/test_pkgmanifest.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 tests/test_pkgmanifest.py 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'])