Форум сайта python.su
Помогите пожалуйста написать тест который будет проверять добавилось ли во 2 таблицу именно то что было взято из первой.
import mysql.connector as sql def copy_to_other_db(): try: connection = sql.connect(host='127.0.0.1', database='employees', user ="yurapc", password='Mysqlpassword1!') cursor = connection.cursor() cursor.execute("SELECT * FROM titles") query = cursor.fetchall() except sql.Error as error: print("Failed to select all rows from MySQL table {}".format(error)) try: connection_2 = sql.connect(host='127.0.0.1', database='employees_2', user ="yurapc", password='Mysqlpassword1!') cursor_2 = connection_2.cursor() cursor_2.executemany("INSERT IGNORE INTO titles (emp_no, title, from_date, to_date) VALUES (%s, %s, %s, %s);", query) connection_2.commit() print("Record inserted successfully into titles table") except sql.Error as error_2: print("Failed to insert into MySQL table {}".format(error_2)) finally: if connection.is_connected() and connection_2.is_connected(): cursor.reset() cursor_2.reset() connection.close() connection_2.close() print("Connection is closed") copy_to_other_db()
Офлайн
Yurakov
простите, но то что вы пытаетесь сделать - это не юнит-тест по нескольким причинам, главная из которых - юнит тест тестирует некий юнит, то есть функцию, метод класса, класс или модуль. Вы пытаетесь протестировать просто какой-то код отвлеченный, что само по себе в общем-то лишено смысла.
Давайте определимся для начала с целями затеи. Что вы сделать пытаетесь?
Офлайн
FishHook
Yurakovпростите, но то что вы пытаетесь сделать - это не юнит-тест по нескольким причинам, главная из которых - юнит тест тестирует некий юнит, то есть функцию, метод класса, класс или модуль. Вы пытаетесь протестировать просто какой-то код отвлеченный, что само по себе в общем-то лишено смысла. Давайте определимся для начала с целями затеи. Что вы сделать пытаетесь?
Офлайн
YurakovОкей. Значит единственный юнит, который мы можем и должны протестировать это функция copy_to_other_db. Как будем тестировать? Тестируя юнит, мы тестируем только функционал предоставляемый юнитом. Надо ответить на вопрос, что делает юнит и зафиксировать всё остальное, что не отвечает на этот вопрос.
Я написал код который работает и копирует содержимое в другую таблицу, теперь я должен сделать тест.
def calculate_random_squares(n: int) -> List[int]: return [random.randint(1, 100) ** 2 for i in range(n)]
@pytest.mark.parametrize("rnd,ln, res", [(2, 2, [4, 4]), (-3, 5, [9, 9, 9, 9, 9]), (1, 0, [])]) def test_calc(rnd, ln, res): with patch("random.randint", return_value=rnd): assert calculate_random_squares(ln) == res
Офлайн