By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
455,594 Members | 1,570 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 455,594 IT Pros & Developers. It's quick & easy.

Pyodbc and minimock with doctest

P: n/a

I have just started working with minimock in doctest.
I want to create a mock pyodbc object which returns a string value
when the method execute is called.

Here is my doctest:
>>from minimock import Mock
import pyodbc
>>def database_response()
.... ServerName = 'test_server'
.... DbName = 'test_database'
.... User = 'test_user'
.... Pass ='test_pass'
.... connstring ='DRIVER{SQL Server};SERVER=%s;DATABASE=%s;UID=
%s;PWD=%s;' % (ServerName,
.... DbName, User, Pass)
.... cnx = pyodbc.connect(connstring)
.... cur = cnx.cursor()
.... name = cur.execute("select user_id from user")
.... print 'name:%s' % name
>> pyodbc = Mock('pyodbc')
pyodbc.connect.mock_returns = Mock('pyodbc')
pyodbc.cursor.mock_returns = Mock('pyodbc')
pyodbc.execute = Mock('pyodbc.execute', returns=True)
pyodbc.execute.returns = 'Return this string.'
pyodbc.execute.mock_returns = Mock('pyodbc.execute')
>> database_response() #doctest: +ELLIPSIS
Here is the output from doctest:
************************************************** ***************************
File ".\pyodbc_test.txt", line 35, in pyodbc_test.txt
Failed example:
database_response() #doctest: +ELLIPSIS
Expected nothing

Called pyodbc.connect({DRIVER{SQLServer};
SERVER=test_server;DATABASE=test_database;UID=test _user;PWD=test_pass;')
Called pyodbc.cursor()
Called pyodbc.execute('select user_id from users')
name: None
************************************************** *****************************************
The last line of the output, name : Name, should read, name: Return
this string.
Clearly I am not assigning the string correctly, but I can't figure
out what I am
doing wrong. Any ideas ?
Oct 31 '08 #1
Share this question for a faster answer!
Share on Google+

This discussion thread is closed

Replies have been disabled for this discussion.