odbchelper.py
def buildConnectionString(params): """Build a connection string from a dictionary Returns string. """ return ";".join(["%s=%s" % (k, v) for k, v in params.items()]) if __name__ == "__main__": myParams = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret" } print buildConnectionString(myParams)
1、‘‘‘...‘‘‘是docstring
2、join()函数是连接字符串,这里用";"分号来连接,参数是字符串列表list。
测试代码:
odbchelpertest.py
import unittest import odbchelper class GoodInput(unittest.TestCase): def testBlank(self): """buildConnectionString handles empty dictionary""" self.assertEqual("", odbchelper.buildConnectionString({})) def testKnownValue(self): """buildConnectionString returns known result with known input""" params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"} knownItems = params.items() knownItems.sort() knownString = repr(knownItems) result = odbchelper.buildConnectionString(params) resultItems = [tuple(e.split("=")) for e in result.split(";")] resultItems.sort() resultString = repr(resultItems) self.assertEqual(knownString, resultString) class BadInput(unittest.TestCase): def testString(self): """buildConnectionString should fail with string input""" self.assertRaises(AttributeError, odbchelper.buildConnectionString, "") def testList(self): """buildConnectionString should fail with list input""" self.assertRaises(AttributeError, odbchelper.buildConnectionString, []) def testTuple(self): """buildConnectionString should fail with tuple input""" self.assertRaises(AttributeError, odbchelper.buildConnectionString, ()) if __name__ == "__main__": unittest.main()