Headless Testing of PySide/PyQt GUI Applications with pytest-qt

🤓 Intro Manual testing of GUI applications can become tedious and error-prone as features and complexity increase. Headless testing offers a solution by automating UI interactions without the need for a physical display. This approach allows for faster test execution, improved repeatability, and seamless integration with continuous integration and continuous delivery (CI/CD) pipelines. In this post, we’ll explore how to leverage pytest-qt, a powerful framework for headless testing of PySide/PyQt applications. ...

May 22, 2024 · Andrea Manzini

compare package version across distros

TLDR: This script now answers the question “Do some of my openSUSE packages have newer versions in other distros?” As a following on previous post, I added an useful feature in order to have more information about a package. Since I maintain some openSUSE packages, I want to be informed if they gets outdated and if other packagers have released newer versions. ...

January 9, 2023 · Andrea Manzini

get update info about packages

being lazy, I made a small utility to check last pkgs update date on Open Build Service. You can find the project repository on my github, but it’s so simple I can paste also here. The usage is pretty simple: just run the command giving it a package name, and then it will tell you when it was last updated. With this information, you can decide/check if the package needs some work on! ...

November 24, 2022 · Andrea Manzini

integration between Python and Rust - Part 2

In this post we are going to write a new module for python: a very simple function exported from Rust that we can consume in the Python interpreter. We’ll leverage the PyO3 Rust bindings for the Python interpreter. Let’s start with a new Cargo project: $ cargo init --lib demo_rust_lib and insert the required settings in Cargo.toml: [package] name = "rusty" version = "0.1.0" edition = "2021" [lib] name="rusty" crate-type = ["cdylib"] [dependencies.pyo3] version = "*" [features] extension-module = ["pyo3/extension-module"] default = ["extension-module"] now it’s a matter to write our library; luckily the PyO3 library exposes a lot of useful types for python interop; the only thing we need to add is an extra fn named as our module that “exports” the functions we want to make available in the Python layer: ...

January 7, 2022 · Andrea Manzini