Browse Source

Add unit tests for package_availability.py

Rodolfo Carvalho 8 years ago
parent
commit
a39620a076
1 changed files with 49 additions and 0 deletions
  1. 49 0
      roles/openshift_health_checker/test/package_availability_test.py

+ 49 - 0
roles/openshift_health_checker/test/package_availability_test.py

@@ -0,0 +1,49 @@
+import pytest
+
+from openshift_checks.package_availability import PackageAvailability
+
+
+@pytest.mark.parametrize('task_vars,must_have_packages,must_not_have_packages', [
+    (
+        dict(openshift=dict(common=dict(service_type='openshift'))),
+        set(),
+        set(['openshift-master', 'openshift-node']),
+    ),
+    (
+        dict(
+            openshift=dict(common=dict(service_type='origin')),
+            group_names=['masters'],
+        ),
+        set(['origin-master']),
+        set(['origin-node']),
+    ),
+    (
+        dict(
+            openshift=dict(common=dict(service_type='atomic-openshift')),
+            group_names=['nodes'],
+        ),
+        set(['atomic-openshift-node']),
+        set(['atomic-openshift-master']),
+    ),
+    (
+        dict(
+            openshift=dict(common=dict(service_type='atomic-openshift')),
+            group_names=['masters', 'nodes'],
+        ),
+        set(['atomic-openshift-master', 'atomic-openshift-node']),
+        set(),
+    ),
+])
+def test_package_availability(task_vars, must_have_packages, must_not_have_packages):
+    return_value = object()
+
+    def execute_module(module_name=None, module_args=None, tmp=None, task_vars=None):
+        assert module_name == 'check_yum_update'
+        assert 'packages' in module_args
+        assert set(module_args['packages']).issuperset(must_have_packages)
+        assert not set(module_args['packages']).intersection(must_not_have_packages)
+        return return_value
+
+    check = PackageAvailability(execute_module=execute_module)
+    result = check.run(tmp=None, task_vars=task_vars)
+    assert result is return_value