Example #1
0
def test_string_type_parameter(core_session, created_suffix, suffix_cleaner,
                               cleanup_accounts, cleanup_reports):
    """
    TCID: C6340 Create report with String type parameter required
    :param created_suffix: centrify Authentication Session
    :param core_session: Fixture to add the suffix
    :param suffix_cleaner: Fixture to delete the created suffix
    :param cleanup_accounts: Fixture to delete the created user
    :param cleanup_reports: Fixture to delete the created report
    """
    user_list = cleanup_accounts[2]
    user_create_data = Configs.get_test_node('platform_report_data',
                                             'automation_main')
    prefix = user_create_data['prefix']
    user_alias = core_session.auth_details['User'].split('@')[1]

    user_name_1 = prefix + guid() + "@" + user_alias
    user_props = {
        "Mail": user_create_data['user_email'],
        "Password": user_create_data['password'],
        "PasswordNeverExpire": True,
        "Username": user_name_1,
        "Name": user_name_1
    }
    success, result_user_1 = UserManager.create_user_with_args(
        core_session, user_props)
    assert success, f'Failed to create an user:{result_user_1}'
    logger.info(f'Successfully created an user:{result_user_1}')

    suffix_alias = created_suffix
    user_name_2 = prefix + guid() + "@" + suffix_alias['alias']
    user_props = {
        "Mail": user_create_data['user_email'],
        "Password": user_create_data['password'],
        "PasswordNeverExpire": True,
        "Username": user_name_2,
        "Name": user_name_2
    }
    success, result_user_2 = UserManager.create_user_with_args(
        core_session, user_props)
    assert success, f'Failed to create an user:{result_user_2}'
    logger.info(f'Successfully created an user:{result_user_2}')

    reports = Reports(core_session, pop_prefix_base)
    report = reports.create_report({
        "Name":
        "report_A",
        "Query":
        "select Username, "
        "lastlogin from user where Username like @userNM",
        "Parameters": [{
            "Type": "string",
            "Name": "userNM",
            "Label": "Input searched username"
        }]
    })
    assert report, f'Failed to create the report:{report}'
    logger.info(f'Successfully Created report: {report}')

    # All users whose username starts with prefix
    sript_1 = f"select Username, lastlogin from user where Username like '{prefix}%'"
    result_prefix = RedrockController.redrock_query(core_session, sript_1)
    username_with_prefix = []
    for username in result_prefix:
        username_with_prefix.append(username['Row']['Username'])
    for i in username_with_prefix:
        assert i.startswith(
            prefix
        ), f'The report result user list are not starting with {prefix}'
    logger.info(
        f'The report result list all users whose Username starts with: {username_with_prefix}'
    )

    # All users whose username ends with suffix
    sript_2 = f"select Username, lastlogin from user where Username like '%{suffix_alias['alias']}'"
    result_suffix = RedrockController.redrock_query(core_session, sript_2)
    username_with_suffix = []
    for username_suffix in result_suffix:
        username_with_suffix.append(username_suffix['Row']['Username'])
    for i in username_with_suffix:
        assert i.endswith(
            suffix_alias['alias']
        ), f'The report result user list are not ending with:{suffix_alias["alias"]}'
    logger.info(
        f'The report result list all users whose Username ends with: {username_with_prefix}'
    )

    # Delete created report, user and suffix
    found_report = reports.get_report_by_name(core_session,
                                              report['Name'] + ".report")
    cleanup_reports.append(found_report['Path'])
    user_list.append(result_user_2)
    user_list.append(result_user_1)
    suffix_cleaner.append(suffix_alias['alias'])
Example #2
0
def test_user_type_parameter(core_session, cleanup_accounts, cleanup_reports):
    """
    TCID: C6341 Create report with User type parameter required
    :param core_session: Centrify Authentication session
    """
    user_list = cleanup_accounts[2]
    session_user = core_session.__dict__
    display_name_1 = session_user['auth_details']['DisplayName']
    user_create_data = Configs.get_test_node('platform_report_data',
                                             'automation_main')
    prefix = user_create_data['prefix']
    user_alias = core_session.auth_details['User'].split('@')[1]

    user_name_2 = prefix + guid() + "@" + user_alias
    user_props = {
        "Mail": user_create_data['user_email'],
        "Password": user_create_data['password'],
        "PasswordNeverExpire": True,
        "DisplayName": user_create_data['display_name'],
        "Username": user_name_2,
        "Name": user_name_2
    }
    success, result_user_2 = UserManager.create_user_with_args(
        core_session, user_props)
    assert success, f'Failed to create an user:{result_user_2}'
    logger.info(f'Successfully created an user:{result_user_2}')

    reports = Reports(core_session, pop_prefix_base)
    report = reports.create_report({
        "Name":
        "report_A",
        "Query":
        "select Username, LastLogin from user where DisplayName= @userNM",
        "Parameters": [{
            "Type": "User",
            "Name": "userNM",
            "Label": "Input searched username",
            "ObjectProperty": "DisplayName"
        }]
    })
    assert report, f'Failed to create the report:{report}'
    logger.info(f'Successfully Created report: {report}')

    # Actual result for all user list with display name same as session user display name.
    # and this details will compare all the user from reports page
    actual_script_1 = f'Select Username, LastLogin from user where DisplayName = "{display_name_1}"'
    actual_user_list_1 = []
    actual_result_1 = RedrockController.redrock_query(core_session,
                                                      actual_script_1)
    for user in actual_result_1:
        actual_user_list_1.append(user['Row'])

    # Expected result for all users which user name same as session user display name and will assert the list
    # of users of actual session user display name list
    expected_result_1 = RedrockController.get_report_result_list_of_user(
        core_session, "userNM", display_name_1, "Input searched username")
    expected_user_list_1 = []
    for expected_result in expected_result_1:
        expected_user_list_1.append(expected_result['Row'])
    assert expected_user_list_1 == actual_user_list_1, f'The report result list all users whose DisplayName is not ' \
                                                       f'same with selected users DisplayName:{actual_user_list_1}'
    logger.info(f'The report result list all users whose DisplayName is '
                f'same with selected users displayname:{expected_user_list_1}')

    # Actual result for all user list with display name same as another user display name.
    # and this details will compare all the user from reports page
    actual_script_2 = f'Select Username, LastLogin from user where DisplayName = "{user_create_data["display_name"]}"'
    actual_user_list_2 = []
    actual_result_2 = RedrockController.redrock_query(core_session,
                                                      actual_script_2)
    for user in actual_result_2:
        actual_user_list_2.append(user['Row'])

    # Expected result for all users which user name same as another user display name and will assert the list
    # of users of actual another user display name list
    expected_result_2 = RedrockController.get_report_result_list_of_user(
        core_session, "userNM", user_create_data['display_name'],
        "Input searched username")
    expected_user_list_2 = []
    for user in expected_result_2:
        expected_user_list_2.append(user['Row'])
    assert expected_user_list_2 == actual_user_list_2, f'The report result list all users whose DisplayName is not ' \
                                                       f'same with selected users DisplayName:{actual_user_list_2}'
    logger.info(f'The report result list all users whose DisplayName is '
                f'same with selected users displayname:{expected_user_list_2}')

    # Delete the created user
    user_list.append(result_user_2)
    found_report = reports.get_report_by_name(core_session,
                                              report['Name'] + ".report")
    cleanup_reports.append(found_report['Path'])