summaryrefslogtreecommitdiffstats
path: root/roles/openshift_health_checker/test/rpm_version_test.py
diff options
context:
space:
mode:
authorOpenShift Bot <eparis+openshiftbot@redhat.com>2017-06-05 12:53:40 -0400
committerGitHub <noreply@github.com>2017-06-05 12:53:40 -0400
commit0530383cc184d89b74a6b07c1a11fcab4956e1a0 (patch)
treeefb9df9cfb30fcd78ec5cfb6093399b9dec6963a /roles/openshift_health_checker/test/rpm_version_test.py
parentef53abf24b5e894c08a9ee2927eb6a2de5449f82 (diff)
parent9faafd7f080659043865a0218208bba97519cec9 (diff)
downloadopenshift-0530383cc184d89b74a6b07c1a11fcab4956e1a0.tar.gz
openshift-0530383cc184d89b74a6b07c1a11fcab4956e1a0.tar.bz2
openshift-0530383cc184d89b74a6b07c1a11fcab4956e1a0.tar.xz
openshift-0530383cc184d89b74a6b07c1a11fcab4956e1a0.zip
Merge pull request #4157 from juanvallejo/jvallejo/add-retroactive-ovs-version-check
Merged by openshift-bot
Diffstat (limited to 'roles/openshift_health_checker/test/rpm_version_test.py')
-rw-r--r--roles/openshift_health_checker/test/rpm_version_test.py82
1 files changed, 82 insertions, 0 deletions
diff --git a/roles/openshift_health_checker/test/rpm_version_test.py b/roles/openshift_health_checker/test/rpm_version_test.py
new file mode 100644
index 000000000..2f09ef965
--- /dev/null
+++ b/roles/openshift_health_checker/test/rpm_version_test.py
@@ -0,0 +1,82 @@
+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_version": "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_version": "3.2",
+ "found_versions": ["3.3", "1.2"],
+ },
+ "spam": {
+ "required_version": "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)