]> Repositories - Adafruit_Blinka-hackapet.git/blob - examples/generic_dio.py
pylinten
[Adafruit_Blinka-hackapet.git] / examples / generic_dio.py
1 # SPDX-FileCopyrightText: 2024 Brent Rubell for Adafruit Industries
2 #
3 # SPDX-License-Identifier: MIT
4 import pytest
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 == "GENERIC_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 == True
19     pin_out.value = False
20     assert pin_out.value == 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 == "GENERIC_AGNOSTIC_BOARD"
30     pin_true = digitalio.DigitalInOut(board.Dx_INPUT_TRUE)
31     pin_true.direction = digitalio.Direction.INPUT
32     assert pin_true.value == True
33     assert pin_true.value == 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 == "GENERIC_AGNOSTIC_BOARD"
40     pin_true = digitalio.DigitalInOut(board.Dx_INPUT_TRUE)
41     pin_true.direction = digitalio.Direction.INPUT
42     assert pin_true.value == True
43     assert pin_true.value == True  # Test subsequent call does not change value
44     pin_true.pull = digitalio.Pull.DOWN
45     assert pin_true.value == 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 == "GENERIC_AGNOSTIC_BOARD"
52     pin_false = digitalio.DigitalInOut(board.Dx_INPUT_FALSE)
53     pin_false.direction = digitalio.Direction.INPUT
54     assert pin_false.value == False
55     assert pin_false.value == False  # Test subsequent call does not change value
56     pin_false.pull = digitalio.Pull.UP
57     assert pin_false.value == 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 == "GENERIC_AGNOSTIC_BOARD"
64     pin_false = digitalio.DigitalInOut(board.Dx_INPUT_FALSE)
65     pin_false.direction = digitalio.Direction.INPUT
66     assert pin_false.value == False
67     assert pin_false.value == 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 == "GENERIC_AGNOSTIC_BOARD"
74     pin_toggle = digitalio.DigitalInOut(board.Dx_INPUT_TOGGLE)
75     pin_toggle.direction = digitalio.Direction.INPUT
76     assert pin_toggle.value == True
77     assert (
78         pin_toggle.value == False
79     )  # Test subsequent call does change value for this pin
80     pin_toggle.deinit()