def test_scale_rs_wait(_replicas, _success): _name = 'test-rs' # Desired state: args = dict(name=_name, namespace='vms', replicas=5, wait=True) set_module_args(args) # Mock pre-change state: resource_args = dict(kind=KIND, **RESOURCE_DEFAULT_ARGS) mymodule.KubeVirtVMIRS.find_supported_resource.return_value = openshiftdynamic.Resource( **resource_args) res_inst = openshiftdynamic.ResourceInstance( '', dict(kind=KIND, metadata={'name': _name}, spec={'replicas': 2})) openshiftdynamic.Resource.get.return_value = res_inst openshiftdynamic.Resource.search.return_value = [res_inst] # ~Final state, after patching the object (`replicas` match desired state) KubernetesRawModule.patch_resource.return_value = dict( kind=KIND, name=_name, metadata={'name': _name}, spec={'replicas': 5}), None # Final final state, as returned by resource.watch() final_obj = dict(metadata=dict(name=_name), status=dict(readyReplicas=_replicas), **resource_args) event = openshiftdynamic.ResourceInstance(None, final_obj) openshiftdynamic.Resource.watch.return_value = [dict(object=event)] # Run code: with pytest.raises(Exception) as result: mymodule.KubeVirtVMIRS().execute_module() # Verify result: assert result.value['success'] == _success
def test_scale_rs_nowait(_replicas, _changed): _name = 'test-rs' # Desired state: args = dict(name=_name, namespace='vms', replicas=_replicas, wait=False) set_module_args(args) # Mock pre-change state: resource_args = dict(kind=KIND, **RESOURCE_DEFAULT_ARGS) mymodule.KubeVirtVMIRS.find_supported_resource.return_value = openshiftdynamic.Resource( **resource_args) res_inst = openshiftdynamic.ResourceInstance( '', dict(kind=KIND, metadata={'name': _name}, spec={'replicas': 2})) openshiftdynamic.Resource.get.return_value = res_inst openshiftdynamic.Resource.search.return_value = [res_inst] # Final state, after patching the object KubernetesRawModule.patch_resource.return_value = dict( kind=KIND, metadata={'name': _name}, spec={'replicas': _replicas}), None # Run code: with pytest.raises(AnsibleExitJson) as result: mymodule.KubeVirtVMIRS().execute_module() # Verify result: assert result.value['changed'] == _changed
def test_vmpreset_is_absent(): KIND = 'VirtulMachineInstancePreset' # Desired state: args = dict(state='absent', name='testvmipreset', namespace='vms') set_module_args(args) # State as "returned" by the "k8s cluster": resource_args = dict(kind=KIND, **RESOURCE_DEFAULT_ARGS) KubeVirtRawModule.find_supported_resource.return_value = openshiftdynamic.Resource( **resource_args) openshiftdynamic.Resource.get.return_value = None # Object doesn't exist in the cluster # Run code: with pytest.raises(AnsibleExitJson) as result: mymodule.KubeVirtVM().execute_module() # Verify result: assert not result.value['kubevirt_vm'] assert result.value['method'] == 'delete'
def test_create_vm_with_multus_nowait(): # Desired state: args = dict( state='present', name='testvm', namespace='vms', interfaces=[ { 'bridge': {}, 'name': 'default', 'network': { 'pod': {} } }, { 'bridge': {}, 'name': 'mynet', 'network': { 'multus': { 'networkName': 'mynet' } } }, ], wait=False, ) set_module_args(args) # State as "returned" by the "k8s cluster": resource_args = dict(kind=KIND, **RESOURCE_DEFAULT_ARGS) KubeVirtRawModule.find_supported_resource.return_value = openshiftdynamic.Resource( **resource_args) openshiftdynamic.Resource.get.return_value = None # Object doesn't exist in the cluster # Run code: with pytest.raises(AnsibleExitJson) as result: mymodule.KubeVirtVM().execute_module() # Verify result: assert result.value['changed'] assert result.value['method'] == 'create'