def test_add_qos_policy_idempotent(self, mock_create_sf_connection): ''' adding a qos_policy ''' args = dict(self.ARGS) set_module_args(args) # my_obj.sfe will be assigned a MockSFConnection object: mock_create_sf_connection.return_value = MockSFConnection() my_obj = my_module() with pytest.raises(AnsibleExitJson) as exc: my_obj.apply() print(exc.value.args[0]) assert not exc.value.args[0]['changed']
def test_modify_qos_policy(self, mock_create_sf_connection): ''' modifying a qos policy ''' args = dict(self.ARGS) args['qos'] = {'minIOPS': 2000} set_module_args(args) # my_obj.sfe will be assigned a MockSFConnection object: mock_create_sf_connection.return_value = MockSFConnection() my_obj = my_module() with pytest.raises(AnsibleExitJson) as exc: my_obj.apply() print(exc.value.args[0]) assert exc.value.args[0]['changed']
def test_delete_qos_policy(self, mock_create_sf_connection): ''' removing a qos policy ''' args = dict(self.ARGS) args['state'] = 'absent' set_module_args(args) # my_obj.sfe will be assigned a MockSFConnection object: mock_create_sf_connection.return_value = MockSFConnection() my_obj = my_module() with pytest.raises(AnsibleExitJson) as exc: my_obj.apply() print(exc.value.args[0]) assert exc.value.args[0]['changed']
def test_add_qos_policy(self, mock_create_sf_connection): ''' adding a qos_policy ''' args = dict(self.ARGS) # deep copy as other tests can modify args args['name'] += '_1' # new name to force a create set_module_args(args) # my_obj.sfe will be assigned a MockSFConnection object: mock_create_sf_connection.return_value = MockSFConnection() my_obj = my_module() with pytest.raises(AnsibleExitJson) as exc: my_obj.apply() print(exc.value.args[0]) assert exc.value.args[0]['changed']
def test_delete_qos_policy_exception(self, mock_create_sf_connection): ''' deleting a qos policy can raise an exception ''' args = dict(self.ARGS) args['state'] = 'absent' set_module_args(args) # my_obj.sfe will be assigned a MockSFConnection object: mock_create_sf_connection.return_value = MockSFConnection( force_error=True, where=['delete_exception']) my_obj = my_module() with pytest.raises(AnsibleFailJson) as exc: my_obj.apply() print(exc.value.args[0]) message = 'Error deleting qos policy: %s' % POLICY_NAME assert exc.value.args[0]['msg'].startswith(message)
def test_check_error_reporting_on_missing_from_name_policy( self, mock_create_sf_connection): ''' report error if qos policy to rename does not exist ''' args = dict(self.ARGS) args['name'] += '_1' # new name to force a create args['from_name'] = 'something_not_likely_to_exist' set_module_args(args) # my_obj.sfe will be assigned a MockSFConnection object: mock_create_sf_connection.return_value = MockSFConnection() my_obj = my_module() with pytest.raises(AnsibleFailJson) as exc: my_obj.apply() print(exc.value.args[0]) message = "Error renaming qos policy, no existing policy with name/id: %s" % args[ 'from_name'] assert exc.value.args[0]['msg'] == message
def test_check_error_reporting_on_missing_qos_option( self, mock_create_sf_connection): ''' report error if qos option is not given on create ''' args = dict(self.ARGS) args['name'] += '_1' # new name to force a create args.pop('qos') set_module_args(args) # my_obj.sfe will be assigned a MockSFConnection object: mock_create_sf_connection.return_value = MockSFConnection() my_obj = my_module() with pytest.raises(AnsibleFailJson) as exc: my_obj.apply() print(exc.value.args[0]) message = "Error creating qos policy: %s, 'qos:' option is required" % args[ 'name'] assert exc.value.args[0]['msg'] == message
def test_module_fail_when_required_args_missing(self): ''' required arguments are reported as errors ''' with pytest.raises(AnsibleFailJson) as exc: set_module_args({}) my_module() print('Info: %s' % exc.value.args[0]['msg'])