Esempio n. 1
0
def test_required_field_true(sdk_client_fs: ADCMClient, path, app_fs):
    """Test save button status for field with required=true"""
    _, config = prepare_cluster_and_get_config(sdk_client_fs, path, app_fs)
    with allure.step(
            'Check that if required is true and field is empty save button not active'
    ):
        assert not config.save_button_status()
def test_invisible_false_advanced_true(sdk_client_fs: ADCMClient, path,
                                       app_fs):
    """Check RO fields with advanced true and invisible false
    Scenario:
    1. Check that field invisible
    2. Check that save button not active
    3. Click advanced
    4. Check that field visible
    5. Check that we cannot edit field (read-only tag presented)
    """
    _, config = prepare_cluster_and_get_config(sdk_client_fs, path, app_fs)
    groups = config.get_field_groups()
    with allure.step('Check that field invisible'):
        for group in groups:
            assert not group.is_displayed(), group.get_attribute("class")
    with allure.step('Check that save button not active'):
        assert not config.save_button_status()
    config.show_advanced()
    assert config.advanced
    groups = config.get_field_groups()
    with allure.step('Check that field visible'):
        for group in groups:
            assert group.is_displayed(), group.get_attribute("class")
    assert not config.save_button_status()
    fields = config.get_app_fields()
    with allure.step('Check that we cannot edit field'):
        assert len(fields) == 1, "There should be exactly one field"
        assert config.is_element_read_only(
            fields[0]), "Field should be read only"
Esempio n. 3
0
def test_ui_option_invisible_true_advanced_true(sdk_client_fs: ADCMClient,
                                                path, app_fs):
    """Test field visualisation with invisible=true advanced=true"""
    _, config = prepare_cluster_and_get_config(sdk_client_fs, path, app_fs)
    groups = config.get_field_groups()
    with allure.step("Check that we haven't invisible fields on UI"):
        for group in groups:
            assert not group.is_displayed(), group.get_attribute("class")
Esempio n. 4
0
def test_password_noconfirm_true_required_false(sdk_client_fs: ADCMClient, app_fs):
    """Test password field visualisation with noconfirm=true required=false"""
    path = get_data_dir(__file__) + "/password_no_confirm_true_required_false"
    _, config = prepare_cluster_and_get_config(sdk_client_fs, path, app_fs)
    with allure.step('Check save button status for no password confirmation is false and required is false'):
        assert config.save_button_status()
        password_field = config.get_password_elements()[0]
        forms = [form.text for form in password_field.find_elements(*Common.mat_form_field)]
        assert len(forms) == 1, forms
Esempio n. 5
0
def test_number_in_range_values(sdk_client_fs: ADCMClient, value, app_fs, number_type):
    """Test save button is active for valid number values"""
    path = get_data_dir(__file__) + f"/bundles/{number_type}-positive_and_negative"
    _, config = prepare_cluster_and_get_config(sdk_client_fs, path, app_fs)
    fields = config.get_app_fields()
    form_field = fields[0].find_elements(*Common.mat_form_field)[0]
    config.set_element_value_in_input(form_field, str(value))
    with allure.step('Check that save button active for number fields in min-max range'):
        assert config.save_button_status()
Esempio n. 6
0
def test_float_in_integer_field(sdk_client_fs: ADCMClient, app_fs):
    """Test set float value for integer field"""
    path = get_data_dir(__file__) + "/bundles/integer-positive_and_negative"
    _, config = prepare_cluster_and_get_config(sdk_client_fs, path, app_fs)
    fields = config.get_app_fields()
    form_field = fields[0].find_elements(*Common.mat_form_field)[0]
    config.set_element_value_in_input(form_field, "1.2")
    with allure.step('Check that we cannot set float in integer field'):
        assert not config.save_button_status()
        fields = config.get_app_fields()
        config.assert_form_field_text_equal(fields[0], "Field [numbers_test] is invalid!")
