2016-11-19 2 views
0
def m(): 
    cnx = mysql.connector.connect(**config) 
    cursor = cnx.cursor() 
    cnx.database = database_name 
    cursor.execute('''SELECT COUNT(1) FROM URLlookup where malicious = '{0}' '''.format(new_URL)) 
    Malware = cursor.fetchone()[0] 
    if Malware: 
    do something 
    else: 
     do something 

이 나는 ​​기본 코드하는 값을 찾아 진정한 참 값을 반환 할 수 그렇지 않으면python :: 모의 변수 값을 반환하는 방법? database.If 값이 다음 악성 코드 = 존재에서

내가 모의 라이브러리를 사용하여 단위 테스트를 작성하고 MySQL의 연결을 조롱하고 거짓이 아닌 또는 악성 코드에 대해 거짓 bool.

with patch ('mysql.connector.connect') as mock_db: 
    connection = mock_db.return_value 
    cursor = connection.cursor.return_value 

다른 문이 따라 실행될 수 있다면 있도록 "악성 코드"에 대한 True 또는 False를 반환하는 방법 병동 후?

답변

0

단일 번호의 튜플을 반환하려면 cursor.fetchone을 조롱해야합니다. 그런 다음 m()으로 전화를 걸어 예상 한 일이 발생했는지 확인하십시오.

with patch ('mysql.connector.connect') as mock_db: 
    connection = mock_db.return_value 
    cursor = connection.cursor.return_value 
    cursor.fetchone.return_value = (1,) # or (0,) # <----- 
    # TODO call m() 
    # TODO assert that something is done or not