Update ratbagctl.test

This commit is contained in:
Michał Lubas
2023-12-16 13:55:50 +01:00
committed by Yaroslav Chvanov
parent 00f06ba98e
commit 34217a752b
3 changed files with 45 additions and 35 deletions

View File

@@ -1977,7 +1977,7 @@ def main(argv: List[str]) -> None:
cmd = parser.parse(argv)
if cmd.help:
parser.print_help()
return
return 0
_r = open_ratbagd(verbose=cmd.verbose)
if _r is not None:
@@ -1986,13 +1986,19 @@ def main(argv: List[str]) -> None:
f = cmd.func
except AttributeError:
parser.print_help()
return
return 2
else:
try:
f(r, cmd)
except RatbagCapabilityError as e:
print(f"Error: {e}", file=sys.stderr)
return 1
except ValueError as e:
print(f"Error: {e}", file=sys.stderr)
return 2
return 0
if __name__ == "__main__":
main(sys.argv[1:])
ret = main(sys.argv[1:])
sys.exit(ret)

View File

@@ -74,6 +74,8 @@ def main(argv, start_ratbagd=True):
time.sleep(0.5)
except RatbagCapabilityError as e:
print(f"Error: {e}", file=sys.stderr)
except ValueError as e:
print(f"Error: {e}", file=sys.stderr)
finally:
try:
if cmd.keepalive:

View File

@@ -86,6 +86,8 @@ class TestRatbagCtl(unittest.TestCase):
returncode = e.code
except AttributeError:
returncode = 2
except ValueError:
returncode = 2
except argparse.ArgumentTypeError:
returncode = 2
output = sys.stdout.getvalue()
@@ -140,6 +142,9 @@ class TestRatbagCtl(unittest.TestCase):
return stdout
def launch_fail_with_exception_test(self, params, exception):
global run_ratbagctl_in_subprocess
if run_ratbagctl_in_subprocess:
return ""
with self.assertRaises(exception):
returncode, stdout, stderr = self.run_ratbagctl(params)
return ""
@@ -177,18 +182,22 @@ class TestRatbagCtlProfile(TestRatbagCtl):
{
"profiles": [
{
"is_active": false
"is_active": false,
"capabilities": [102]
},
{
"name": "test profile x2",
"is_active": false
"is_active": false,
"capabilities": [102]
},
{
"is_active": true
"is_active": true,
"capabilities": [102]
},
{
"is_active": false,
"is_disabled": true
"is_disabled": true,
"capabilities": [102]
}
]
}
@@ -485,16 +494,16 @@ class TestRatbagCtlDPI(TestRatbagCtl):
self.setProfile(2)
r = self.launch_good_test("test_device dpi get")
self.assertEqual(r, "2100x2200dpi")
self.launch_good_test("test_device " + command + " 1350x1450")
self.launch_good_test("test_device " + command + " 1300x1400")
r = self.launch_good_test("test_device dpi get")
self.assertEqual(r, "1350x1450dpi")
self.launch_good_test("test_device " + command + " 2350x2450dpi")
self.assertEqual(r, "1300x1400dpi")
self.launch_good_test("test_device " + command + " 2300x2400dpi")
r = self.launch_good_test("test_device dpi get")
self.assertEqual(r, "2350x2450dpi")
self.launch_good_test("test_device " + command + " 2350")
self.assertEqual(r, "2300x2400dpi")
self.launch_good_test("test_device " + command + " 2300")
r = self.launch_good_test("test_device dpi get")
self.assertEqual(r, "2350x2350dpi")
self.launch_fail_test("test_device " + command + " 2350dpi")
self.assertEqual(r, "2300x2300dpi")
self.launch_fail_test("test_device " + command + " 2300dpi")
self.launch_fail_test(command)
self.launch_fail_test("test_device " + command + " X")
self.launch_fail_test("test_device " + command + " 100 X")
@@ -628,7 +637,7 @@ class TestRatbagCtlButton(TestRatbagCtl):
r = self.launch_good_test("test_device button 2 get")
self.assertEqual(r, "Button: 2 is mapped to 'profile-cycle-up'")
r = self.launch_good_test("test_device button 3 get")
self.assertEqual(r, "Button: 3 is mapped to macro '↕B 300ms'")
self.assertEqual(r, "Button: 3 is mapped to macro '↕KEY_B 300ms'")
self.launch_fail_test("test_device button 1 get 10")
self.launch_fail_test("test_device button 10 get")
self.launch_fail_test("test_device button 1 get X")
@@ -671,13 +680,15 @@ class TestRatbagCtlButton(TestRatbagCtl):
command = "button 2 action set macro "
self.launch_good_test("test_device " + command + "+KEY_B KEY_A -KEY_B KEY_C")
r = self.launch_good_test("test_device button 2 get")
self.assertEqual(r, "Button: 2 is mapped to macro '↓B ↕A ↑B ↕C'")
self.assertEqual(
r, "Button: 2 is mapped to macro '↓KEY_B ↕KEY_A ↑KEY_B ↕KEY_C'"
)
self.launch_good_test("test_device " + command + "t100 t200")
r = self.launch_good_test("test_device button 2 get")
self.assertEqual(r, "Button: 2 is mapped to macro '100ms 200ms'")
self.launch_good_test("test_device " + command + "KeY_z")
r = self.launch_good_test("test_device button 2 get")
self.assertEqual(r, "Button: 2 is mapped to macro '↕Z'")
self.assertEqual(r, "Button: 2 is mapped to macro '↕KEY_Z'")
self.launch_good_test("test_device " + command)
r = self.launch_good_test("test_device button 2 get")
self.assertEqual(r, "Button: 2 is mapped to macro 'None'")
@@ -697,43 +708,34 @@ class TestRatbagCtlLED(TestRatbagCtl):
"profiles": [
{ "is_active": true,
"leds": [
{ "type": 1,
"mode": 0,
{ "mode": 0,
"duration": 1000,
"brightness": 20 },
{ "type": 1,
"mode": 1,
{ "mode": 1,
"duration": 333,
"brightness": 40,
"color": [255, 0, 0] },
{ "type": 1,
"mode": 2,
{ "mode": 2,
"duration": 333,
"brightness": 40 }
]
},
{
"leds": [
{ "type": 1,
"mode": 1 },
{ "type": 1,
"mode": 0 },
{ "type": 1,
"mode": 1 }
{ "mode": 1 },
{ "mode": 0 },
{ "mode": 1 }
]
},
{
"leds": [
{ "type": 1,
"mode": 1,
{ "mode": 1,
"color": [255, 0, 0],
"duration": 1000 },
{ "type": 1,
"mode": 2,
{ "mode": 2,
"brightness": 40,
"duration": 333 },
{ "type": 1,
"mode": 1 }
{ "mode": 1 }
]
}
]