Source code for cfme.fixtures.automate

import fauxfactory
import pytest


[docs]@pytest.fixture(scope='module') def domain(appliance): """This fixture used to create automate domain - Datastore/Domain""" domain = appliance.collections.domains.create( name=fauxfactory.gen_alpha(), description=fauxfactory.gen_alpha(), enabled=True) yield domain domain.delete_if_exists()
[docs]@pytest.fixture(scope="module") def namespace(domain): """This fixture used to create automate namespace - Datastore/Domain/Namespace""" namespace = domain.namespaces.create( name=fauxfactory.gen_alpha(), description=fauxfactory.gen_alpha() ) yield namespace namespace.delete_if_exists()
[docs]@pytest.fixture(scope="module") def klass(namespace): """This fixture used to create automate class - Datastore/Domain/Namespace/Class""" klass = namespace.classes.create( name=fauxfactory.gen_alpha(), display_name=fauxfactory.gen_alpha(), description=fauxfactory.gen_alpha() ) yield klass klass.delete_if_exists()
[docs]@pytest.fixture(scope="module") def request_cls(domain): """custom request class""" original_class = ( domain.parent.instantiate(name="ManageIQ") .namespaces.instantiate(name="System") .classes.instantiate(name="Request") ) original_class.copy_to(domain=domain) yield domain.namespaces.instantiate(name="System").classes.instantiate(name="Request")
[docs]@pytest.fixture(scope="module") def custom_instance(request_cls): """Custom instance; Need to pass ruby method code for this fixture""" def method(ruby_code): meth = request_cls.methods.create( name="meth_{}".format(fauxfactory.gen_alphanumeric(4)), script=ruby_code ) instance = request_cls.instances.create( name="inst_{}".format(fauxfactory.gen_alphanumeric(4)), fields={"meth1": {"value": meth.name}}, ) return instance return method