def test_add_volume(self, mock_create_sf_connection): ''' adding a volume ''' args = dict(self.ARGS) # deep copy as other tests can modify 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 exc.value.args[0]['changed']
def test_remove_volume_idempotent(self, mock_create_sf_connection): ''' removing a volume that is not in the access group ''' 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 not exc.value.args[0]['changed']
def test_add_volume_idempotent(self, mock_create_sf_connection): ''' adding a volume that is already in the access group ''' args = dict(self.ARGS) set_module_args(args) # my_obj.sfe will be assigned a MockSFConnection object: mock_create_sf_connection.return_value = MockSFConnection( volume_id=VOLUME_ID) 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_check_error_reporting_on_invalid_account_id( self, mock_create_sf_connection): ''' report error if account id is not found ''' args = dict(self.ARGS) set_module_args(args) # my_obj.sfe will be assigned a MockSFConnection object: mock_create_sf_connection.return_value = MockSFConnection( force_error=True, where='get_account_id') my_obj = my_module() with pytest.raises(AnsibleFailJson) as exc: my_obj.apply() print(exc.value.args[0]) message = 'Error: Specified account id "%s" does not exist.' % 'element_account_id' assert exc.value.args[0]['msg'] == message
def test_check_error_reporting_on_invalid_volume_name( self, mock_create_sf_connection): ''' report error if volume does not exist ''' args = dict(self.ARGS) args['volumes'] = ['volume1'] 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: Specified volume %s does not exist' % 'volume1' assert exc.value.args[0]['msg'] == message
def test_check_error_reporting_on_modify_exception( self, mock_create_sf_connection): ''' modify does not return anything but can raise an exception ''' args = dict(self.ARGS) set_module_args(args) # my_obj.sfe will be assigned a MockSFConnection object: mock_create_sf_connection.return_value = MockSFConnection( force_error=True, where=['modify_exception']) my_obj = my_module() with pytest.raises(AnsibleFailJson) as exc: my_obj.apply() print(exc.value.args[0]) message = 'Error updating volume access group element_groupname: %s' % MODIFY_ERROR assert exc.value.args[0]['msg'] == message
def test_check_error_reporting_on_invalid_account_group_name( self, mock_create_sf_connection): ''' report error if access group does not exist ''' args = dict(self.ARGS) args['access_group'] = 'something_else' 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: Specified access group "%s" does not exist for account id: %s.' % ( 'something_else', 'element_account_id') 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'])