-
-
Notifications
You must be signed in to change notification settings - Fork 18.5k
nixos/tests: Leftover tasks towards unified Python integration tests #72828
Copy link
Copy link
Closed
Labels
1.severity: blockerThis is preventing another PR or issue from being completedThis is preventing another PR or issue from being completed2.status: stalehttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.mdhttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md6.topic: testingTooling for automated testing of packages and modulesTooling for automated testing of packages and modules
Milestone
Description
Thanks to #71684 being merged recently, we do now have a test driver implementation in Python that allows for writing the imperative part of NixOS integration tests in Python instead of Perl.
Thanks @flokli @edolstra @Lassulus @adisbladis @domenkozar @garbas @jonringer for the support and @blitz @jtraue @marijanp for helping me porting the remaining Perl tests to Python.
In order to finish this project, we are going to perform the following tasks over the next weeks/months:
- Perl and Python Test driver feature-parity
- implement
dumpTTYContentsPort remaining test-driver functions to python #72943 - implement
forwardPortPort remaining test-driver functions to python #72943 - implement
getWindowNamesNixos integration test ports #72835 - implement
requireActiveUnitNixos integration test ports #72835 - implement
waitForWindow - implement
waitUntilTTYMatches - fix
emptyDiskImagesbehaviour nixos test driver doesn't work with multiple emptyDiskImages #73559 -
Collect kernel coverage data after test finished(as per nixos/qemu-vm: Option to use squashfs Nix store closure instead of virtfs access to host's store #72354 (comment)), removal PR nixos/testing: remove remaining coverage-data logic #97231
- implement
- Document all Python functions with docstrings
- Remove all global state/singletons from Python test driver (e.g. global
logvariable) - Port all remaining Perl tests
-
cockroachdbnixosTests.cockroachdb: port to python #73934 nixosTests.cockroachdb: Port to python #80047 -
docker-containersbroken: port nixosTests.docker-containers: Port to python #80049 (was renamed tooci-containersin the meantime and fixed) -
docker-preloaderbroken: dockerPreloader fails due to "read-only file system" error #74143, port nixosTests.docker-preloader: Port to Python #80051 -
docker-toolsbroken: docker-tools test fails to run nix image #75081, port nixosTests.docker-tools: Port to Python #80048 -
ec2nixosTests.ec2: Port tests that depend on common/ec2.nix #79696 -
hardenednixosTests.hardened: port to python #76708 -
krb5/deprecated-confignixosTests.krb5: Port to python #80130 -
krb5/example-confignixosTests.krb5: Port to python #80130 -
kubernetes/* -
openstack-imagenixosTests.ec2: Port tests that depend on common/ec2.nix #79696 -
partition(test deleted in nixos/tests/partition.nix: remove #87084) -
redmine(fixed: nixosTests.redmine is broken #80061) nixosTests.redmine: Port to python #85747 -
rsyslogdnixosTests.rsyslogd: Port to python #80096 -
run-in-machinenixosTests.run-in-machine: Port to Python #80099 -
systemd-confinementnixosTests.systemd-confinement: Port to Python #80103 -
taskservernixosTests.taskserver: Port to python #93413 -
virtualboxnixosTests.virtualbox: Port to python #94858 -
os-probernixos/tests: Leftover tasks towards unified Python integration tests #72828 (comment) -
acme -
ammonite -
atdPort tests to Python #72833 -
automysqlbackup -
avahiPort tests to Python #72833 -
babeldPort tests to Python #72833 nixos/tests: migrate my tests to python #72834 -
bcachefsPort tests to Python #72833 -
beanstalkdPort tests to Python #72833 -
beesnixosTests.bees: port to python #74001 -
bindPort tests to Python #72833 -
bittorrent -
blivet(broken, see nixos/tests/blivet: times out #33496) -
boot-stage1Port tests to Python #72833 -
borgbackupPort tests to Python #72833 -
buildbotnixosTests: Port more tests #78556 -
caddyPort tests to Python #72935 -
cadvisorPort tests to Python #72935 -
cassandranixos/cassandra: Port test to python #72897 -
ceph-multi-nodeWIP: nixos/ceph: port tests to python #73190 -
ceph-single-nodeWIP: nixos/ceph: port tests to python #73190 -
certmgrPort tests to Python #72935 -
cfsslPort tests to Python #72935 -
chromiumnixosTests.chromium: Port to Python #79352 -
cjdnsPort tests to Python #72935 -
clickhousePort tests to python #73131 -
cloud-initPort tests to Python #72935 -
codimdnixos/codimd: port test to python test-driver #74036 -
colordPort tests to Python #72935 -
containers-bridgeNixos test containers python port #74218 -
containers-ephemeralnixosTests.containers*: port to python #74196 -
containers-extra_vethnixosTests.containers*: port rest to python #74761 -
containers-hostsnixosTests.containers*: port to python #74196 -
containers-imperativeNixos test containers python port #74218 -
containers-ipv4Nixos test containers python port #74218 -
containers-ipv6Nixos test containers python port #74218 -
containers-macvlansnixosTests.containers*: port rest to python #74761 -
containers-physical_interfacesnixosTests.containers*: port rest to python #74761 -
containers-portforwardnixosTests.containers*: port rest to python #74761 -
containers-reloadablenixosTests.containers*: port to python #74196 -
containers-restart_networkingnixosTests.containers*: port rest to python #74761 -
containers-tmpfsnixosTests.containers*: port to python #74196 -
couchdbPort tests to Python #72935 -
delugePort tests to python #73131 -
dhparamsNixos tests ports #75084 -
dnscrypt-proxyPort tests to Python #72935 -
docker-edge -
docker-registrynixos/docker-registry: port test to python test-driver #74033 -
docker-tools-overlayNixos tests ports #75084 -
dockerPort tests to Python #72935 -
documizePort tests to Python #72935 -
dovecotnixosTests.dovecot: port test to python #74004 -
ecryptfsNixos tests ports #75084 -
emacs-daemon -
envNixos tests ports #75084 -
etcd-clusternixosTests.etcd*: port to python #74005 -
etcdnixosTests.etcd*: port to python #74005 -
fancontrolPort tests to python #73131 -
fermnixos/ferm: port test to python #74513 -
firefoxNixos integration test ports #72835 -
firewallPort tests to python #73131 -
fishPort tests to python #73131 -
flannel(broken nixos/tests/flannel fails #74941, PR nixosTests.flannel: port to python, unbreak #85252) -
flatpak-builder -
flatpak -
fluentdPort tests to python #73131 -
fontconfig-default-fonts -
fsck -
fwupd -
gdk-pixbuf -
gitlabnixosTests.gitlab: port to python #73939 -
gitolitenixosTests.gitolite: port to python #74063 -
gjs -
glib-networking -
glusterfsnixosTests.glusterfs: port to python #74003 -
gnome-photos -
gnome3-xorgnixosTests.gnome3-xorg: port to python/rewrite #73938 -
gnome3nixos/tests/gnome3: port to python #74943 -
gocd-agentnixosTest.gocd-{agent,server}: port to python #74082 -
gocd-servernixosTest.gocd-{agent,server}: port to python #74082 -
google-oslogin/defaultnixosTests.google-oslogin: port to python #74002 -
gotify-servernixos/gotify-server: port test to python test-driver #74034 -
grafananixos/tests: port some tests to python (loki, grafana, pgjwt, initrd-ssh, exporters) #72904 -
graphene -
graphitenixosTests.graphite: port to python and mark as broken #76562 (python-twisted dependencies fail already in Perl) -
graylognixos/graylog: port test to python test-driver #74040 -
hadoop/hdfs -
hadoop/yarn -
hakanixosTests.haka: port to python #76707 -
handbrakePort tests to python #73131 -
haproxynixosTests.haproxy: port test to python #75459 Port NixOs tests to python #75695 -
hibernatePort tests to python #73131 -
hitch/default -
home-assistantnixosTests.home-assistant: port to python #74126 -
houndPort tests to python #73131 -
hydra/default -
i3wmnixos/tests/i3wm: port to python #74938 -
icingaweb2Port tests to python #73131 -
iftop -
ihatemoneynixosTests: Port more tests #78556 -
incronPort tests to python #73131 -
influxdbnixosTests.influxdb: port to python #74069 -
initrd-network-ssh/defaultnixos/tests: port some tests to python (loki, grafana, pgjwt, initrd-ssh, exporters) #72904 -
initrd-networkPort NixOs tests to python #75695 -
installernixosTests.installer: Port installer and ZFS test to python #78670 -
ipv6nixosTests.ipv6: port to python #74758 -
jackettPort tests to python #73131 -
jellyfin -
jenkinsnixosTests.jenkins: port to python #74074 -
kerberos/heimdalnixos/kerberos: port tests to python #73961 -
kerberos/mitnixos/kerberos: port tests to python #73961 -
kernel-latest -
kernel-lts -
kernel-testing -
kexecnixosTests.kexec: port to python and mark as broken #76560 (hangs forever already in Perl) -
keymapnixosTests: Port more tests #78556 -
knotnixos/tests: migrate my tests to python #72834 -
ldapnixosTests.[open]ldap: port to python #74851 -
leapsPort NixOs tests to python #75695 -
libgdata -
libxmlb -
lidarrPort NixOs tests to python #75695 -
lightdmnixosTests.lightdm: port to python #73135 -
limesurvey(attempted in Port NixOs tests to python #75695, broke with python error on decoding incomplete utf-8 string), reattempt in nixosTests.limesurvey: port to python and drop badly utf encoded characters #78555 -
login -
lokinixos/tests: port some tests to python (loki, grafana, pgjwt, initrd-ssh, exporters) #72904 -
magnetico -
mailcatcherPort NixOs tests to python #75695 -
matrix-synapseNixos integration test ports #72835 -
mediawiki -
memcachednixosTests.memcached: port to python #74312 -
metabasePort tests to Python #72857 -
minidlnaPort tests to python #73131 -
minifluxPort tests to python #73131 -
minionixosTests.minio: port to python #74070 -
miscnixosTests.misc: port to python #79064 -
mongodbnixosTests.mongodb: port to python #73933 -
moodlePort tests to Python #72887 -
mortyPort tests to Python #72887 -
mosquittoMosquitto test python #73827 -
mpdnixosTests.mpd: port to python #73935 -
mumblenixosTests.mumble: port to python #76410 -
muninnixos/tests/munin: port to python #74935 -
mutable-usersPort NixOS tests to python #75703 -
mxisdPort NixOS tests to python #75703 -
mysql-backupnixosTests.mysql*: port to python #73992 -
mysql-replicationnixosTests.mysql*: port to python #73992 -
mysqlnixosTests.mysql*: port to python #73992 -
natnixosTests.nat: port to python #74754 -
ndppda9a2717 -
neo4jnixosTests.neo4j: port test to python #73991 -
nestingPort NixOS tests to python #75703 -
netdatanixosTests.netdata: port to python #74078 -
networkingProxynixosTests.networkingProxy: port to Python #78239 -
networkingnixosTests.networking: Port tests to python #75721 -
nextcloud/basic -
nextcloud/with-mysql-and-memcached -
nextcloud/with-postgresql-and-redis -
nexus -
nfsnixos/nfs: Allow Kerberized NFS #73989 -
nghttpxPort NixOS tests to python #75703 -
nginx-ssonixosTests.nginx*: port to python #74072 -
nginxnixosTests.nginx*: port to python #74072 -
nix-ssh-servenixosTests.nix-ssh-serve: port to python #73994 -
nixos-generate-config -
novacomdPort NixOS tests to python #75703 -
nsdnixosTests.nsd: Port to python #80065 -
nzbgetPort NixOS tests to python #75703 -
openarena -
openldapnixosTests.[open]ldap: port to python #74851 -
opensmtpdopensmtpd: 6.4.2p1 -> 6.6.1p1 #72390 -
openssh -
orangefsPort NixOS tests to python #75703 -
osquerynixosTests.osquery: port to python #74073, broken: osquery: remove #74081 -
osrm-backendPort NixOS tests to python #75703 -
ostree -
overlayfsPort NixOS tests to python #75703 -
packagekit -
pam-oath-loginnixos/test: Use retry() in all looping functions that need timeouts #74898 -
pam-u2fnixosTests.pam-u2f: port test to python #75180 -
pantheonnixosTests.pantheon: port to python #73140 -
paperlessPort NixOS tests to python #75701 -
pdns-recursorPort NixOS tests to python #75701 -
peerflixPort NixOS tests to python #75701 -
pgjwtnixos/tests: port some tests to python (loki, grafana, pgjwt, initrd-ssh, exporters) #72904 -
pgmanagePort NixOS tests to python #75701 -
php-pcrePort NixOS tests to python #75701 -
plasma5nixosTests.plasma5: port to python #73134 -
plotinusnixosTests.plotinus: Port to Python #80067 -
postgisPort NixOS tests to python #75701 -
postgresql-wal-receivernixosTests.postgresql-wal-receiver is broken #80060nixosTests.postgresql-wal-receiver needs to be ported to python #96347 -
powerdnsnixos/tinydns: port test to python #73059 -
pppdnixos/pppd: port test to python #73056 -
printingnixosTests.printing: Port to Python #79327 -
prometheus-exportersnixos/tests: port some tests to python (loki, grafana, pgjwt, initrd-ssh, exporters) #72904 -
prometheusnixos/prometheus: Port prometheus test to python #74055 -
proxynixosTests.proxy: port to python #75462 nixosTests.limesurvey: port to python and drop badly utf encoded characters #78555 -
quaggaPort NixOS tests to python #75701 -
quake3 -
rabbitmqnixosTests.rabbitmq: port to python #74123 -
radarrPort tests to Python #72887 -
radicalenixosTests.radicale: port to python #74764 -
redisPort tests to Python #72887 -
riaknixosTests.riak: port to python #74124 -
roundcubePort tests to Python #72887 Port tests to python #73131 -
rspamdnixosTests.rspamd: port to python #75464 -
rss2emailPort tests to Python #72887 -
rxenixosTests.rxe: port to python #73568 -
sambanixos/samba: use tmpfiles, port test to python #73080 -
shiori -
signal-desktopPort tests to Python #72887 -
simple -
slurmnixos/slurm: fix test and X11 options #73179 -
smokepingnixos/smokeping: port test to python #73057 -
snapperPort tests to Python #72887 -
solrnixosTests.solr: Port to python #80063 -
sonarrPort NixOS tests to python #75701 -
strongswan-swanctlPort tests to Python #72887 -
sudonixosTests.sudo: port to python #74076 -
switch-testPort NixOS tests to python #75701 -
syncthing-initnixosTests.syncthing*: port to python #74114 -
syncthing-relaynixosTests.syncthing*: port to python #74114 -
systemd-networkd-wireguardtests/systemd-networkd-wireguard: migrate to python test runner #73699 -
systemd-nspawnnixosTests.systemd-nspawn: convert test to python #73990 -
systemd-timesyncdPort NixOS tests to python #75701 -
systemdnixosTests.systemd: port to Python #78241 -
telegrafPort tests to Python #72887 -
tiddlywikinixos/tests/tiddlywiki: port to python #74866 -
timezonenixos/tests/timezone: port to python #74858 -
tinydnsnixos/tinydns: port test to python #73059 -
tor -
tracPort tests to Python #72857 -
transmission -
trezordPort tests to Python #72857 -
tricksterPort tests to Python #72887 -
udisks2Port gnome3 like tests to python and udisks2 #72860 -
upnpPort tests to Python #72887 -
uwsginixosTests.uwsgi: port to python #74061 -
vault -
wireguard/default -
wireguard/generated -
wireguard/namespacesPort NixOs tests to python #75695 -
wordpressnixosTests.wordpress: port to python #73993 -
xautolockPort tests to Python #72887 -
xdg-desktop-portal -
xfce4-14Port xfce test to python #73138 -
xfcePort xfce test to python #73138 -
xmonadnixosTests.xmonad: port to python #73137 -
xmpp/ejabberdnixos/ejabberd: Port test to python #74254 -
xmpp/prosody-mysqlnixosTests.prosody*: port to python #74031 -
xmpp/prosodynixosTests.prosody*: port to python #74031 -
xrdpnixos/tests/xrdp: port to python #74854 -
xss-lock -
yabarPort tests to Python #72887 -
yggdrasilnixosTests.yggdrasil: port to python #73411 -
zfsnixosTests.installer: Port installer and ZFS test to python #78670 -
zookeeperPort tests to Python #72887 -
beegfs(broken & removed, see beegfs is broken #73998)
-
- broken, fix/discuss what to do:
-
hocker-fetchdocker/defaulthaskellPackages.hocker marked as broken #95517, PR: nixosTests.hocker-fetchdocker #96076 -
ipfs(broken, see ipfs tests are broken #74000) -
mathicsnixosTests.mathics is broken #80055, PR: mathics: remove package, module and test #95505 -
mesosMesos is broken #78557, PR: mesos: remove package, module and test (and chronos/marathon which depends on it) #95507
-
- Deprecate perl test driver
- Drop Perl test driver PR: nixos/lib/test*: remove perl test driver #96396
Additional work that would be awesome:
- Add type annotations
- Perform mypy checks
- Drop XML output, use Python-native logging (but it would be worthwhile to keep the nesting approach in the log) nixos/test-driver: use pythons logging module #96254
- Make output more readable by adding colors PR: nixos/test: colour machine names #96152
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
1.severity: blockerThis is preventing another PR or issue from being completedThis is preventing another PR or issue from being completed2.status: stalehttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.mdhttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md6.topic: testingTooling for automated testing of packages and modulesTooling for automated testing of packages and modules