Message ID | 20240627153103.594107-1-chuang+git@melty.land |
---|---|
State | New |
Headers | show |
Series | [libgpiod,v2,1/2] bindings: python: tests: add a test case for line request by name with multiple entries | expand |
On Thu, Jun 27, 2024 at 11:31:02PM +0800, Chuang Zhu wrote: > From: Chuang Zhu <git@chuang.cz> > Add a commit comment. > Signed-off-by: Chuang Zhu <git@chuang.cz> > --- > bindings/python/tests/tests_line_request.py | 34 +++++++++++++++++++++ > 1 file changed, 34 insertions(+) > > diff --git a/bindings/python/tests/tests_line_request.py b/bindings/python/tests/tests_line_request.py > index f99b93d..c9a5c81 100644 > --- a/bindings/python/tests/tests_line_request.py > +++ b/bindings/python/tests/tests_line_request.py > @@ -310,6 +310,40 @@ class LineRequestComplexConfig(TestCase): > self.assertEqual(chip.get_line_info(3).edge_detection, Edge.BOTH) > > > +class LineRequestComplexConfigByName(TestCase): Nothing complex about the config, so LineRequestMixedConfigByName? > + def setUp(self): > + self.sim = gpiosim.Chip(num_lines=4, line_names={2: "foo", 3: "bar", 1: "baz", 0: "xyz"}) > + self.req = gpiod.request_lines( > + self.sim.dev_path, > + { > + ("baz", "bar"): gpiod.LineSettings(direction=Direction.OUTPUT), > + ("foo", "xyz"): gpiod.LineSettings(direction=Direction.INPUT) > + }, > + ) > + > + def tearDown(self): > + self.req.release() > + del self.req > + del self.sim > + > + def test_set_values_by_name(self): > + self.req.set_values( > + {"bar": Value.ACTIVE, "baz": Value.INACTIVE} > + ) > + > + self.assertEqual(self.sim.get_value(1), SimVal.INACTIVE) > + self.assertEqual(self.sim.get_value(3), SimVal.ACTIVE) > + > + def test_get_values_by_name(self): > + self.sim.set_pull(0, Pull.UP) > + self.sim.set_pull(2, Pull.DOWN) > + > + self.assertEqual( > + self.req.get_values(["foo", "xyz"]), > + [Value.INACTIVE, Value.ACTIVE], > + ) > + Add "baz" to the lines to get so this test fails as well - expected to be INACTIVE. Cheers, Kent. > + > class RepeatingLinesInRequestConfig(TestCase): > def setUp(self): > self.sim = gpiosim.Chip(num_lines=4, line_names={0: "foo", 2: "bar"}) > -- > 2.44.0 >
diff --git a/bindings/python/tests/tests_line_request.py b/bindings/python/tests/tests_line_request.py index f99b93d..c9a5c81 100644 --- a/bindings/python/tests/tests_line_request.py +++ b/bindings/python/tests/tests_line_request.py @@ -310,6 +310,40 @@ class LineRequestComplexConfig(TestCase): self.assertEqual(chip.get_line_info(3).edge_detection, Edge.BOTH) +class LineRequestComplexConfigByName(TestCase): + def setUp(self): + self.sim = gpiosim.Chip(num_lines=4, line_names={2: "foo", 3: "bar", 1: "baz", 0: "xyz"}) + self.req = gpiod.request_lines( + self.sim.dev_path, + { + ("baz", "bar"): gpiod.LineSettings(direction=Direction.OUTPUT), + ("foo", "xyz"): gpiod.LineSettings(direction=Direction.INPUT) + }, + ) + + def tearDown(self): + self.req.release() + del self.req + del self.sim + + def test_set_values_by_name(self): + self.req.set_values( + {"bar": Value.ACTIVE, "baz": Value.INACTIVE} + ) + + self.assertEqual(self.sim.get_value(1), SimVal.INACTIVE) + self.assertEqual(self.sim.get_value(3), SimVal.ACTIVE) + + def test_get_values_by_name(self): + self.sim.set_pull(0, Pull.UP) + self.sim.set_pull(2, Pull.DOWN) + + self.assertEqual( + self.req.get_values(["foo", "xyz"]), + [Value.INACTIVE, Value.ACTIVE], + ) + + class RepeatingLinesInRequestConfig(TestCase): def setUp(self): self.sim = gpiosim.Chip(num_lines=4, line_names={0: "foo", 2: "bar"})