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