Dynamically passing variables to unittest

Jim Sizelove sizelji at insightbb.com
Wed Dec 15 20:27:55 CET 2004

Tom Haddon wrote:
> Hi Peter,
> Yeah, you're right, the term "ConnectString" is a little confusing. Perhaps I should change that.
> Here's a valid call to DB:
> conn=DB.DB('pg','test','localhost',5432,'test','test')
> In the context of this unittest, a valid syntax would be (except that this unittest would fail, as this is a "good" connection:
> self.assertRaises(DB.InvalidConnectString, DB.DB,'pg','test','localhost',5432,'test','test')

You can try something like this (not tested):

 >>> InvalidStrings=(['pg','test','localhost','5432','test','test'],
 >>> for S in InvalidStrings:
... 	self.assertRaises(DB.InvalidConnectString, DB.DB, *S)

Here the * operator unpacks a sequence when passed in to a function that 
is expecting positional arguments.  See the Python Tutorial, 4.7.4 
Unpacking Argument Lists for a better explanation.


More information about the Python-list mailing list