Dive into python 实例学python (1) —— 函数和测试
2014-02-12 20:04 Loull 阅读(473) 评论(0) 编辑 收藏 举报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()