# Path: tests/helpers.py
# def eq_(a, b):
# def skip_test(reason='No reason given to skip_test'):
# def mark_slow(f):
#     def __str__(self):
# def mssqlconn(conn_properties=None):
# def pymssqlconn(**kwargs):
# def get_app_lock():
# def release_app_lock():
# def drop_table(conn, tname):
# def clear_table(conn, tname):
#     def table_sql(cls):
#     def newconn(cls):
#     def setup_class(cls):
#     def setUp(self):
#     def row_count(self):
#     def execute(self, sql, params=None):
#     def __init__(self, conn, tname, *cols):
#     def table_sql(self):
#     def drop(self):
#     def execute(self, sql):
#     def create(self):
#     def clear(self):
#     def count(self):
#     def execute(self, sql):
#     def executemany(self, sql, params_seq):
#     def setup_class(cls):
#     def setup_method(self, method):
#     def test_description_not_used(self):
#     def test_description_after_insert(self):
#     def test_description_after_select(self):
#     def test_sticky_description(self):
#     def test_fetchone(self):
#     def test_insert_rowcount(self):
#     def test_delete_rowcount(self):
#     def test_update_rowcount(self):
#     def test_select_rowcount(self):
#     def test_fetchone_rowcount(self):
#     def test_fetchmany_rowcount(self):
#     def test_as_dict(self):
#     def test_as_dict_no_column_name(self):
#     def test_as_dict_no_column_name_2(self):
#     def test_fetchmany(self):
#     def test_execute_many(self):
# def clear_db():
#     def __init__(self, name, args, body, mssql=None):
#     def create(self, mssql=None):
#     def execute(self, mssql=None, args=()):
#     def drop(self, mssql=None):
#     def __enter__(self):
#     def __exit__(self, type, value, tb):
# def get_sql_server_version(mssql_connection):
# class Config(object):
# class PyTableBase(object):
# class TableManager(object):
# class DBAPIBase(object):
# class CursorBase(DBAPIBase):
# class StoredProc(object):


import decimal
import datetime
import os
import sys
import unittest
import pymssql
import pytest
        import uuid
from pymssql import _mssql
from .helpers import mssqlconn, pymssqlconn, eq_, skip_test, get_sql_server_version, mssql_server_required
        eq_(input, proc.parameters['@ovarchar'])

    def testVarBinary(self):
        def check_conversion(input, output_type):
            proc = self.mssql.init_procedure('pymssqlTestVarBinary')
            proc.bind(input, _mssql.SQLVARBINARY, '@ivarbinary')
            proc.bind(None, _mssql.SQLVARBINARY, '@ovarbinary', output=True)
            proc.execute()
            eq_(input, proc.parameters['@ovarbinary'])
            eq_(output_type, type(proc.parameters['@ovarbinary']))

        if sys.version_info[0] == 3:
            check_conversion(bytes(b'\xDE\xAD\xBE\xEF'), bytes)
            check_conversion(bytearray(b'\xDE\xAD\xBE\xEF'), bytes)
            with pytest.raises(TypeError) as exc_info:
                check_conversion('FOO', bytes)
                assert 'value can only be bytes or bytearray' == str(exc_info.value)
        else:
            check_conversion(b'\xDE\xAD\xBE\xEF', str)
            check_conversion(bytes(b'\xDE\xAD\xBE\xEF'), str)
            check_conversion(bytearray(b'\xDE\xAD\xBE\xEF'), str)
            with pytest.raises(TypeError) as exc_info:
                check_conversion(unicode('Foo'), str)
                assert 'value can only be str or bytearray' == str(exc_info.value)


@mssql_server_required
class TestFloatTypeConversion(unittest.TestCase):
    def setUp(self):
        self.mssql = mssqlconn()

# Path: tests/helpers.py
# def eq_(a, b):
# def skip_test(reason='No reason given to skip_test'):
# def mark_slow(f):
#     def __str__(self):
# def mssqlconn(conn_properties=None):
# def pymssqlconn(**kwargs):
# def get_app_lock():
# def release_app_lock():
# def drop_table(conn, tname):
# def clear_table(conn, tname):
#     def table_sql(cls):
#     def newconn(cls):
#     def setup_class(cls):
#     def setUp(self):
#     def row_count(self):
#     def execute(self, sql, params=None):
#     def __init__(self, conn, tname, *cols):
#     def table_sql(self):
#     def drop(self):
#     def execute(self, sql):
#     def create(self):
#     def clear(self):
#     def count(self):
#     def execute(self, sql):
#     def executemany(self, sql, params_seq):
#     def setup_class(cls):
#     def setup_method(self, method):
#     def test_description_not_used(self):
#     def test_description_after_insert(self):
#     def test_description_after_select(self):
#     def test_sticky_description(self):
#     def test_fetchone(self):
#     def test_insert_rowcount(self):
#     def test_delete_rowcount(self):
#     def test_update_rowcount(self):
#     def test_select_rowcount(self):
#     def test_fetchone_rowcount(self):
#     def test_fetchmany_rowcount(self):
#     def test_as_dict(self):
#     def test_as_dict_no_column_name(self):
#     def test_as_dict_no_column_name_2(self):
#     def test_fetchmany(self):
#     def test_execute_many(self):
# def clear_db():
#     def __init__(self, name, args, body, mssql=None):
#     def create(self, mssql=None):
#     def execute(self, mssql=None, args=()):
#     def drop(self, mssql=None):
#     def __enter__(self):
#     def __exit__(self, type, value, tb):
# def get_sql_server_version(mssql_connection):
# class Config(object):
# class PyTableBase(object):
# class TableManager(object):
# class DBAPIBase(object):
# class CursorBase(DBAPIBase):
# class StoredProc(object):


# Path: tests/test_sprocs.py
import decimal
import datetime
import os
import sys
import unittest
import pymssql
import pytest
        import uuid
from pymssql import _mssql
from .helpers import mssqlconn, pymssqlconn, eq_, skip_test, get_sql_server_version, mssql_server_required

        eq_(input, proc.parameters['@ovarchar'])

    def testVarBinary(self):
        def check_conversion(input, output_type):
            proc = self.mssql.init_procedure('pymssqlTestVarBinary')
            proc.bind(input, _mssql.SQLVARBINARY, '@ivarbinary')
            proc.bind(None, _mssql.SQLVARBINARY, '@ovarbinary', output=True)
            proc.execute()
            eq_(input, proc.parameters['@ovarbinary'])
            eq_(output_type, type(proc.parameters['@ovarbinary']))

        if sys.version_info[0] == 3:
            check_conversion(bytes(b'\xDE\xAD\xBE\xEF'), bytes)
            check_conversion(bytearray(b'\xDE\xAD\xBE\xEF'), bytes)
            with pytest.raises(TypeError) as exc_info:
                check_conversion('FOO', bytes)
                assert 'value can only be bytes or bytearray' == str(exc_info.value)
        else:
            check_conversion(b'\xDE\xAD\xBE\xEF', str)
            check_conversion(bytes(b'\xDE\xAD\xBE\xEF'), str)
            check_conversion(bytearray(b'\xDE\xAD\xBE\xEF'), str)
            with pytest.raises(TypeError) as exc_info:
                check_conversion(unicode('Foo'), str)
                assert 'value can only be str or bytearray' == str(exc_info.value)


@mssql_server_required
class TestFloatTypeConversion(unittest.TestCase):
    def setUp(self):
        self.mssql = mssqlconn()

        self.pymssql = pymssqlconn()