一个DBUS接口到仓鼠LIB。

hamster-dbus的Python项目详细描述


hamster-lib的dbus接口。

如何使用

hamster-dbus提供了两个非常不同但相关的功能。

  1. hamster_dbus.objects提供了几个可以 用于通过dbu导出服务,这些服务实际上公开了hamster-lib 超过DBU。
  2. hamster_dbus.storage包含可以用作有效 可以与中定义的对象通信的hamster-lib的后端 hamster_dbus.objects。这意味着任何支持 hamster-lib可以使用此后端(而不是默认的sqlalchemy后端 例如)使其客户机使用可用的dbus服务 而不是通过sqlalchemy处理后端功能本身。

这两个方面相互独立,但又是对立的两个方面 (类似于服务器和客户端)相同的勋章。

除此之外,还有一个基本的示例dbus服务可执行 (hamster_dbus_service.py)已包含,可用于获取 最小仓鼠dbus服务在短时间内运行。

测试和覆盖范围

hamster-dbus项目致力于提供可维护的、有良好文档记录的 以及测试过的代码。为此,我们提供了一个基本的测试套件 维护并旨在提供90%的覆盖率。 不幸的是,我们目前缺乏对glib/dbus最佳实践的深入了解 关于测试,我们当前基于pytest的解决方案只做了一些 工作。主要问题是为实际的单元提供一个隔离的环境 测试(不是集成测试)。 我们现在处理事情的方式是提供一个专用的设备 在新进程中启动单独的会话总线 测试“上钩”。虽然这种方法大多数时候都有效,但有两种 这里的实际问题(除了不是正确的单元测试之外):

  1. 运行测试套件时可能会出现这样的错误:

    [xcb] Unknown sequence number while processing queue
    [xcb] Most likely this is a multi-threaded client and XInitThreads has not \
        been called
    [xcb] Aborting, sorry about that.
    
    Whilst we do not really understand whats going on this is most likely due
    to the fact that the new spawned session bus process is seperate from the
    actual main look.
    
  2. coverage将报告大多数“对象”代码为未测试的,尽管 执行其方法的各种测试。这可能是因为这些方法 由@methoddecorator“阴影”。再说一次,我们缺乏应对的洞察力 现在就用这个。

因此,如果你有任何提示、指针甚至prs可以帮助我们改进 测试设置我们将非常感谢!在那之前我们不能 在ci服务器上自动运行测试套件,这大大限制了我们的qa:(

要在本地运行测试套件,只需在 virtualenv(在make develop之后):

make test

关于测试信号的附带说明

到目前为止,我们还没有找到一种测试信号的正确方法。 为了手动检查它们是否按预期发射,您可以使用 以下(dbus-monitor需要安装):

dbus-monitor "type='signal',sender='org.projecthamster.HamsterDBus',interface='org.projecthamster.HamsterDBus1'

学分

用于呈现此包的工具:

历史记录

0.10.0(2016-04-26)

  • pypi上的第一个版本。

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

推荐PyPI第三方库


热门话题
Java中是否有数字的默认类型   java调用一个类的方法来使用另一个类的实例   java HtmlUnit不适用于javascript处理   java需要帮助才能连接MongoDB   java如何从Maven中的src/main/resources复制文件?   java保存Int值(共享首选项)   从另一个类调用方法时,java Autowired组件出现空指针异常   java Spring JPA:PropertyAccessException 1:。。。MethodInvocationException:。'driverClassName'。。。org/postgresql/Driver:不支持的专业。次要版本52.0   java使用增强的JDO模型类在Eclipse中运行Junit测试   java如何使用eclipse IDE为junit创建可运行的jar文件   java如何在安卓中检测应用程序的启动和退出   java在其他线程可以访问静态映射时从数据库更新静态映射   java@Entitty和@EntityScan不起作用。我正在使用SpringBoot和jpa存储库,发生了很多次   java如何与google日历集成?