class ChipConstructor(TestCase):
- def test_open_existing_chip(self):
+ def test_open_existing_chip(self) -> None:
sim = gpiosim.Chip()
with gpiod.Chip(sim.dev_path):
pass
- def test_open_existing_chip_with_keyword(self):
+ def test_open_existing_chip_with_keyword(self) -> None:
sim = gpiosim.Chip()
with gpiod.Chip(path=sim.dev_path):
pass
- def test_open_chip_by_link(self):
+ def test_open_chip_by_link(self) -> None:
link = "/tmp/gpiod-py-test-link.{}".format(os.getpid())
sim = gpiosim.Chip()
with gpiod.Chip(link):
pass
- def test_open_nonexistent_chip(self):
+ def test_open_nonexistent_chip(self) -> None:
with self.assertRaises(OSError) as ex:
gpiod.Chip("/dev/nonexistent")
self.assertEqual(ex.exception.errno, errno.ENOENT)
- def test_open_not_a_character_device(self):
+ def test_open_not_a_character_device(self) -> None:
with self.assertRaises(OSError) as ex:
gpiod.Chip("/tmp")
self.assertEqual(ex.exception.errno, errno.ENOTTY)
- def test_open_not_a_gpio_device(self):
+ def test_open_not_a_gpio_device(self) -> None:
with self.assertRaises(OSError) as ex:
gpiod.Chip("/dev/null")
self.assertEqual(ex.exception.errno, errno.ENODEV)
- def test_missing_path(self):
+ def test_missing_path(self) -> None:
with self.assertRaises(TypeError):
gpiod.Chip()
- def test_invalid_type_for_path(self):
+ def test_invalid_type_for_path(self) -> None:
with self.assertRaises(TypeError):
gpiod.Chip(4)
class ChipBooleanConversion(TestCase):
- def test_chip_bool(self):
+ def test_chip_bool(self) -> None:
sim = gpiosim.Chip()
chip = gpiod.Chip(sim.dev_path)
self.assertTrue(chip)
class ChipProperties(TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.sim = gpiosim.Chip()
self.chip = gpiod.Chip(self.sim.dev_path)
- def tearDown(self):
+ def tearDown(self) -> None:
self.chip.close()
self.sim = None
- def test_get_chip_path(self):
+ def test_get_chip_path(self) -> None:
self.assertEqual(self.sim.dev_path, self.chip.path)
- def test_get_fd(self):
+ def test_get_fd(self) -> None:
self.assertGreaterEqual(self.chip.fd, 0)
- def test_properties_are_immutable(self):
+ def test_properties_are_immutable(self) -> None:
with self.assertRaises(AttributeError):
self.chip.path = "foobar"
class ChipDevPathFromLink(TestCase):
- def test_dev_path_open_by_link(self):
+ def test_dev_path_open_by_link(self) -> None:
sim = gpiosim.Chip()
link = "/tmp/gpiod-py-test-link.{}".format(os.getpid())
class ChipMapLine(TestCase):
- def test_lookup_by_name_good(self):
+ def test_lookup_by_name_good(self) -> None:
sim = gpiosim.Chip(
num_lines=8, line_names={1: "foo", 2: "bar", 4: "baz", 5: "xyz"}
)
with gpiod.Chip(sim.dev_path) as chip:
self.assertEqual(chip.line_offset_from_id("baz"), 4)
- def test_lookup_by_name_good_keyword_argument(self):
+ def test_lookup_by_name_good_keyword_argument(self) -> None:
sim = gpiosim.Chip(
num_lines=8, line_names={1: "foo", 2: "bar", 4: "baz", 5: "xyz"}
)
with gpiod.Chip(sim.dev_path) as chip:
self.assertEqual(chip.line_offset_from_id(id="baz"), 4)
- def test_lookup_bad_name(self):
+ def test_lookup_bad_name(self) -> None:
sim = gpiosim.Chip(
num_lines=8, line_names={1: "foo", 2: "bar", 4: "baz", 5: "xyz"}
)
with self.assertRaises(FileNotFoundError):
chip.line_offset_from_id("nonexistent")
- def test_lookup_bad_offset(self):
+ def test_lookup_bad_offset(self) -> None:
sim = gpiosim.Chip()
with gpiod.Chip(sim.dev_path) as chip:
with self.assertRaises(ValueError):
chip.line_offset_from_id(4)
- def test_lookup_bad_offset_as_string(self):
+ def test_lookup_bad_offset_as_string(self) -> None:
sim = gpiosim.Chip()
with gpiod.Chip(sim.dev_path) as chip:
with self.assertRaises(ValueError):
chip.line_offset_from_id("4")
- def test_duplicate_names(self):
+ def test_duplicate_names(self) -> None:
sim = gpiosim.Chip(
num_lines=8, line_names={1: "foo", 2: "bar", 4: "baz", 5: "bar"}
)
with gpiod.Chip(sim.dev_path) as chip:
self.assertEqual(chip.line_offset_from_id("bar"), 2)
- def test_integer_offsets(self):
+ def test_integer_offsets(self) -> None:
sim = gpiosim.Chip(num_lines=8, line_names={1: "foo", 2: "bar", 6: "baz"})
with gpiod.Chip(sim.dev_path) as chip:
self.assertEqual(chip.line_offset_from_id(4), 4)
self.assertEqual(chip.line_offset_from_id(1), 1)
- def test_offsets_as_string(self):
+ def test_offsets_as_string(self) -> None:
sim = gpiosim.Chip(num_lines=8, line_names={1: "foo", 2: "bar", 7: "6"})
with gpiod.Chip(sim.dev_path) as chip:
class ClosedChipCannotBeUsed(TestCase):
- def test_close_chip_and_try_to_use_it(self):
+ def test_close_chip_and_try_to_use_it(self) -> None:
sim = gpiosim.Chip(label="foobar")
chip = gpiod.Chip(sim.dev_path)
with self.assertRaises(gpiod.ChipClosedError):
chip.path
- def test_close_chip_and_try_controlled_execution(self):
+ def test_close_chip_and_try_controlled_execution(self) -> None:
sim = gpiosim.Chip()
chip = gpiod.Chip(sim.dev_path)
with chip:
chip.fd
- def test_close_chip_twice(self):
+ def test_close_chip_twice(self) -> None:
sim = gpiosim.Chip(label="foobar")
chip = gpiod.Chip(sim.dev_path)
chip.close()
class StringRepresentation(TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.sim = gpiosim.Chip(num_lines=4, label="foobar")
self.chip = gpiod.Chip(self.sim.dev_path)
- def tearDown(self):
+ def tearDown(self) -> None:
self.chip.close()
self.sim = None
- def test_repr(self):
+ def test_repr(self) -> None:
self.assertEqual(repr(self.chip), 'gpiod.Chip("{}")'.format(self.sim.dev_path))
cmp = eval(repr(self.chip))
self.assertEqual(self.chip.path, cmp.path)
- def test_str(self):
+ def test_str(self) -> None:
info = self.chip.get_info()
self.assertEqual(
str(self.chip),
class StringRepresentationClosed(TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.sim = gpiosim.Chip(num_lines=4, label="foobar")
self.chip = gpiod.Chip(self.sim.dev_path)
- def tearDown(self):
+ def tearDown(self) -> None:
self.sim = None
- def test_repr_closed(self):
+ def test_repr_closed(self) -> None:
self.chip.close()
self.assertEqual(repr(self.chip), "<Chip CLOSED>")
- def test_str_closed(self):
+ def test_str_closed(self) -> None:
self.chip.close()
self.assertEqual(str(self.chip), "<Chip CLOSED>")
class ChipLineRequestsBehaveCorrectlyWithInvalidArguments(TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.sim = gpiosim.Chip(num_lines=8)
self.chip = gpiod.Chip(self.sim.dev_path)
- def tearDown(self):
+ def tearDown(self) -> None:
self.chip.close()
del self.chip
del self.sim
- def test_passing_invalid_types_as_configs(self):
+ def test_passing_invalid_types_as_configs(self) -> None:
with self.assertRaises(AttributeError):
self.chip.request_lines("foobar")
with self.assertRaises(AttributeError):
self.chip.request_lines(None, "foobar")
- def test_offset_out_of_range(self):
+ def test_offset_out_of_range(self) -> None:
with self.assertRaises(ValueError):
self.chip.request_lines(config={(1, 0, 4, 8): None})
- def test_line_name_not_found(self):
+ def test_line_name_not_found(self) -> None:
with self.assertRaises(FileNotFoundError):
self.chip.request_lines(config={"foo": None})
- def test_request_no_arguments(self):
+ def test_request_no_arguments(self) -> None:
with self.assertRaises(TypeError):
self.chip.request_lines()
class ModuleLineRequestsBehaveCorrectlyWithInvalidArguments(TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.sim = gpiosim.Chip(num_lines=8)
- def tearDown(self):
+ def tearDown(self) -> None:
del self.sim
- def test_passing_invalid_types_as_configs(self):
+ def test_passing_invalid_types_as_configs(self) -> None:
with self.assertRaises(AttributeError):
gpiod.request_lines(self.sim.dev_path, "foobar")
with self.assertRaises(AttributeError):
gpiod.request_lines(self.sim.dev_path, None, "foobar")
- def test_offset_out_of_range(self):
+ def test_offset_out_of_range(self) -> None:
with self.assertRaises(ValueError):
gpiod.request_lines(self.sim.dev_path, config={(1, 0, 4, 8): None})
- def test_line_name_not_found(self):
+ def test_line_name_not_found(self) -> None:
with self.assertRaises(FileNotFoundError):
gpiod.request_lines(self.sim.dev_path, config={"foo": None})
- def test_request_no_arguments(self):
+ def test_request_no_arguments(self) -> None:
with self.assertRaises(TypeError):
gpiod.request_lines()
class ChipLineRequestWorks(TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.sim = gpiosim.Chip(num_lines=8, line_names={5: "foo", 7: "bar"})
self.chip = gpiod.Chip(self.sim.dev_path)
- def tearDown(self):
+ def tearDown(self) -> None:
self.chip.close()
del self.chip
del self.sim
- def test_request_with_positional_arguments(self):
+ def test_request_with_positional_arguments(self) -> None:
with self.chip.request_lines({(0, 5, 3, 1): None}, "foobar", 32) as req:
self.assertEqual(req.offsets, [0, 5, 3, 1])
self.assertEqual(self.chip.get_line_info(0).consumer, "foobar")
- def test_request_with_keyword_arguments(self):
+ def test_request_with_keyword_arguments(self) -> None:
with self.chip.request_lines(
config={(0, 5, 6): None},
consumer="foobar",
self.assertEqual(req.offsets, [0, 5, 6])
self.assertEqual(self.chip.get_line_info(0).consumer, "foobar")
- def test_request_single_offset_as_int(self):
+ def test_request_single_offset_as_int(self) -> None:
with self.chip.request_lines(config={4: None}) as req:
self.assertEqual(req.offsets, [4])
- def test_request_single_offset_as_tuple(self):
+ def test_request_single_offset_as_tuple(self) -> None:
with self.chip.request_lines(config={(4): None}) as req:
self.assertEqual(req.offsets, [4])
- def test_request_by_name(self):
+ def test_request_by_name(self) -> None:
with self.chip.request_lines(config={(1, 2, "foo", "bar"): None}) as req:
self.assertEqual(req.offsets, [1, 2, 5, 7])
- def test_request_single_line_by_name(self):
+ def test_request_single_line_by_name(self) -> None:
with self.chip.request_lines(config={"foo": None}) as req:
self.assertEqual(req.offsets, [5])
class ModuleLineRequestWorks(TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.sim = gpiosim.Chip(num_lines=8, line_names={5: "foo", 7: "bar"})
- def tearDown(self):
+ def tearDown(self) -> None:
del self.sim
- def test_request_with_positional_arguments(self):
+ def test_request_with_positional_arguments(self) -> None:
with gpiod.request_lines(
self.sim.dev_path, {(0, 5, 3, 1): None}, "foobar", 32
) as req:
with gpiod.Chip(self.sim.dev_path) as chip:
self.assertEqual(chip.get_line_info(5).consumer, "foobar")
- def test_request_with_keyword_arguments(self):
+ def test_request_with_keyword_arguments(self) -> None:
with gpiod.request_lines(
path=self.sim.dev_path,
config={(0, 5, 6): None},
with gpiod.Chip(self.sim.dev_path) as chip:
self.assertEqual(chip.get_line_info(5).consumer, "foobar")
- def test_request_single_offset_as_int(self):
+ def test_request_single_offset_as_int(self) -> None:
with gpiod.request_lines(path=self.sim.dev_path, config={4: None}) as req:
self.assertEqual(req.offsets, [4])
- def test_request_single_offset_as_tuple(self):
+ def test_request_single_offset_as_tuple(self) -> None:
with gpiod.request_lines(path=self.sim.dev_path, config={(4): None}) as req:
self.assertEqual(req.offsets, [4])
- def test_request_by_name(self):
+ def test_request_by_name(self) -> None:
with gpiod.request_lines(
self.sim.dev_path, {(1, 2, "foo", "bar"): None}
) as req:
class LineRequestGettingValues(TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.sim = gpiosim.Chip(num_lines=8)
self.req = gpiod.request_lines(
self.sim.dev_path,
{(0, 1, 2, 3): gpiod.LineSettings(direction=Direction.INPUT)},
)
- def tearDown(self):
+ def tearDown(self) -> None:
self.req.release()
del self.req
del self.sim
- def test_get_single_value(self):
+ def test_get_single_value(self) -> None:
self.sim.set_pull(1, Pull.UP)
self.assertEqual(self.req.get_values([1]), [Value.ACTIVE])
- def test_get_single_value_helper(self):
+ def test_get_single_value_helper(self) -> None:
self.sim.set_pull(1, Pull.UP)
self.assertEqual(self.req.get_value(1), Value.ACTIVE)
- def test_get_values_for_subset_of_lines(self):
+ def test_get_values_for_subset_of_lines(self) -> None:
self.sim.set_pull(0, Pull.UP)
self.sim.set_pull(1, Pull.DOWN)
self.sim.set_pull(3, Pull.UP)
self.req.get_values([0, 1, 3]), [Value.ACTIVE, Value.INACTIVE, Value.ACTIVE]
)
- def test_get_all_values(self):
+ def test_get_all_values(self) -> None:
self.sim.set_pull(0, Pull.DOWN)
self.sim.set_pull(1, Pull.UP)
self.sim.set_pull(2, Pull.UP)
[Value.INACTIVE, Value.ACTIVE, Value.ACTIVE, Value.ACTIVE],
)
- def test_get_values_invalid_offset(self):
+ def test_get_values_invalid_offset(self) -> None:
with self.assertRaises(ValueError):
self.req.get_values([9])
- def test_get_values_invalid_argument_type(self):
+ def test_get_values_invalid_argument_type(self) -> None:
with self.assertRaises(TypeError):
self.req.get_values(True)
class LineRequestGettingValuesByName(TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.sim = gpiosim.Chip(num_lines=4, line_names={2: "foo", 3: "bar", 1: "baz"})
self.req = gpiod.request_lines(
self.sim.dev_path,
{(0, "baz", "bar", "foo"): gpiod.LineSettings(direction=Direction.INPUT)},
)
- def tearDown(self):
+ def tearDown(self) -> None:
self.req.release()
del self.req
del self.sim
- def test_get_values_by_name(self):
+ def test_get_values_by_name(self) -> None:
self.sim.set_pull(1, Pull.UP)
self.sim.set_pull(2, Pull.DOWN)
self.sim.set_pull(3, Pull.UP)
[Value.INACTIVE, Value.ACTIVE, Value.ACTIVE],
)
- def test_get_values_by_bad_name(self):
+ def test_get_values_by_bad_name(self) -> None:
with self.assertRaises(ValueError):
self.req.get_values(["xyz"])
class LineRequestSettingValues(TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.sim = gpiosim.Chip(num_lines=8)
self.req = gpiod.request_lines(
self.sim.dev_path,
{(0, 1, 2, 3): gpiod.LineSettings(direction=Direction.OUTPUT)},
)
- def tearDown(self):
+ def tearDown(self) -> None:
self.req.release()
del self.req
del self.sim
- def test_set_single_value(self):
+ def test_set_single_value(self) -> None:
self.req.set_values({1: Value.ACTIVE})
self.assertEqual(self.sim.get_value(1), SimVal.ACTIVE)
- def test_set_single_value_helper(self):
+ def test_set_single_value_helper(self) -> None:
self.req.set_value(1, Value.ACTIVE)
self.assertEqual(self.sim.get_value(1), SimVal.ACTIVE)
- def test_set_values_for_subset_of_lines(self):
+ def test_set_values_for_subset_of_lines(self) -> None:
self.req.set_values({0: Value.ACTIVE, 1: Value.INACTIVE, 3: Value.ACTIVE})
self.assertEqual(self.sim.get_value(0), SimVal.ACTIVE)
self.assertEqual(self.sim.get_value(1), SimVal.INACTIVE)
self.assertEqual(self.sim.get_value(3), SimVal.ACTIVE)
- def test_set_values_invalid_offset(self):
+ def test_set_values_invalid_offset(self) -> None:
with self.assertRaises(ValueError):
self.req.set_values({9: Value.ACTIVE})
class LineRequestSettingValuesByName(TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.sim = gpiosim.Chip(num_lines=4, line_names={2: "foo", 3: "bar", 1: "baz"})
self.req = gpiod.request_lines(
self.sim.dev_path,
{(0, "baz", "bar", "foo"): gpiod.LineSettings(direction=Direction.OUTPUT)},
)
- def tearDown(self):
+ def tearDown(self) -> None:
self.req.release()
del self.req
del self.sim
- def test_set_values_by_name(self):
+ def test_set_values_by_name(self) -> None:
self.req.set_values(
{"foo": Value.INACTIVE, "bar": Value.ACTIVE, 1: Value.ACTIVE}
)
self.assertEqual(self.sim.get_value(1), SimVal.ACTIVE)
self.assertEqual(self.sim.get_value(3), SimVal.ACTIVE)
- def test_set_values_by_bad_name(self):
+ def test_set_values_by_bad_name(self) -> None:
with self.assertRaises(ValueError):
self.req.set_values({"xyz": Value.ACTIVE})
class LineRequestComplexConfig(TestCase):
- def test_complex_config(self):
+ def test_complex_config(self) -> None:
sim = gpiosim.Chip(num_lines=8)
with gpiod.Chip(sim.dev_path) as chip:
class LineRequestMixedConfigByName(TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.sim = gpiosim.Chip(
num_lines=4, line_names={2: "foo", 3: "bar", 1: "baz", 0: "xyz"}
)
},
)
- def tearDown(self):
+ def tearDown(self) -> None:
self.req.release()
del self.req
del self.sim
- def test_set_values_by_name(self):
+ def test_set_values_by_name(self) -> None:
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):
+ def test_get_values_by_name(self) -> None:
self.sim.set_pull(0, Pull.UP)
self.sim.set_pull(2, Pull.DOWN)
class RepeatingLinesInRequestConfig(TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.sim = gpiosim.Chip(num_lines=4, line_names={0: "foo", 2: "bar"})
self.chip = gpiod.Chip(self.sim.dev_path)
- def tearDown(self):
+ def tearDown(self) -> None:
self.chip.close()
del self.chip
del self.sim
- def test_offsets_repeating_within_the_same_tuple(self):
+ def test_offsets_repeating_within_the_same_tuple(self) -> None:
with self.assertRaises(ValueError):
self.chip.request_lines({(0, 1, 2, 1): None})
- def test_offsets_repeating_in_different_tuples(self):
+ def test_offsets_repeating_in_different_tuples(self) -> None:
with self.assertRaises(ValueError):
self.chip.request_lines({(0, 1, 2): None, (3, 4, 0): None})
- def test_offset_and_name_conflict_in_the_same_tuple(self):
+ def test_offset_and_name_conflict_in_the_same_tuple(self) -> None:
with self.assertRaises(ValueError):
self.chip.request_lines({(2, "bar"): None})
- def test_offset_and_name_conflict_in_different_tuples(self):
+ def test_offset_and_name_conflict_in_different_tuples(self) -> None:
with self.assertRaises(ValueError):
self.chip.request_lines({(0, 1, 2): None, (4, 5, "bar"): None})
class LineRequestPropertiesWork(TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.sim = gpiosim.Chip(num_lines=16, line_names={0: "foo", 2: "bar", 5: "baz"})
- def tearDown(self):
+ def tearDown(self) -> None:
del self.sim
- def test_property_fd(self):
+ def test_property_fd(self) -> None:
with gpiod.request_lines(
self.sim.dev_path,
config={
) as req:
self.assertGreaterEqual(req.fd, 0)
- def test_property_num_lines(self):
+ def test_property_num_lines(self) -> None:
with gpiod.request_lines(
self.sim.dev_path, config={(0, 2, 3, 5, 6, 8, 12): None}
) as req:
self.assertEqual(req.num_lines, 7)
- def test_property_offsets(self):
+ def test_property_offsets(self) -> None:
with gpiod.request_lines(
self.sim.dev_path, config={(1, 6, 12, 4): None}
) as req:
self.assertEqual(req.offsets, [1, 6, 12, 4])
- def test_property_lines(self):
+ def test_property_lines(self) -> None:
with gpiod.request_lines(
self.sim.dev_path, config={("foo", 1, "bar", 4, "baz"): None}
) as req:
class LineRequestConsumerString(TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.sim = gpiosim.Chip(num_lines=4)
self.chip = gpiod.Chip(self.sim.dev_path)
- def tearDown(self):
+ def tearDown(self) -> None:
self.chip.close()
del self.chip
del self.sim
- def test_custom_consumer(self):
+ def test_custom_consumer(self) -> None:
with self.chip.request_lines(
consumer="foobar", config={(2, 3): None}
) as request:
info = self.chip.get_line_info(2)
self.assertEqual(info.consumer, "foobar")
- def test_empty_consumer(self):
+ def test_empty_consumer(self) -> None:
with self.chip.request_lines(consumer="", config={(2, 3): None}) as request:
info = self.chip.get_line_info(2)
self.assertEqual(info.consumer, "?")
- def test_default_consumer(self):
+ def test_default_consumer(self) -> None:
with self.chip.request_lines(config={(2, 3): None}) as request:
info = self.chip.get_line_info(2)
self.assertEqual(info.consumer, "?")
class LineRequestSetOutputValues(TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.sim = gpiosim.Chip(
num_lines=4, line_names={0: "foo", 1: "bar", 2: "baz", 3: "xyz"}
)
- def tearDown(self):
+ def tearDown(self) -> None:
del self.sim
- def test_request_with_globally_set_output_values(self):
+ def test_request_with_globally_set_output_values(self) -> None:
with gpiod.request_lines(
self.sim.dev_path,
config={(0, 1, 2, 3): gpiod.LineSettings(direction=Direction.OUTPUT)},
self.assertEqual(self.sim.get_value(2), SimVal.ACTIVE)
self.assertEqual(self.sim.get_value(3), SimVal.INACTIVE)
- def test_request_with_globally_set_output_values_with_mapping(self):
+ def test_request_with_globally_set_output_values_with_mapping(self) -> None:
with gpiod.request_lines(
self.sim.dev_path,
config={(0, 1, 2, 3): gpiod.LineSettings(direction=Direction.OUTPUT)},
self.assertEqual(self.sim.get_value(2), SimVal.ACTIVE)
self.assertEqual(self.sim.get_value(3), SimVal.INACTIVE)
- def test_request_with_globally_set_output_values_bad_mapping(self):
+ def test_request_with_globally_set_output_values_bad_mapping(self) -> None:
with self.assertRaises(FileNotFoundError):
with gpiod.request_lines(
self.sim.dev_path,
) as request:
pass
- def test_request_with_globally_set_output_values_bad_offset(self):
+ def test_request_with_globally_set_output_values_bad_offset(self) -> None:
with self.assertRaises(ValueError):
with gpiod.request_lines(
self.sim.dev_path,
class ReconfigureRequestedLines(TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.sim = gpiosim.Chip(num_lines=8, line_names={3: "foo", 4: "bar", 6: "baz"})
self.chip = gpiod.Chip(self.sim.dev_path)
self.req = self.chip.request_lines(
}
)
- def tearDown(self):
+ def tearDown(self) -> None:
self.chip.close()
del self.chip
self.req.release()
del self.req
del self.sim
- def test_reconfigure_by_offsets(self):
+ def test_reconfigure_by_offsets(self) -> None:
info = self.chip.get_line_info(2)
self.assertEqual(info.direction, Direction.OUTPUT)
self.req.reconfigure_lines(
info = self.chip.get_line_info(2)
self.assertEqual(info.direction, Direction.INPUT)
- def test_reconfigure_by_names(self):
+ def test_reconfigure_by_names(self) -> None:
info = self.chip.get_line_info(2)
self.assertEqual(info.direction, Direction.OUTPUT)
self.req.reconfigure_lines(
info = self.chip.get_line_info(2)
self.assertEqual(info.direction, Direction.INPUT)
- def test_reconfigure_by_misordered_offsets(self):
+ def test_reconfigure_by_misordered_offsets(self) -> None:
info = self.chip.get_line_info(2)
self.assertEqual(info.direction, Direction.OUTPUT)
self.req.reconfigure_lines(
info = self.chip.get_line_info(2)
self.assertEqual(info.direction, Direction.INPUT)
- def test_reconfigure_by_misordered_names(self):
+ def test_reconfigure_by_misordered_names(self) -> None:
info = self.chip.get_line_info(2)
self.assertEqual(info.direction, Direction.OUTPUT)
self.req.reconfigure_lines(
info = self.chip.get_line_info(2)
self.assertEqual(info.direction, Direction.INPUT)
- def test_reconfigure_with_default(self):
+ def test_reconfigure_with_default(self) -> None:
info = self.chip.get_line_info(2)
self.assertEqual(info.direction, Direction.OUTPUT)
self.assertTrue(info.active_low)
self.assertTrue(info.active_low)
self.assertEqual(info.drive, Drive.OPEN_DRAIN)
- def test_reconfigure_missing_offsets(self):
+ def test_reconfigure_missing_offsets(self) -> None:
info = self.chip.get_line_info(2)
self.assertEqual(info.direction, Direction.OUTPUT)
self.assertTrue(info.active_low)
self.assertTrue(info.active_low)
self.assertEqual(info.drive, Drive.OPEN_DRAIN)
- def test_reconfigure_extra_offsets(self):
+ def test_reconfigure_extra_offsets(self) -> None:
info = self.chip.get_line_info(2)
self.assertEqual(info.direction, Direction.OUTPUT)
self.req.reconfigure_lines(
class ReleasedLineRequestCannotBeUsed(TestCase):
- def test_using_released_line_request(self):
+ def test_using_released_line_request(self) -> None:
sim = gpiosim.Chip()
with gpiod.Chip(sim.dev_path) as chip:
class LineRequestSurvivesParentChip(TestCase):
- def test_line_request_survives_parent_chip(self):
+ def test_line_request_survives_parent_chip(self) -> None:
sim = gpiosim.Chip()
chip = gpiod.Chip(sim.dev_path)
class LineRequestStringRepresentation(TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.sim = gpiosim.Chip(num_lines=8)
- def tearDown(self):
+ def tearDown(self) -> None:
del self.sim
- def test_str(self):
+ def test_str(self) -> None:
with gpiod.Chip(self.sim.dev_path) as chip:
with chip.request_lines(config={(2, 6, 4, 1): None}) as req:
self.assertEqual(
),
)
- def test_str_released(self):
+ def test_str_released(self) -> None:
req = gpiod.request_lines(self.sim.dev_path, config={(2, 6, 4, 1): None})
req.release()
self.assertEqual(str(req), "<LineRequest RELEASED>")