[python] doctest를 사용하여 네트워크 연결을 테스트하는 방법은?

doctest는 파이썬의 표준 라이브러리인 unittest 모듈의 일부로 제공되는 도구입니다. 네트워크 연결 테스트에도 doctest를 사용할 수 있습니다. 아래는 네트워크 연결 테스트를 위한 간단한 예제입니다.

import socket

def is_network_reachable(host: str, port: int) -> bool:
    """
    Check if a network connection can be established to the given host and port.

    >>> is_network_reachable("www.google.com", 80)
    True
    >>> is_network_reachable("www.example.com", 1234)
    False
    """

    try:
        socket.create_connection((host, port), timeout=5)
        return True
    except ConnectionError:
        return False

if __name__ == "__main__":
    import doctest
    doctest.testmod()

위의 코드에서는 is_network_reachable 함수를 작성하고, 이 함수를 테스트하기 위해 doctest를 사용합니다. create_connection 함수를 사용하여 주어진 호스트와 포트로 연결을 시도하고, 연결에 성공하면 True를 반환합니다. 연결에 실패하면 False를 반환합니다.

is_network_reachable 함수에 대한 테스트는 함수 선언 아래에 있는 docstring에서 작성합니다. 주어진 호스트와 포트로 연결이 성공하는지 여부에 따라서 예상되는 결과를 작성하고, 이를 doctest를 통해 실행하여 실제 결과와 일치하는지 확인합니다.

코드를 실행하면 doctest가 자동으로 테스트를 실행하고, 테스트 결과를 표시합니다. 모든 테스트가 통과하면 아무런 출력이 없지만, 테스트에 실패하는 경우 그에 대한 정보를 표시합니다.

자세한 내용과 다양한 예제에 대해서는 파이썬 공식 문서의 doctest를 참조하십시오.