Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/package/tests/download_test_base.py
- This file was added.
# Copyright (C) 2019 The Software Heritage developers | |||||
# See the AUTHORS file at the top-level directory of this distribution | |||||
# License: GNU General Public License version 3, or any later version | |||||
# See top-level LICENSE file for more information | |||||
def test_compare_field(fl): | |||||
"""Check if the `compare_field` variable is declared | |||||
""" | |||||
if fl.compare_field is None: | |||||
assert False | |||||
def test_filter_package_versions(fl, tarballs): | |||||
"""Tests :func:`filter_package_versions` for different conditions. | |||||
This test checks :func:`filter_package_versions` for three different | |||||
scenario | |||||
* No tarball is already known | |||||
* Only one tarball in already known | |||||
* All the tarballs are known | |||||
""" | |||||
# test for no known version | |||||
filtered_tarballs = fl.filter_package_versions(tarballs, {}) | |||||
assert filtered_tarballs == tarballs | |||||
known_versions = {} | |||||
# test with one known version | |||||
# Assuming first tarball is already known | |||||
key = fl.compare_field | |||||
known_tarball_key = tarballs[0][key] | |||||
known_versions[known_tarball_key] = 'some_revision_id' | |||||
filtered_tarballs = fl.filter_package_versions(tarballs, | |||||
known_versions) | |||||
# one tarball removed | |||||
assert len(filtered_tarballs) == (len(tarballs) - 1) | |||||
# Check if the know tarball is present in filtered tarballs | |||||
for tarball in filtered_tarballs: | |||||
if known_tarball_key in tarball: | |||||
assert False | |||||
# if all versions are known | |||||
for tarball in tarballs: | |||||
known_versions[tarball[key]] = 'some_revision_id' | |||||
filtered_tarballs = fl.filter_package_versions(tarballs, | |||||
known_versions) | |||||
assert filtered_tarballs == [] | |||||
def test_invalid_request(fl, tarballs, requests_mock): | |||||
"""It tests for scenario when the tarball url are invalid. | |||||
In this scenario all the tarball url gives 404 error. | |||||
""" | |||||
for tarball in tarballs: | |||||
requests_mock.get(tarball['url'], text='Not Found', status_code=404) | |||||
generator = fl.prepare_package_versions(tarballs) | |||||
package_versions = [data for data in generator] | |||||
assert package_versions == [] |