Python单元测试

2021-06-21 14:16:42 浏览数 (1)

  1. #单元测试
  2. import unittest
  3. def get_formatted_name(first,laster):
  4. a = first " " laster
  5. return a
  6. class NamesTestCase(unittest.TestCase): #继承测试类
  7. '''测试name_function.py'''
  8. def setUp(self):
  9. '''这里填写公用的调用类,后面直接进行测试即可'''
  10. def test_first_last_name(self): #test打头自动运行
  11. '''能否处理'''
  12. formatted_name = get_formatted_name('zhang','san')
  13. self.assertEqual(formatted_name,'zhang san') #断言方法,进行输出值比对
  14. unittest.main()
  15. assertEqual(a, b) 核实a == b
  16. assertNotEqual(a, b) 核实a != b
  17. assertTrue(x) 核实x为True
  18. assertFalse(x) 核实x为False
  19. assertIn(item, list) 核实item在list中
  20. assertNotIn(item, list) 核实item不在list中
  21. #虚拟环境
  22. mkdir learing_log
  23. python3 -m venv ll_env #建立
  24. source ll_env/bin/activate #启用环境
  25. deactivate #关闭环境
  26. #Django
  27. pip install Django #安装
  28. django-admin.py startproject learning_log . #创建新项目
  29. ls learning_log #查看项目文件
  30. settings.py #指定Django如何与你的系统交互以及如何管理项目
  31. urls.py #django应该创建哪些网页响应请求
  32. wsgi.py #帮助Django提供它创建的文件
  33. python3 manage.py migrate #安装sqlite3
  34. python3 manage.py runserver 0.0.0.0:8000 #启动程序
  35. python3 manage.py startapp learning_logs #创建一个应用
  36. models.py #定义套在应用程序中管理的数据
  37. admin.py #
  38. views.py #
  39. #修改数据库安装版本
  40. vim ll_env/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py
  41. class Topic(models.Model):
  42. text = models.CharField(max_length=200) #最多存储200字符
  43. date_added = models.DateTimeField(auto_now_add=True) #记录日期和时间
  44. def __str__(self):
  45. return self.text #默认用哪个来返回信息
  46. #应用,INSTALLED_PASS,新的要加最后面
  47. learning_log/settings.py
  48. python3 manage.py makemigrations learning_logs #和app建立数据关系,写出一个修改脚本
  49. python3 manage.py migrate #执行这个修改脚本
  50. python3 manage.py createsuperuser #创建超级用户,输入用户名,邮箱,2次密码
  51. #模块
  52. from random import choice
  53. choice(name) #随机返回name这个列表中的一个内容
  54. from collections import Counter #计数器
  55. name = ['xx','a','xx']
  56. number = Counter(name) #返回字典,键值还有重复次数
  57. number.most_commont() #降序排列
  58. number.most_commont() #该数字前一个元素
  59. name one #将2个计数器合起来
  60. name - one #第一有的,而第二个没有的
  61. name & one #交集
  62. name | one #并集,类似合并,但数值不叠加,只选取较大值
  63. from collections import OrderedDict #有序字典
  64. quotes = OrderedDict([
  65. ('Moe', 'A wise guy, huh?'),
  66. ('Larry', 'Ow!'),
  67. ('Curly', 'Nyuk nyuk!'),
  68. ])
  69. def palindrome(word): #双端队列,两边要一致,例子是回文
  70. from collections import deque
  71. dq = deque(word)
  72. while len(dq) > 1:
  73. if dq.popleft() != dq.pop():
  74. return False
  75. return True
  76. palindrome('aba')
  77. #return word == word[::-1] #迅速判断回文
  78. import itertools
  79. for i in itertools.chain([1,2],['a','b']) #只迭代单个
  80. for i in itertools.cycle([1,2]) #循环迭代,一致重复
  81. for i in itertools.accumulate([1,2,3]) #输出挨个的叠加值
  82. def multiply(a, b):
  83. return a * b
  84. for item in itertools.accumulate([1, 2, 3, 4], multiply): #可以调入函数,做乘机
  85. #模块位置
  86. import sys
  87. for i in sys.path:
  88. print(i)
  89. #二进制读写
  90. bdata = bytes(range(0, 256))
  91. fout = open('bfile', 'wb')
  92. fout.write(bdata)
  93. fout.close()
  94. #自动关闭
  95. with open('relativity', 'wt') as fout:
  96. fout.write(poem)
  97. #
  98. fin.tell() #文件目前读取位置到开头距离
  99. fin.seek(255) #跳转到某个位置
  100. xx = fin.read() #然后继续读后面的
  101. seek(offset,origin)
  102. 如果origin等于0(默认为 0),从开头偏移offset个字节
  103. 如果origin等于1,从当前位置处偏移offset个字节
  104. 如果origin等于2,距离最后结尾处偏移offset个字节
  105. fin.seek(-1,2) #文件结尾前一个字节
  106. fin.seek(254, 0) #返回最后2个字节
  107. fin.seek(1, 1) #前进一个字节
  108. python -m http.server #最简单web服务器
  109. os.getpid() #当前脚本的进程号
  110. os.getuid() #当前用户id
  111. os.getgid() #当前用户组id
  112. import subprocess
  113. ret = subprocess.getoutput('date') #获取命令的输出
  114. ret = subprocess.check_output(['date', '-u']) #接受一个命令和参数列表,返回字节类型标准输出
  115. ret = subprocess.getstatusoutput('date') #获取退出状态,返回元祖
  116. ret = subprocess.call('date') #只要退出状态
  117. ret = subprocess.call('date -u', shell=True) #执行shell命令
  118. ret = subprocess.call(['date', '-u']) #传入参数列表,不调用shell
  119. #简单打印
  120. import multiprocessing
  121. import os
  122. def do_this(what):
  123. whoami(what)
  124. def whoami(what):
  125. print("Process %s says: %s" % (os.getpid(), what))
  126. if __name__ == "__main__":
  127. whoami("I'm the main program")
  128. for n in range(4):
  129. p = multiprocessing.Process(target=do_this,
  130. args=("I'm function %s" % n,))
  131. p.start()
  132. #终止进程模拟
  133. import multiprocessing
  134. import time
  135. import os
  136. def whoami(name):
  137. print("I'm %s, in process %s" % (name, os.getpid()))
  138. def loopy(name):
  139. whoami(name)
  140. start = 1
  141. stop = 1000000
  142. for num in range(start, stop):
  143. print("tNumber %s of %s. Honk!" % (num, stop))
  144. time.sleep(1)
  145. if __name__ == "__main__":
  146. whoami("main")
  147. p = multiprocessing.Process(target=loopy, args=("loopy",))
  148. p.start()
  149. time.sleep(5)
  150. p.terminate()
  151. import calendar
  152. calendar.isleap(1900) #检测是否是闰年
  153. from datetime import date
  154. halloween = date(2014, 10, 31)
  155. halloween
  156. halloween.day
  157. halloween.month
  158. halloween.year
  159. halloween.isoformat() #打印时间
  160. from datetime import date
  161. now = date.today() #显示进日期,返回元祖
  162. from datetime import timedelta
  163. one_day = timedelta(days=1)
  164. tomorrow = now one_day
  165. tomorrow
  166. now 17*one_day
  167. yesterday = now - one_day
  168. yesterday
  169. from datetime import time #一天中的时间
  170. noon = time(12, 0, 0)
  171. noon
  172. datetime.time(12, 0)
  173. noon.hour
  174. noon.minute
  175. noon.second
  176. noon.microsecond
  177. def washer(dishes, output):
  178. for dish in dishes:
  179. print('Washing', dish, 'dish')
  180. output.put(dish)
  181. def dryer(input):
  182. while True:
  183. dish = input.get()
  184. print('Drying', dish, 'dish')
  185. input.task_done()
  186. dish_queue = mp.JoinableQueue()
  187. dryer_proc = mp.Process(target=dryer, args=(dish_queue,))
  188. dryer_proc.daemon = True
  189. dryer_proc.start()
  190. dishes = ['salad', 'bread', 'entree', 'dessert']
  191. washer(dishes, dish_queue)
  192. dish_queue.join()

0 人点赞