bitranox/fake_winreg

View on GitHub
fake_winreg/helpers.py

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import socket


def strip_backslashes(input_string: str) -> str:
    """
    >>> strip_backslashes(r'\\test\\\\')
    'test'
    """
    input_string = input_string.strip("\\")
    return input_string


def get_first_part_of_the_key(key_name: str) -> str:
    """
    >>> get_first_part_of_the_key('')
    ''
    >>> get_first_part_of_the_key(r'something\\more')
    'something'
    >>> get_first_part_of_the_key(r'nothing')
    'nothing'

    """
    key_name = strip_backslashes(key_name)
    key_name = key_name.split("\\", 1)[0]
    return key_name


def is_computer_reachable(computer_name: str) -> bool:
    """
    >>> assert is_computer_reachable('www.google.com')
    >>> assert is_computer_reachable(r'localhost\\test\\test2')
    >>> assert not is_computer_reachable('unknown_host')
    """
    computer_name = strip_backslashes(computer_name)
    computer_name = get_first_part_of_the_key(computer_name)
    return hostname_found_in_dns(computer_name)


def hostname_found_in_dns(hostname: str) -> bool:
    """
    >>> assert hostname_found_in_dns('www.google.com')
    >>> assert not hostname_found_in_dns('unknown_host')
    """
    try:
        socket.gethostbyname(hostname)
        return True
    except Exception:  # noqa
        return False