Florian Bruhin's Avatar

Florian Bruhin

@the-compiler.org.bsky.social

Writing #qutebrowser, #pytest core maintainer, and doing lots of other stuff in #Python. Python/pytest trainings via https://bruhin.software

167 Followers  |  466 Following  |  13 Posts  |  Joined: 02.12.2024  |  1.6062

Latest posts by the-compiler.org on Bluesky

Two slide titles: "Setup" with an illustration of a snake looking out of a cardboard box, and "About testing" with a snake looking at a checklist with green checkmarks.

Two slide titles: "Setup" with an illustration of a snake looking out of a cardboard box, and "About testing" with a snake looking at a checklist with green checkmarks.

A snake wrapped around a panflute

A snake wrapped around a panflute

Going the extra mile for my #pytest trainings and found someone to draw me some illustrations for my slides! Love how things look so far. #Python

12.07.2025 20:04 — 👍 2    🔁 0    💬 0    📌 0
Florian Bruhin

Florian Bruhin

Join Florian Bruhin @the-compiler.org at EuroPython for "pytest - simple, rapid and fun testing with Python". Talk: ep2025.europython.eu/CV3M7B

04.07.2025 12:04 — 👍 2    🔁 1    💬 0    📌 0

IMHO the better phrasing would be that it's the same concept that already existed for a long time, just formalized as part of a type system. Kind of similar to how we used to annotate types as part of a docstring, but type annotation syntax formalized that.

09.05.2025 09:49 — 👍 0    🔁 0    💬 0    📌 0

I'd say it's "correct" if you consider Iterable, Sizable, etc. as types - not in the sense of "a class" but in the sense of "can be used as a type annotation in place of a class-based type".

The overload the author sees might then be between protocol as an informal term, and as a typing feature.

09.05.2025 09:48 — 👍 0    🔁 0    💬 1    📌 0
Screenshot of a "Arguments to select tests" slide which shows pytest arguments like --last-failed or --stepwise, with a QR code and link to https://pyte.st/mathspp-select

Screenshot of a "Arguments to select tests" slide which shows pytest arguments like --last-failed or --stepwise, with a QR code and link to https://pyte.st/mathspp-select

We've gone full circle: My pytest training slide now links to @mathspp.com's blog post with an (outdated) screenshot of the same slide 🤣

15.04.2025 14:27 — 👍 5    🔁 2    💬 1    📌 0
Preview
Sponsor @pytest-dev on GitHub Sponsors The pytest framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries.

It is now easy to contribute financially to the pytest project, as we are now members of the GitHub Sponsors program:

github.com/sponsors/pyt...

This is an easy and convenient way to contribute, integrated with GitHub.

Any contribution, no matter the size, is really appreciated by the team!

31.03.2025 23:44 — 👍 4    🔁 2    💬 0    📌 0
Preview
Home An den Workshop-Tagen dreht sich während vier Tagen in ganztägigen Workshops alles um bekannte und aktuelle Themenwelten rund um Open Source Software und Technologien sowie Soft Skills. Es bleibt auch...

I'm delighted to announce that my introductory #pytest training ("simple, rapid and fun testing with #Python") has been accepted for both @pyconde.bsky.social as well as @europython.eu! See you in Darmstadt 🇩🇪 and/or Prague 🇨🇿?

I'm already working on the next CfP, for the CH Open workshoptage.ch 🇨🇭!

31.03.2025 08:16 — 👍 4    🔁 2    💬 0    📌 0
Preview
GitHub - The-Compiler/pytest-xvfb: A pytest plugin to run Xvfb (or Xephyr/Xvnc) for tests. A pytest plugin to run Xvfb (or Xephyr/Xvnc) for tests. - The-Compiler/pytest-xvfb

I just released #pytest-xvfb v3.1.0 and .1 (after some CI trouble)!

Other than the usual Python version and tooling updates, this exposes a new #pytest hook pytest_xvfb_disabled(), which can be implemented to dynamically decide to disable Xvfb for this test run.

github.com/The-Compiler...

12.03.2025 13:03 — 👍 4    🔁 1    💬 0    📌 0
Making sure you're not a bot!

