Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Icecream produces strange output when used within doctest #178

Open
tschoenfelder opened this issue Mar 21, 2024 · 1 comment
Open

Icecream produces strange output when used within doctest #178

tschoenfelder opened this issue Mar 21, 2024 · 1 comment

Comments

@tschoenfelder
Copy link

Hello,

I tried to use ic within doctests (python 3.11.8) :
import doctest
from icecream import ic

def tester():
"""

tester()
"""
a = ic(5*3)
print(f"{a=}")

if name == 'main':
doctest.testmod()

doctest will return

�[38;5;247mic�[39m�[38;5;245m|�[39m�[38;5;245m �[39m�[38;5;36m5�[39m�[38;5;245m*�[39m�[38;5;36m3�[39m�[38;5;245m:�[39m�[38;5;245m �[39m�[38;5;36m15�[39m


File "C:/Users/U070420/Downloads/ictest.py", line 6, in main.tester
Failed example:
tester()
Expected nothing
Got:
a=15


1 items had failures:
1 of 1 in main.tester
Test Failed 1 failures.

where the print works as expected, but icecream produces strange output.

Any way around this?

Thank you!

Best regards,
Torsten

@rodigu
Copy link

rodigu commented Dec 4, 2024

Which version of icecream were you using?

I have reformatted the code you have provided so that it can be easily copied:

from icecream import ic

def tester():
    """
    >>> tester()
    >>> a = ic(5*3)
    >>> print(f"{a=}")
    """

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

I tested the above code with icecream 2.1.3 in python 3.11.8 and got the correct output:

ic| 5*3: 15

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants