Dive into python 实例学python (1) —— 函数和测试

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()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值