"""
Module with tests for debug
"""

#-----------------------------------------------------------------------------
# Copyright (c) 2013, the IPython Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file COPYING.txt, distributed with this software.
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------

import sys

from ...tests.base import TestsBase
from ..debug import DebugWriter
from ipython_genutils.py3compat import PY3

if PY3:
    from io import StringIO
else:
    from StringIO import StringIO


#-----------------------------------------------------------------------------
# Class
#-----------------------------------------------------------------------------

class TestDebug(TestsBase):
    """Contains test functions for debug.py"""

    def test_output(self):
        """Test debug writer output."""
        
        # Capture the stdout.  Remember original.
        stdout = sys.stdout
        stream = StringIO()
        sys.stdout = stream

        # Create stdout writer, get output
        writer = DebugWriter()
        writer.write('aaa', {'outputs': {'bbb': 'ccc'}})
        output = stream.getvalue()

        # Check output.  Make sure resources dictionary is dumped, but nothing
        # else.
        assert 'aaa' not in output
        assert 'bbb' in output
        assert 'ccc' in output

        # Revert stdout
        sys.stdout = stdout