Python单元测试unittest

Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作。 在说unittest之前,先说几个概念: TestCase... Read More | Share it now!

Python Mock的入门

Mock是什么 Mock这个词在英语中有模拟的这个意思,因此我们可以猜测出这个库的主要功能是模拟一些东西。准确的说,Mock是Python中一个用于支持单元测试的库,它的主要功能是使用mock对象替代掉指定的Python对象,以达到模拟对象的行为。简单的说,mock库用于如下的场景: 假设你开发的项目叫a,里面包含了一个模块b,模块b中的一个函数c(也就是a.b.c)在工作的时候需要调用发送请求给特定的服务器来得到一个JSON返回值,然后根据这个返回值来做处理。如果要为a.b.c函数写一个单元测试,该如何做? 一个简单的办法是搭建一个测试的服务器,在单元测试的时候,让a.b.c函数和这个测试服务器交互。但是这种做法有两个问题: 测试服务器可能很不好搭建,或者搭建效率很低。 你搭建的测试服务器可能无法返回所有可能的值,或者需要大量的工作才能达到这个目的。 那么如何在没有测试服务器的情况下进行上面这种情况的单元测试呢?Mock模块就是答案。上面已经说过了,mock模块可以替换Python对象。我们假设a.b.c的代码如下: import... Read More | Share it now!

redis-py-cluster 1.3.4

Project description # redis-py-cluster This client provides a client for redis cluster that was added in redis 3.0. This project is a port of `redis-rb-cluster` by antirez, with alot of added functionality. The original source can be found at... Read More | Share it now!

Time access and conversions Python

This module provides various time-related functions. For related functionality, see also the datetime and calendar modules. Although this module is always available, not all functions are available on all platforms. Most of the functions defined in... Read More | Share it now!

Python自动单元测试框架PyUnit

在Python中进行单元测试需要用到自动单元测试框架PyUnit,Python2.1及其以后的版本都将PyUnit作为一个标准模块(即python的unittest模块),如果你很out,那么你需要从PyUnit网站下载源码安装后才能使用。 一、Python单元测试范例 测试最基本的原理是比较预期结果是否与实际执行结果相同,如果相同则测试成功,否则测试失败。为了更好地理解自动测试框架PyUnit,下面会以对Widget类进行测试为例说明之: #widget.py #将要被测试的类Widget class... Read More | Share it now!

[转]EB2/EB3雇主支持绿卡申请之三部曲

对于大部分留学美国读本科或硕士,并且顺利获得工作签证的同学而言,通过雇主提交EB2/EB3申请,是获得绿卡的常见方式。当然,这并不限于身在美国的申请人。即使身在海外,也可以由美国雇主提交EB2/EB3申请,通过雇主支持(sponsor)来获得绿卡。至于赴美读博的留学生,如果条件合适,则有可能不需要雇主支持,可以自己申请杰出人才(EB1A)或者国家利益豁免(NIW),本篇不作讨论。 网络上关于EB2/EB3的材料非常多,整个过程显得很复杂。对于第一次接触这个流程的同学来说,劳工证(PERM),打广告,排期等,各种专业词汇看得目眩。宋和孟律师事务所(Song... Read More | Share it now!

[转]跟我一起写 Makefile

原文:https://blog.csdn.net/haoel/article/details/2886 概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。 因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。 makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual... Read More | Share it now!

Haystack[转]业内公认难题,如何解决小文件存储

https://code.facebook.com/posts/685565858139515/needle-in-a-haystack-efficient-storage-of-billions-of-photos/ http://www.sohu.com/a/112191770_222486 作者简介 陈闯,花名“战士雷欧”,白山云科技超级攻城狮。 Linux内核、nginx模块、存储架构开发老司机,7年以上存储架构、设计及开发经验,先后就职于东软、中科曙光、新浪、美团,擅长独立进行Haystack、纠删码等各种项目研发,爱好不断降低IO、挑战冗余度底线。白山滑板车选手专业十级,会漂移,正积极备战方庄街道第6届动感滑板车运动会,家庭梦想是为爱妻赢得无硅油洗发水。 正文 背景: 当今互联网,数据呈现爆炸式增长,社交网络、移动通信、网络视频、电子商务等各种应用往往能产生亿级甚至十亿、百亿级的海量小文件。由于在元数据管理、访问性能、存储效率等方面面临巨大的挑战,海量小文件问题成为了业界公认的难题。 业界的一些知名互联网公司,也对海量小文件提出了解决方案,例如:著名的社交网站Facebook,存储了超过600亿张图片,专门推出了Haystack系统,针对海量小图片进行定制优化的存储。 白山云存储CWN-X,针对小文件问题,也推出独有的解决方案,我们称之为Haystack_plus。该系统提供高性能数据读写、数据快速恢复、定期重组合并等功能。 Facebook的Haystack简介: Facebook的Haystack对小文件的解决办法是合并小文件。将小文件数据依次追加到数据文件中,并且生成索引文件,通过索引来查找小文件在数据文件中的offset和size,对文件进行读取。 Haystack的数据文件部分: Haystack的数据文件,将每个小文件封装成一个needle,包含文件的key、size、data等数据信息。所有小文件按写入的先后顺序追加到数据文件中。 Haystack的索引文件部分: Haystack的索引文件保存每个needle的key,以及该needle在数据文件中的offset、size等信息。程序启动时会将索引加载到内存中,在内存中通过查找索引,来定位在数据文件中的偏移量和大小。 面临的问题: Facebook的Haystack特点是将文件的完整key都加载到内存中,进行文件定位。机器内存足够大的情况下,Facebook完整的8字节key可以全部加载到内存中。 但是现实环境下有两个主要问题: 1.存储服务器内存不会太大,一般为32G至64G; 2.小文件对应的key大小难控制,一般选择文件内容的MD5或SHA1作为该文件的key。 场景举例: 一台存储服务器有12块4T磁盘,内存为32GB左右。 服务器上现需存储大小约为4K的头像、缩略图等文件,约为10亿个。 文件的key使用MD5,加上offset和size字段,平均一个小文件对应的索引信息占用28字节。 在这种情况下,索引占用内存接近30GB,... Read More | Share it now!