Укажите ожидаемый результат в строке документа как шестнадцатеричный? - PullRequest
3 голосов
/ 31 мая 2019

Есть ли способ указать ожидаемые целочисленные результаты в строке документа в шестнадцатеричной записи?

def identity(val):
    """
    >>> identity(243)
    243
    >>> identity(243)
    0xf3
    """
    return val

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

Doctest не интерпретирует шестнадцатеричное представление, что приводит к ошибке:

**********************************************************************
File "hextest.py", line 5, in __main__.identity
Failed example:
    identity(243)
Expected:
    0xf3
Got:
    243
**********************************************************************
1 items had failures:
   1 of   2 in __main__.identity
***Test Failed*** 1 failures.

Я знаю, что могу бороться с строкой документов:

def identity(val):
    """
    >>> hex(identity(243))
    '0xf3'
    """
    return val

Но было бы естественно, чтобы doctest понимал буквенные целые числа в базах 8, 16рядом с десятичной дробью.

...