old_contents: # Copyright 2014-present PlatformIO <contact@platformio.org>
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #    http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  import pytest
  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/manifest")
      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
      assert req.headers['Content-Type'] in ("application/gzip",
                                             "application/octet-stream")
  
  
  def test_package(package_data):
      assert package_data['url'].endswith(".tar.gz")
  
      r = requests.head(package_data['url'], allow_redirects=True)
      validate_response(r)
  
      if "X-Checksum-Sha1" not in r.headers:
          return pytest.skip("X-Checksum-Sha1 is not provided")
  
      assert package_data['sha1'] == r.headers.get("X-Checksum-Sha1")
  
new_contents: # Copyright 2014-present PlatformIO <contact@platformio.org>
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #    http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  import pytest
  import requests
  
  
  def pytest_generate_tests(metafunc):
      if "package_data" not in metafunc.fixturenames:
          return
      pkgs_manifest = requests.get(
          "https://dl.bintray.com/platformio/dl-packages/manifest.json").json()
      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
      assert req.headers['Content-Type'] in ("application/gzip",
                                             "application/octet-stream")
  
  
  def test_package(package_data):
      assert package_data['url'].endswith(".tar.gz")
  
      r = requests.head(package_data['url'], allow_redirects=True)
      validate_response(r)
  
      if "X-Checksum-Sha1" not in r.headers:
          return pytest.skip("X-Checksum-Sha1 is not provided")
  
      assert package_data['sha1'] == r.headers.get("X-Checksum-Sha1")
  
subject: Test PlatformIO 3.0 packages