I would recommend something like this:
```python
@pytest.yield_fixture(scope="function")
def vm(catalog_item, provider_mgmt, provider_key):
    vm_name = catalog_item.provisioning_data["vm_name"]
    yield vm_name
    try:
        logger.info('Cleaning up VM %s on provider %s' % (vm_name, provider_key))
        provider_mgmt.delete_vm(vm_name+"_0001")
    except:
        # The mgmt_sys classes raise Exception :\
        logger.warning('Failed to clean up VM %s on provider %s' % (vm_name, provider_key))
```
and then in the test function something like this:
```python
def test_rhev_iso_servicecatalog(vm, catalog_item):
    """content"""
    vm is vm_name

```