在测试期间隔离braintree沙盒上的状态。

btnamespace的Python项目详细描述


https://travis-ci.org/venmo/btnamespace.svg?branch=master

braintree命名空间隔离braintree网关上的状态:

importbraintreeimportbtnamespacewithbtnamespace.Namespace():customer=braintree.Customer.create({"id":"123"})assertcustomer.id=="123"braintree.Customer.find("123")# successbraintree.Customer.find("123")# NotFound exception

这在集成测试期间主要有用:

defsetUp(self):self.namespace=btnamespace.Namespace()self.namespace.__enter__()deftest_some_sandbox_integration(self):#...deftearDown(self):self.namespace.__exit__()

与在tearDown期间调用egbraintree.Customer.delete相比,这有许多优点:

  • 因为不需要拆卸,所以速度更快
  • 它更简单,因为它不需要任何簿记
  • 它是健壮的,因为测试可以在没有任何状态假设的情况下编写

您可以使用$ pip install btnamespace安装它。

支持的内容

  • 客户创建、更新、查找、删除
  • 信用卡创建、更新、查找、删除
  • 事务创建,查找

所有涉及子资源的操作-例如在一次呼叫中创建信用卡和客户-按预期工作。

添加对其他操作的支持很容易;我们只是还不需要它们。 欢迎投稿!

工作原理

在引擎盖下,一个名称空间对braintree客户端库进行全局修补。

在创建操作期间,将删除所有提供的ID。 这将强制网关使用唯一的ID进行响应,这些ID稍后将映射回最初提供的ID。 下面是一个示例:

  • 在对braintree.Customer.create({'id': '123', ...})的调用中,'123'存储为客户ID,调用变为braintree.Customer.create({...})
  • 然后,服务器为客户返回一个唯一的id'abcde''123'映射到'abcde',结果客户对象的id设置为'123'
  • 稍后,对braintree.Customer.find('123')的调用变为braintree.Customer.find('abcde')

贡献

在您的Vitualenv中:

$ cd btnamespace
$ pip install -e .
$ pip install -r requirements.txt

要运行测试,请首先添加沙盒凭据:

$ exportBT_MERCHANT_ID=merchant-id
$ exportBT_PUBLIC_KEY=public-id
$ exportBT_PRIVATE_KEY=private-key

然后运行$ python tests/test_integration.py

历史记录

2.0.0

发布日期:2016-07-15

  • 中断:放弃Python2.6支持
  • 修复退出命名空间
  • 后影响操作的错误
  • 添加strict_missing和strict_missing异常选项

1.1.1

发布日期:2014-09-26

  • 将bidict设置为0.1.5,以避免破坏较新版本的更改

1.1.0

发布日期:2014-07-28

  • 为braintree.clienttoken.generate添加架构

1.0.1

发布日期:2014-04-08

  • 使用较便宜的内省
  • 删除装饰依赖项

1.0.0

发布日期:2014-04-07

  • 初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Apache Flink外部Jar   创建和强制转换对象数组时发生java错误   Java,添加数组   具有相同包结构和类的java JAR   java Jenkins未能构建Maven项目   java为什么一个forloop比另一个更快,尽管它们做的“一样”?   servlets在将“/”站点迁移到Java EE包时处理contextpath引用   无法解析java MavReplugin:2.21或其某个依赖项   泛型如何编写比较器来泛化Java中的两种类型的对象?   java Android Emulator未在netbeans上加载   多线程Java使用线程对数组中的数字求和:在同步块中使用新变量作为锁:差异   java如何在JSP/servlet中设置<input>标记的值?