at 23.11-pre 1.3 kB view raw
1import ./make-test-python.nix ({ pkgs, ... }: 2 3{ 4 name = "power-profiles-daemon"; 5 meta = with pkgs.lib.maintainers; { 6 maintainers = [ mvnetbiz ]; 7 }; 8 nodes.machine = { pkgs, ... }: { 9 security.polkit.enable = true; 10 services.power-profiles-daemon.enable = true; 11 environment.systemPackages = [ pkgs.glib ]; 12 }; 13 14 testScript = '' 15 def get_profile(): 16 return machine.succeed( 17 """gdbus call --system --dest net.hadess.PowerProfiles --object-path /net/hadess/PowerProfiles \ 18 --method org.freedesktop.DBus.Properties.Get 'net.hadess.PowerProfiles' 'ActiveProfile' 19 """ 20 ) 21 22 23 def set_profile(profile): 24 return machine.succeed( 25 """gdbus call --system --dest net.hadess.PowerProfiles --object-path /net/hadess/PowerProfiles \ 26 --method org.freedesktop.DBus.Properties.Set 'net.hadess.PowerProfiles' 'ActiveProfile' "<'{profile}'>" 27 """.format( 28 profile=profile 29 ) 30 ) 31 32 33 machine.wait_for_unit("multi-user.target") 34 35 set_profile("power-saver") 36 profile = get_profile() 37 if not "power-saver" in profile: 38 raise Exception("Unable to set power-saver profile") 39 40 41 set_profile("balanced") 42 profile = get_profile() 43 if not "balanced" in profile: 44 raise Exception("Unable to set balanced profile") 45 ''; 46})