|
1 | 1 | import pytest |
2 | 2 | import os |
| 3 | +import errno |
3 | 4 |
|
4 | 5 | import Adafruit_BBIO.GPIO as GPIO |
5 | 6 |
|
6 | 7 | def teardown_module(module): |
7 | 8 | GPIO.cleanup() |
8 | 9 |
|
9 | 10 | class TestLED: |
10 | | - def test_brightness_high(self): |
11 | | - GPIO.setup("USR0", GPIO.OUT) |
12 | | - GPIO.output("USR0", GPIO.HIGH) |
13 | | - value = open('/sys/class/leds/beaglebone:green:usr0/brightness').read() |
14 | | - assert int(value) > 0 |
| 11 | + def set_brightness(self, state, led, name): |
| 12 | + GPIO.setup(led, GPIO.OUT) |
| 13 | + GPIO.output(led, state) |
| 14 | + |
| 15 | + path = "/sys/class/leds/beaglebone:green:{0}/brightness".format(led.lower()) |
| 16 | + value = self.read_led_file(path) |
| 17 | + |
| 18 | + if value < 0: |
| 19 | + path = "/sys/class/leds/beaglebone:green:{0}/brightness".format(name) |
| 20 | + value = self.read_led_file(path) |
| 21 | + |
| 22 | + if state == 1: |
| 23 | + assert int(value) > 0 |
| 24 | + else: |
| 25 | + assert int(value) == 0 |
15 | 26 | GPIO.cleanup() |
16 | 27 |
|
| 28 | + def read_led_file(self, path): |
| 29 | + try: |
| 30 | + return open(path).read() |
| 31 | + except IOError, e: |
| 32 | + if e.errno == errno.ENOENT: |
| 33 | + return -1 |
| 34 | + |
| 35 | + def set_all_leds(self, state): |
| 36 | + test_leds = { "USR0": "heartbeat", \ |
| 37 | + "USR1": "mmc0", \ |
| 38 | + "USR2": "cpu0", \ |
| 39 | + "USR3": "mmc1" } |
| 40 | + for led, name in test_leds.iteritems(): |
| 41 | + self.set_brightness(state, led, name) |
| 42 | + GPIO.cleanup() |
| 43 | + |
| 44 | + def test_brightness_high(self): |
| 45 | + self.set_all_leds(GPIO.HIGH) |
| 46 | + |
17 | 47 | def test_brightness_low(self): |
18 | | - GPIO.setup("USR0", GPIO.OUT) |
19 | | - GPIO.output("USR0", GPIO.LOW) |
20 | | - value = open('/sys/class/leds/beaglebone:green:usr0/brightness').read() |
21 | | - assert int(value) == 0 |
22 | | - GPIO.cleanup() |
| 48 | + self.set_all_leds(GPIO.LOW) |
| 49 | + |
| 50 | + |
0 commit comments