I don't think @xeiaso.net is to blame here FWIW (they created Anubis), from what I can gather Gnome hard-coded a block role based on some User-Agent regex shenanigans. As usual it can easily be circumvented by pretending to be a newer Chromium. Sigh.

gitlab.gnome.org/Infrastructu...

12.03.2025 11:58 — 👍 1    🔁 0    💬 1    📌 0
Screenshot of Anime girl picture and text:

Oh noes!

Access Denied.

Try again
Go home

Protected by Anubis from Within.

Screenshot of Anime girl picture and text: Oh noes! Access Denied. Try again Go home Protected by Anubis from Within.

#TodayInOpenSource:

- The ECB bricks Gnome Calculator (because they probably DDoS it and error handling is broken): tech.lgbt/@chiffchaff/...
- I try to access Gnome's GitLab with #qutebrowser
- I get blocked by an anime girl as an "AI scraper" and need to use Chromium instead (╯°□°)╯︵┻━┻

12.03.2025 11:53 — 👍 2    🔁 0    💬 1    📌 0
Screenshot of text on Europython website:

With current filters applied, you're looking at
0 *random* proposals, out of 572 total
To see different proposals adjust the filters above or reload the page.

So far you've already voted on 572 proposals, and you have 0 left to vote

Here's the breakdown of your current votes
Vote	Count	% of votes	% of all proposals
Must See	5	0.87%	0.87%
Want to See	35	6.12%	6.12%
Maybe	95	16.61%	16.61%
Not Interested	437	76.40%	76.40%
You also left 7 comments

All stats are refreshed only when you reload the page

Screenshot of text on Europython website: With current filters applied, you're looking at 0 *random* proposals, out of 572 total To see different proposals adjust the filters above or reload the page. So far you've already voted on 572 proposals, and you have 0 left to vote Here's the breakdown of your current votes Vote Count % of votes % of all proposals Must See 5 0.87% 0.87% Want to See 35 6.12% 6.12% Maybe 95 16.61% 16.61% Not Interested 437 76.40% 76.40% You also left 7 comments All stats are refreshed only when you reload the page

I did a 100% speedrun of the @europython.eu proposals community voting... got the email about it only yesterday, voting closes on Monday 😅

15.02.2025 14:51 — 👍 4    🔁 0    💬 0    📌 0
Professional Testing with Python

⏰ Only a week remaining with early-bird pricing for my annual three-day deep dive into #pytest with #Python Academy!
📅 March 4th — 6th
🌍 Leipzig (Germany) or remote
📕 Three days of pytest knowledge from one of its core maintainers. Fixtures, mocking, plugins, …

python-academy.com/courses/pyth...

28.01.2025 10:21 — 👍 1    🔁 2    💬 0    📌 0
Preview
Linux Foundation Announces the Launch of Supporters of Chromium-Based Browsers New initiative to support open development and enhance projects within the Chromium ecosystem

The Chromium projects themselves will remain under current, existing governance structures while just the new "Supporters of Chromium-Based Browsers" will be housed under the Linux Foundation.

(quotes added by me)

"Supporters of Chromium-Based Browsers" is the name of the initiative...

10.01.2025 11:19 — 👍 1    🔁 1    💬 0    📌 0
Preview
The Linux Foundation launches an initiative to support open-source Chromium-based browsers Google's Chromium source code will be used as the basis for new open-source web browsers.

@sjvn.bsky.social FWIW, I think www.zdnet.com/home-and-off... is wrong: You say "encourage the creation of new Chromium-based web browsers" and "any new browsers will be housed under the Linux Foundation", but that's the exact opposite what the @linuxfoundation.org press release says: [1/2]

10.01.2025 11:19 — 👍 2    🔁 1    💬 1    📌 0
[qutebrowser] qutebrowser v3.4.0 released / 11 years qutebrowser!

#qutebrowser is 11 years old, almost on the minute! I'm celebrating by releasing v3.4.0: listi.jpberlin.de/pipermail/qu...

14.12.2024 21:18 — 👍 5    🔁 0    💬 0    📌 0

@the-compiler.org is following 19 prominent accounts