Esempio n. 7
0
def test_password_noconfirm_false_required_true(sdk_client_fs: ADCMClient, app_fs):
    """Test password field visualisation with noconfirm=false required=true"""
    path = get_data_dir(__file__) + "/password_no_confirm_false_required_true"
    _, config = prepare_cluster_and_get_config(sdk_client_fs, path, app_fs)
    with allure.step('Check save button status for no password confirmation is true and required is false'):
        assert not config.save_button_status()
    with allure.step('Check that we have two frontend errors for password and confirmation password field'):
        password_field = config.get_password_elements()[0]
        forms = [form.text for form in password_field.find_elements(*Common.mat_form_field)]
        assert len(forms) == 2, forms
        assert 'Field [password] is required!' in forms, forms
        assert 'Confirm [password] is required!' in forms, forms
Esempio n. 8
0
def test_ui_option_invisible_false_advanced_false(sdk_client_fs: ADCMClient,
                                                  path, app_fs):
    """Test field visualisation with invisible=false advanced=false"""
    _, config = prepare_cluster_and_get_config(sdk_client_fs, path, app_fs)
    groups = config.get_field_groups()
    for group in groups:
        assert group.is_displayed(), group.get_attribute("class")
    config.show_advanced()
    groups = config.get_field_groups()
    with allure.step(
            'Check that we can see groups with advanced option and without'):
        for group in groups:
            assert group.is_displayed(), group.get_attribute("class")
Esempio n. 9
0
def test_configs_fields(sdk_client_fs: ADCMClient, config_dict, app_fs):
    """Test UI configuration page without groups. Before start test actions
    we always create configuration and expected result. All logic for test
    expected result in functions before this test function.
    Scenario:
    1. Generate configuration and expected result for test
    2. Upload bundle
    3. Create cluster
    4. Open configuration page
    5. Check save button status
    6. Check field configuration (depends on expected result dict and bundle configuration"""

    config, expected, path = _prepare_config(config_dict)
    allure.attach.file(
        "/".join([path, 'config.yaml']),
        attachment_type=allure.attachment_type.YAML,
        name='config.yaml',
    )
    field_type = config['config'][0]['type']

    cluster, ui_config = prepare_cluster_and_get_config(
        sdk_client_fs, path, app_fs)

    fields = ui_config.get_app_fields()
    with allure.step('Check save button status'):
        save_err_mess = f"Correct status for save button {[expected['save']]}"
        button_state = ui_config.save_button_status()
        assert expected['save'] == button_state, save_err_mess
        if expected['save']:
            ui_config.save_configuration()
            ui_config.assert_no_popups_displayed()
    with allure.step('Check field configuration'):
        if expected['visible']:
            if expected['visible_advanced']:
                assert not fields, "Config fields presented, expected no"
                ui_config.show_advanced()
                assert ui_config.advanced, 'Advanced button not clicked'
            fields = ui_config.get_app_fields()
            assert fields, 'No config fields, expected yes'
            for field in fields:
                ui_config.assert_field_is_editable(field, expected['editable'])
            if expected['content']:
                ui_config.assert_field_content_equal(
                    cluster, field_type, fields[0],
                    config['config'][0]['default'])
            if expected['alerts']:
                ui_config.assert_alerts_presented(field_type)
        else:
            assert not fields, "Config fields presented, expected no"
Esempio n. 10
0
def _check_groups_and_fields_visible_if_advanced_enabled(
        sdk_client: ADCMClient, path, app):
    _, config = prepare_cluster_and_get_config(sdk_client, path, app)
    fields = config.get_field_groups()
    for field in fields:
        assert not field.is_displayed(), field.get_attribute("class")
    group_names = config.get_group_elements()
    assert not group_names, group_names
    config.show_advanced()
    assert config.advanced
    fields = config.get_field_groups()
    group_names = config.get_group_elements()
    assert group_names
    for field in fields:
        assert field.is_displayed(), field.get_attribute("class")
