- import digitalio
- from agnostic import time
- with digitalio.DigitalInOut(led_pin) as led:
- led.direction = digitalio.Direction.OUTPUT
- result = input("LED wired to {} (Y/n)?".format(led))
- if result.lower() != 'n':
- led.value = True
- time.sleep(0.1)
- led.value = False
- time.sleep(0.1)
- result = input("Blinked (Y/n)?")
- self.assertTrue(result.lower() != 'n')
+ """LED blinks when proper attributes set"""
+ print()
+ from agnostic import sleep
+ if not(led_hardwired) and not(yes_no("Is LED wired to {}".format(led_pin))):
+ return # test trivially passed
+ with DigitalInOut(led_pin) as led:
+ led.direction = Direction.OUTPUT
+ # should now be OUT, PUSH_PULL, value=0, and LED should light
+ led.value = False if led_inverted else True
+ self.assertTrue(yes_no("Is LED lit"))
+ print("Winking LED...")
+ for count in range(2):
+ led.value = not(led.value)
+ sleep(0.5)
+ led.value = not(led.value)
+ sleep(0.5)
+ self.assertTrue(yes_no("Did LED wink twice"))
+
+ def test_button_pull_up(self):
+ print()
+ """Pull-up button configured and detected"""
+ with DigitalInOut(default_pin) as button:
+ #button.direction = Direction.INPUT # implied
+ try:
+ button.pull = Pull.UP
+ except NotImplementedError as e:
+ print()
+ print(e)
+ return # test trivially passed
+ if yes_no("Is Button wired from {} to GND".format(default_pin)):
+ self.assertTrue(button.value == True)
+ self.assertTrue(await_true("button pressed", lambda: button.value == False))
+
+ def test_button_pull_down(self):
+ print()
+ """Pull-down button configured and detected"""
+ with DigitalInOut(default_pin) as button:
+ #button.direction = Direction.INPUT # implied
+ try:
+ button.pull = Pull.DOWN
+ except NotImplementedError as e:
+ print(e)
+ return # test trivially passed
+ if (yes_no("Is Button wired from {} to VCC".format(default_pin))):
+ self.assertTrue(button.value == False)
+ self.assertTrue(await_true("button pressed", lambda: button.value == True))
+