]> Repositories - Adafruit_Blinka-hackapet.git/blob - tests/test_generic_agnostic_board_digitalio.py
Merge pull request #928 from UnicodeMan/main
[Adafruit_Blinka-hackapet.git] / tests / test_generic_agnostic_board_digitalio.py
1 # SPDX-FileCopyrightText: 2024 Brent Rubell for Adafruit Industries
2 #
3 # SPDX-License-Identifier: MIT
4 import pytest  # pylint: disable=unused-import
5 import board
6 import digitalio
7
8 # Digital output pins
9
10
11 def test_Dx_OUTPUT_TRUE():
12     """Test digital output pin functionality."""
13     assert board.board_id == "OS_AGNOSTIC_BOARD"
14     pin_out = digitalio.DigitalInOut(board.Dx_OUTPUT)
15     pin_out.direction = digitalio.Direction.OUTPUT
16     # Test setting the value and reading it back
17     pin_out.value = True
18     assert pin_out.value is True
19     pin_out.value = False
20     assert pin_out.value is True
21     pin_out.deinit()
22
23
24 # Digital Input Pins
25
26
27 def test_Dx_INPUT_TRUE():
28     """Test digital input pin Dx_INPUT_TRUE."""
29     assert board.board_id == "OS_AGNOSTIC_BOARD"
30     pin_true = digitalio.DigitalInOut(board.Dx_INPUT_TRUE)
31     pin_true.direction = digitalio.Direction.INPUT
32     assert pin_true.value is True
33     assert pin_true.value is True  # Test subsequent call does not change value
34     pin_true.deinit()
35
36
37 def test_Dx_INPUT_TRUE_PULL_DOWN():
38     """Test digital input pin Dx_INPUT_TRUE w/pull down."""
39     assert board.board_id == "OS_AGNOSTIC_BOARD"
40     pin_true = digitalio.DigitalInOut(board.Dx_INPUT_TRUE)
41     pin_true.direction = digitalio.Direction.INPUT
42     assert pin_true.value is True
43     assert pin_true.value is True  # Test subsequent call does not change value
44     pin_true.pull = digitalio.Pull.DOWN
45     assert pin_true.value is False
46     pin_true.deinit()
47
48
49 def test_Dx_INPUT_FALSE_PULL_UP():
50     """Test digital input pin Dx_INPUT_FALSE w/pull up."""
51     assert board.board_id == "OS_AGNOSTIC_BOARD"
52     pin_false = digitalio.DigitalInOut(board.Dx_INPUT_FALSE)
53     pin_false.direction = digitalio.Direction.INPUT
54     assert pin_false.value is False
55     assert pin_false.value is False  # Test subsequent call does not change value
56     pin_false.pull = digitalio.Pull.UP
57     assert pin_false.value is False
58     pin_false.deinit()
59
60
61 def test_Dx_INPUT_FALSE():
62     """Test digital input pin Dx_INPUT_FALSE"""
63     assert board.board_id == "OS_AGNOSTIC_BOARD"
64     pin_false = digitalio.DigitalInOut(board.Dx_INPUT_FALSE)
65     pin_false.direction = digitalio.Direction.INPUT
66     assert pin_false.value is False
67     assert pin_false.value is False  # Test subsequent call does not change value
68     pin_false.deinit()
69
70
71 def test_Dx_INPUT_TOGGLE():
72     """Test digital input pin Dx_INPUT_TOGGLE"""
73     assert board.board_id == "OS_AGNOSTIC_BOARD"
74     pin_toggle = digitalio.DigitalInOut(board.Dx_INPUT_TOGGLE)
75     pin_toggle.direction = digitalio.Direction.INPUT
76     assert pin_toggle.value is True
77     assert (
78         pin_toggle.value is False
79     )  # Test subsequent call does change value for this pin
80     pin_toggle.deinit()