Esempio n. 11
0
def test_ui_option_invisible_false_advanced_true(sdk_client_fs: ADCMClient,
                                                 path, app_fs):
    """Test field visualisation with invisible=false advanced=true"""
    _, config = prepare_cluster_and_get_config(sdk_client_fs, path, app_fs)
    groups = config.get_field_groups()
    config.hide_advanced()
    assert not config.advanced
    for group in groups:
        assert not group.is_displayed(), group.get_attribute("class")
    config.click_advanced()
    assert config.advanced
    groups = config.get_field_groups()
    with allure.step(
            'Check that field is not visible by default but with enabled advanced visible'
    ):
        for group in groups:
            assert group.is_displayed(), group.get_attribute("class")
Esempio n. 12
0
def test_group_advanced_true_invisible_false_field_advanced_false_invisible_true(
        sdk_client_fs: ADCMClient, path, app_fs):
    """Invisible=false and advanced=true for groups advanced=false and invisible=true for fields"""
    _, config = prepare_cluster_and_get_config(sdk_client_fs, path, app_fs)
    fields = config.get_field_groups()
    for field in fields:
        assert not field.is_displayed(), field.get_attribute("class")
    group_names = config.get_group_elements()
    assert not group_names, group_names
    config.show_advanced()
    assert config.advanced
    with allure.step('Check that only group is visible if advanced enabled'):
        fields = config.get_field_groups()
        group_names = config.get_group_elements()
        assert group_names
        for field in fields:
            assert not field.is_displayed(), field.get_attribute("class")
Esempio n. 13
0
def test_all_true(sdk_client_fs: ADCMClient, path, app_fs):
    """Check group and field ui options when advanced and invisible is true"""
    _, config = prepare_cluster_and_get_config(sdk_client_fs, path, app_fs)
    groups = config.get_field_groups()
    for group in groups:
        assert not group.is_displayed(), group.get_attribute("class")
    group_names = config.get_group_elements()
    assert not group_names, group_names
    config.show_advanced()
    assert config.advanced
    with allure.step(
            'Check group and field ui options when advanced and invisible is true'
    ):
        groups = config.get_field_groups()
        group_names = config.get_group_elements()
        assert not group_names
        for group in groups:
            assert not group.is_displayed(), group.get_attribute("class")
Esempio n. 14
0
def test_number_validation(sdk_client_fs: ADCMClient, path, app_fs):
    """Check that we have errors and save button is not active
    for number field with values out of range
    """
    _, config = prepare_cluster_and_get_config(sdk_client_fs, path, app_fs)

    assert config.save_button_status()
    fields = config.get_app_fields()
    form_field = fields[0].find_elements(*Common.mat_form_field)[0]
    config.clear_input_element(form_field)
    assert not config.save_button_status()
    config.assert_form_field_text_equal(fields[0], "Field [numbers_test] is required!")
    config.set_element_value_in_input(form_field, "asdsa")
    config.assert_form_field_text_equal(fields[0], "Field [numbers_test] is invalid!")
    assert not config.save_button_status()
    config.set_element_value_in_input(form_field, "-111111")
    assert not config.save_button_status()
    config.assert_form_field_text_in(fields[0], "Field [numbers_test] value cannot be less than")
    config.set_element_value_in_input(form_field, "111111")
    assert not config.save_button_status()
    config.assert_form_field_text_in(fields[0], "Field [numbers_test] value cannot be greater than")
Esempio n. 15
0
def test_all_true(sdk_client_fs: ADCMClient, path, app_fs):
    """Check RO fields with UI options in true
    Scenario:
    1. Check that field invisible
    2. Check that save button not active
    3. Click advanced
    4. Check that field invisible
    """
    _, config = prepare_cluster_and_get_config(sdk_client_fs, path, app_fs)

    groups = config.get_field_groups()
    with allure.step('Check that field invisible'):
        for group in groups:
            assert not group.is_displayed(), group.get_attribute("class")
    with allure.step('Check that save button not active'):
        assert not config.save_button_status()
    config.show_advanced()
    assert config.advanced
    with allure.step('Check that field invisible'):
        groups = config.get_field_groups()
        for group in groups:
            assert not group.is_displayed(), group.get_attribute("class")
