12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- import pytest
- import rpm_version
- expected_pkgs = {
- "spam": {
- "name": "spam",
- "version": "3.2.1",
- },
- "eggs": {
- "name": "eggs",
- "version": "3.2.1",
- },
- }
- @pytest.mark.parametrize('pkgs, expect_not_found', [
- (
- {},
- ["spam", "eggs"], # none found
- ),
- (
- {"spam": ["3.2.1", "4.5.1"]},
- ["eggs"], # completely missing
- ),
- (
- {
- "spam": ["3.2.1", "4.5.1"],
- "eggs": ["3.2.1"],
- },
- [], # all found
- ),
- ])
- def test_check_pkg_found(pkgs, expect_not_found):
- if expect_not_found:
- with pytest.raises(rpm_version.RpmVersionException) as e:
- rpm_version._check_pkg_versions(pkgs, expected_pkgs)
- assert "not found to be installed" in str(e.value)
- assert set(expect_not_found) == set(e.value.problem_pkgs)
- else:
- rpm_version._check_pkg_versions(pkgs, expected_pkgs)
- @pytest.mark.parametrize('pkgs, expect_not_found', [
- (
- {
- 'spam': ['3.2.1'],
- 'eggs': ['3.3.2'],
- },
- {
- "eggs": {
- "required_versions": ["3.2"],
- "found_versions": ["3.3"],
- }
- }, # not the right version
- ),
- (
- {
- 'spam': ['3.1.2', "3.3.2"],
- 'eggs': ['3.3.2', "1.2.3"],
- },
- {
- "eggs": {
- "required_versions": ["3.2"],
- "found_versions": ["3.3", "1.2"],
- },
- "spam": {
- "required_versions": ["3.2"],
- "found_versions": ["3.1", "3.3"],
- }
- }, # not the right version
- ),
- ])
- def test_check_pkg_version_found(pkgs, expect_not_found):
- if expect_not_found:
- with pytest.raises(rpm_version.RpmVersionException) as e:
- rpm_version._check_pkg_versions(pkgs, expected_pkgs)
- assert "found to be installed with an incorrect version" in str(e.value)
- assert expect_not_found == e.value.problem_pkgs
- else:
- rpm_version._check_pkg_versions(pkgs, expected_pkgs)
|