ponty / PyVirtualDisplay

Python wrapper for Xvfb, Xephyr and Xvnc
BSD 2-Clause "Simplified" License
697 stars 78 forks source link

API to pass custom arguments to the underlying X server? #52

Closed The-Compiler closed 4 years ago

The-Compiler commented 4 years ago

I'm using PyVirtualDisplay in my pytest-xvfb project, and so far that has worked rather well.

pytest-xvfb allows users to pass custom arguments to the underlying Xvfb. It did this by doing the following before the v1.0 release:

disp.args.extend(...)

With v1.0, due to 20f6838e3870d11b75c8e30b08d225c1c640db96, this stopped working. Instead, this seems to work, and is what I thought was a public API (given that it's proc and not _proc):

disp.proc.args.extend(...)

But with v1.1, this seems to break again, due to 0aed78349f7bf7ca9b05d2b89f1a66eedf6c9397 (which seems to switch to plain subprocess instead of using EasyProcess)?

So now I can't see any possibility to pass custom args anymore... Wasn't 0aed78349f7bf7ca9b05d2b89f1a66eedf6c9397 a public API break? If that's not supported anymore, would it be possible to add something like an extra_args argument to Display or Display.start()?

ponty commented 4 years ago

I added extra_args parameter.

ponty commented 4 years ago

Both commits (20f6838e3870d11b75c8e30b08d225c1c640db96 0aed78349f7bf7ca9b05d2b89f1a66eedf6c9397 ) were added before v1.0, this means proc was never released, it was added and removed before v1.0, so v1.1 doesn't break. The big change is in v1.0, this means that only the undocumented API changed like cmd. You are right I forgot to use the underscore in names, I will check other variables.

The-Compiler commented 4 years ago

Right, I somehow was mistaken there, sorry! Indeed extra_args in ccb31535cbf594013d1b36da01edd097136f63b4 / v1.3 seems to work fine, thank you! :+1: