Como pode um doctest do python 2 falhar e ainda não ter diferença nos valores na mensagem de falha?

Estou usando o Python 2.7.9 no Windows.

Eu tenho um arquivo de script python codificado em UTF-8 com o seguinte conteúdo:

# coding=utf-8

def test_func():
    u"""
    >>> test_func()
    u'☃'
    """
    return u'☃'

Recebo uma falha curiosa quando executo o doctest:

Failed example:
    test_func()
Expected:
    u'\u2603'
Got:
    u'\u2603'

Vejo essa mesma falha ao iniciar os documentos através do IDE que normalmente uso (IDEA IntelliJ) ou na linha de comando:

> x:\my_virtualenv\Scripts\python.exe -m doctest -v hello.py

Copiei as linhas sobExpected eGot no WinMerge para descartar alguma diferença sutil nos personagens que eu não conseguia identificar; me disse que eles eram idênticos.

No entanto, se refazer a linha de comando, mas redirecionar a saída para um arquivo de texto, da seguinte maneira:

> x:\my_virtualenv\Scripts\python.exe -m doctest -v hello.py > out.txt

o teste ainda falha, mas a saída resultante da falha é um pouco diferente:

Failed example:
    test_func()
Expected:
    u'☃'
Got:
    u'\u2603'

Se eu colocar o literal unicode escapado no meu doctest:

# coding=utf-8

def test_func():
    u"""
    >>> test_func()
    u'☃'
    """
    return u'\\u2603'

o teste passa. Mas até onde eu sei,u'\u2603' eu'☃' deve avaliar a mesma coisa.

Realmente, tenho duas perguntas sobre o caso que falhou:

É uma das representações que o doctester está dando (emExpected ouGot) incorreto para o valor que o doctester tem para esse caso? (ou seja,x != eval(repr(x)))Caso contrário, por que o teste falha?

questionAnswers(2)

yourAnswerToTheQuestion