Module harvester_e2e_tests.apis.test_addons

Classes

class TestDefaultAddons
Expand source code
@pytest.mark.p0
@pytest.mark.parametrize("addon", [
    'cattle-logging-system/rancher-logging',
    'cattle-monitoring-system/rancher-monitoring',
    'harvester-system/harvester-seeder',
    'harvester-system/nvidia-driver-toolkit',
    'harvester-system/pcidevices-controller',
    'harvester-system/vm-import-controller',
])
class TestDefaultAddons:
    def test_get(self, api_client, addon):
        code, data = api_client.addons.get(addon)

        assert 200 == code, (code, data)
        assert not data.get('spec', {}).get('enabled', True), (code, data)
        assert "AddonDisabled" == data.get('status', {}).get('status')

    @pytest.mark.dependency(name="enable_addon")
    def test_enable(self, api_client, wait_timeout, addon):
        code, data = api_client.addons.enable(addon)

        assert 200 == code, (code, data)
        assert data.get('spec', {}).get('enabled', False), (code, data)

        endtime = datetime.now() + timedelta(seconds=wait_timeout)
        while endtime > datetime.now():
            code, data = api_client.addons.get(addon)
            if data.get('status', {}).get('status', "") in ("deployed", "AddonDeploySuccessful"):
                break
            sleep(3)
        else:
            raise AssertionError(
                f"Failed to enable addon {addon} with {wait_timeout} timed out\n"
                f"API Status({code}): {data}"
            )

    @pytest.mark.dependency(depends=["enable_addon"])
    def test_disable(self, api_client, addon, wait_timeout):
        code, data = api_client.addons.disable(addon)

        assert 200 == code, (code, data)
        assert not data.get('spec', {}).get('enabled', True), (code, data)

        endtime = datetime.now() + timedelta(seconds=wait_timeout)
        while endtime > datetime.now():
            code, data = api_client.addons.get(addon)
            if "Disabled" in data.get('status', {}).get('status', ""):
                break
            sleep(3)
        else:
            raise AssertionError(
                f"Failed to disable addon {addon} with {wait_timeout} timed out\n"
                f"API Status({code}): {data}"
            )

Class variables

var pytestmark

Methods

def test_disable(self, api_client, addon, wait_timeout)
def test_enable(self, api_client, wait_timeout, addon)
def test_get(self, api_client, addon)