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
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
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