예제 #1
0
def test_records_count():

    with pytest.allure.step(
            '1. Добавляем случайное количество записей в таблицу "CHECK_OBJECT"'
    ):

        db = DBTest()
        records_count = random.randint(1, 100)
        data = []
        date = current_date()
        for i in range(records_count):
            row = (i, date, i, random.random(), rnd_str(), date)
            data.append(row)
        db.insert(TABLE_CHECK_OBJECT, data)

    with pytest.allure.step(
            '2. Запускаем программу "checker", она анализирует таблицу "CHECK_OBJECT" '
            'и сохраняет результат в таблицу "CHECK_STATUS"'):
        db_checker()

    with pytest.allure.step(
            '3. Вычитываем из таблицы "CHECK_STATUS" данные о количестве записей, '
            'сравниваем с ожидаемым значением: {}'.format(records_count)):

        err_msg = 'Ожидаемое количество записей: {}, количество записей в таблице "CHECK_OBJECT": {}'.format(
            records_count, db.records_count)
        assert records_count == db.records_count, err_msg
예제 #2
0
def test_mean_value_float():

    with pytest.allure.step(
            '1. Добавляем случайное количество записей в таблицу "CHECK_OBJECT"'
    ):

        db = DBTest()
        records_count = random.randint(2, 100)
        data = []
        date = current_date()
        floats_sum = 0
        for i in range(records_count):
            float_value = random.random()
            floats_sum += float_value
            row = (i, date, i, float_value, rnd_str(), date)
            data.append(row)
        db.insert(TABLE_CHECK_OBJECT, data)
        expected = str(floats_sum /
                       records_count)[:10]  # выставляем точность в 10 цифр

    with pytest.allure.step(
            '2. Запускаем программу "checker", она анализирует таблицу "CHECK_OBJECT" '
            'и сохраняет результат в таблицу "CHECK_STATUS"'):
        db_checker()

    with pytest.allure.step(
            '3. Вычитываем из таблицы "CHECK_STATUS" данные о среднем значении параметра "FLOAT_VALUE", '
            'сравниваем с ожидаемым значением: {}'.format(expected)):

        actual = str(db.mean_float)[:10]  # выставляем точность в 10 цифр
        err_msg = 'Ожидаемое среднее значение параметра "FLOAT_VALUE": {}, среднее значение из таблицы "CHECK_OBJECT": {}'.format(
            expected, actual)
        assert expected == actual, err_msg
def test_count_of_non_unique_combinations_count():

    with pytest.allure.step(
            '1. Добавляем случайное количество записей в таблицу "CHECK_OBJECT"'
    ):

        db = DBTest()
        data = []
        date = current_date()

        with pytest.allure.step(
                '1.1 Добавляем записи с уникальной комбинацией ID, INT_VALUE'):

            records_count_unique = random.randint(1, 100)
            for i in range(records_count_unique):
                row = (random.randint(0, sys.maxsize), date,
                       random.randint(0, sys.maxsize), random.random(),
                       rnd_str(), date)
                data.append(row)

        with pytest.allure.step(
                '1.1 Добавляем записи с неуникальной комбинацией ID, INT_VALUE'
        ):

            records_count_non_unique = random.randint(2, 100)
            for i in range(records_count_non_unique):
                non_unique_id = random.randint(0, sys.maxsize)
                non_unique_int_value = random.randint(0, sys.maxsize)
                row_1 = (non_unique_id, date, non_unique_int_value,
                         random.random(), rnd_str(), date)
                row_2 = (non_unique_id, date, non_unique_int_value,
                         random.random(), rnd_str(), date)
                data.extend([row_1, row_2])

        db.insert(TABLE_CHECK_OBJECT, data)

    with pytest.allure.step(
            '2. Запускаем программу "checker", она анализирует таблицу "CHECK_OBJECT" '
            'и сохраняет результат в таблицу "CHECK_STATUS"'):
        db_checker()

    with pytest.allure.step(
            '3. Вычитываем из таблицы "CHECK_STATUS" данные о количестве неуникальных комбинаций '
            'ID, INT_VALUE, сравниваем с ожидаемым значением: {}'.format(
                records_count_non_unique)):

        err_msg = 'Ожидаемое количество записей: {}, количество записей в таблице "CHECK_OBJECT": {}'.format(
            records_count_non_unique, db.records_count_non_unique)
        assert records_count_non_unique == db.records_count_non_unique, err_msg
예제 #4
0
def test_zeros_count(parameter_to_check, test_input, expected):

    with pytest.allure.step(
            '1. Добавляем данные в таблицу "CHECK_OBJECT": "{}"'.format(
                test_input)):

        db = DBTest()
        db.insert(TABLE_CHECK_OBJECT, test_input)

    with pytest.allure.step(
            '2. Запускаем программу "checker", она анализирует таблицу "CHECK_OBJECT" '
            'и сохраняет результат в таблицу "CHECK_STATUS"'):
        db_checker()

    with pytest.allure.step(
            '3. Вычитываем из таблицы "CHECK_STATUS" данные о количестве 0 '
            'для поля: "{}"'.format(parameter_to_check)):

        actual = db.get_value_for(parameter_to_check)
        err_msg = 'Ожидаемое количество 0 для поля "{}": {}, количество в таблице "CHECK_OBJECT": {}'.format(
            parameter_to_check, expected, actual)
        assert actual == expected, err_msg