1from contextlib import contextmanager
2try:
3    # Python 2
4    from StringIO import StringIO
5except ImportError:
6    # Python 3
7    from io import StringIO
8import sys
9import unittest
10
11from .helpers import mssqlconn
12
13
14@contextmanager
15def redirect_stderr():
16    sys.stderr = StringIO()
17    yield sys.stderr
18    sys.stderr = sys.__stderr__
19
20
21class TestMSSQLConnectionWithDebugQueries(unittest.TestCase):
22
23    def setUp(self):
24        self.conn = mssqlconn()
25        self.conn.debug_queries = True
26
27    def test_MSSQLConnection_with_debug_queries(self):
28        # This test is for http://code.google.com/p/pymssql/issues/detail?id=98
29
30        sql = "SELECT 'foo' AS first_name, 'bar' AS last_name"
31        expected_row = {
32            0: 'foo',
33            1: 'bar',
34            'first_name': 'foo',
35            'last_name': 'bar',
36        }
37
38        with redirect_stderr() as stderr:
39            row = self.conn.execute_row(sql)
40            self.assertEquals(row, expected_row)
41
42        self.assertEqual(stderr.getvalue(), "#%s#\n" % sql)
43