Esempio n. 16
0
def test_password_noconfirm_false_required_false(sdk_client_fs: ADCMClient, app_fs):
    """Test password field visualisation with noconfirm=false required=false"""
    path = get_data_dir(__file__) + "/password_no_confirm_false_required_false"
    _, config = prepare_cluster_and_get_config(sdk_client_fs, path, app_fs)
    with allure.step('Check save button status for no password confirmation is false and required is false'):
        assert config.save_button_status()
Esempio n. 17
0
def test_group_configs_field(sdk_client_fs: ADCMClient, config_dict, expected,
                             app_fs):
    """Test for configuration fields with groups. Before start test actions
    we always create configuration and expected result. All logic for test
    expected result in functions before this test function. If we have
    advanced fields inside configuration and group visible we check
    field and group status after clicking advanced button. For activatable
    groups we don't change group status. We have two types of tests for activatable
    groups: the first one when group is active and the second when group not active.
    Scenario:
    1. Generate configuration and expected result for test
    2. Upload bundle
    3. Create cluster
    4. Open configuration page
    5. Check save button status
    6. Check field configuration (depends on expected result dict and bundle configuration)"""

    config, path = _prepare_group_config(config_dict)
    allure.attach.file(
        "/".join([path, 'config.yaml']),
        attachment_type=allure.attachment_type.YAML,
        name='config.yaml',
    )

    field_type = config['config'][0]['subs'][0]['type']

    cluster, ui_config = prepare_cluster_and_get_config(
        sdk_client_fs, path, app_fs)

    groups = ui_config.get_group_elements()
    fields = ui_config.get_app_fields()
    with allure.step('Check save button status'):
        save_err_mess = f"Correct status for save button {[expected['save']]}"
        assert expected['save'] == ui_config.save_button_status(
        ), save_err_mess
        if expected['save']:
            ui_config.save_configuration()
            ui_config.assert_no_popups_displayed()
    with allure.step('Check configuration'):
        if expected['group_visible'] and not expected['field_visible']:
            if expected['group_visible_advanced']:
                assert not groups, 'Groups presented, expected no'
                assert not fields, 'Fields presented, expected no'
                ui_config.show_advanced()
                assert ui_config.advanced, 'Advanced button not clicked'
            groups = ui_config.get_group_elements()
            fields = ui_config.get_app_fields()
            assert groups, "Groups not presented, expected yes"
            for field in fields:
                assert not field.is_displayed()
            if "activatable" in config['config'][0].keys():
                ui_config.assert_group_status(groups[0],
                                              config['config'][0]['active'])

        if expected['group_visible'] and expected['field_visible']:
            if expected['field_visible_advanced'] or expected[
                    'group_visible_advanced']:
                assert not fields, 'Fields presented, expected no'
                ui_config.show_advanced()
                assert ui_config.advanced, 'Advanced button not clicked'
            groups = ui_config.get_group_elements()
            fields = ui_config.get_app_fields()
            assert groups, "Groups not presented, expected yes"
            assert fields, "Fields not presented, expected yes"
            for field in fields:
                ui_config.assert_field_is_editable(field, expected['editable'])
            if expected['content']:
                default_value = config['config'][0]['subs'][0]['default']
                ui_config.assert_field_content_equal(cluster, field_type,
                                                     fields[0], default_value)
            if expected['alerts']:
                ui_config.assert_alerts_presented(field_type)
            if "activatable" in config['config'][0].keys():
                ui_config.assert_group_status(groups[0],
                                              config['config'][0]['active'])
        if not expected['group_visible']:
            assert not groups, 'Groups presented, expected no'
            ui_config.show_advanced()
            assert ui_config.advanced, 'Advanced button not clicked'
            groups = ui_config.get_group_elements()
            assert not groups, "Groups presented, expected no"