Skip to content

Commit 0808d3e

Browse files
authored
Merge pull request #27 from adafruit/linting
Added pylint check for tests, linted tests directory
2 parents 68cdae0 + e5ffe5d commit 0808d3e

File tree

2 files changed

+67
-57
lines changed

2 files changed

+67
-57
lines changed

.pre-commit-config.yaml

+9-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ repos:
2323
- id: pylint
2424
name: pylint (library code)
2525
types: [python]
26-
exclude: "^(docs/|examples/|setup.py$)"
26+
exclude: "^(docs/|tests/|examples/|setup.py$)"
2727
- repo: local
2828
hooks:
2929
- id: pylint_examples
@@ -32,3 +32,11 @@ repos:
3232
entry: /usr/bin/env bash -c
3333
args: ['([[ ! -d "examples" ]] || for example in $(find . -path "./examples/*.py"); do pylint --disable=missing-docstring,invalid-name $example; done)']
3434
language: system
35+
- repo: local
36+
hooks:
37+
- id: pylint_tests
38+
name: pylint (tests code)
39+
description: Run pylint rules on "tests/*.py" files
40+
entry: /usr/bin/env bash -c
41+
args: ['([[ ! -d "tests" ]] || for test in $(find . -path "./tests/*.py"); do pylint --disable=missing-docstring $test; done)']
42+
language: system

tests/tests.py

+58-56
Original file line numberDiff line numberDiff line change
@@ -24,100 +24,102 @@ def _false():
2424
return False
2525

2626

27-
def assertEqual(a, b):
28-
assert a == b, "Want %r, got %r" % (a, b)
27+
def assertEqual(var_a, var_b): # pylint: disable=invalid-name
28+
assert var_a == var_b, "Want %r, got %r" % (var_a, var_b)
2929

3030

3131
def test_back_and_forth():
3232
# Start false
33-
db = adafruit_debouncer.Debouncer(_false)
34-
assertEqual(db.value, False)
33+
debouncer = adafruit_debouncer.Debouncer(_false)
34+
assertEqual(debouncer.value, False)
3535

3636
# Set the raw state to true, update, and make sure the debounced
3737
# state has not changed yet:
38-
db.function = _true
39-
db.update()
40-
assertEqual(db.value, False)
41-
assert not db.last_duration, "There was no previous interval??"
38+
debouncer.function = _true
39+
debouncer.update()
40+
assertEqual(debouncer.value, False)
41+
assert not debouncer.last_duration, "There was no previous interval??"
4242

4343
# Sleep longer than the debounce interval, so state can change:
4444
time.sleep(0.02)
45-
db.update()
46-
assert db.last_duration # is actually duration between powerup and now
47-
assertEqual(db.value, True)
48-
assertEqual(db.rose, True)
49-
assertEqual(db.fell, False)
45+
debouncer.update()
46+
assert debouncer.last_duration # is actually duration between powerup and now
47+
assertEqual(debouncer.value, True)
48+
assertEqual(debouncer.rose, True)
49+
assertEqual(debouncer.fell, False)
5050
# Duration since last change has only been long enough to run these
5151
# asserts, which should be well under 1/10 second
52-
assert db.current_duration < 0.1, "Unit error? %d" % db.current_duration
52+
assert debouncer.current_duration < 0.1, (
53+
"Unit error? %d" % debouncer.current_duration
54+
)
5355

5456
# Set raw state back to false, make sure it's not instantly reflected,
5557
# then wait and make sure it IS reflected after the interval has passed.
56-
db.function = _false
57-
db.update()
58-
assertEqual(db.value, True)
59-
assertEqual(db.fell, False)
60-
assertEqual(db.rose, False)
58+
debouncer.function = _false
59+
debouncer.update()
60+
assertEqual(debouncer.value, True)
61+
assertEqual(debouncer.fell, False)
62+
assertEqual(debouncer.rose, False)
6163
time.sleep(0.02)
62-
assert 0.019 < db.current_duration <= 1, (
63-
"Unit error? sleep .02 -> duration %d" % db.current_duration
64+
assert 0.019 < debouncer.current_duration <= 1, (
65+
"Unit error? sleep .02 -> duration %d" % debouncer.current_duration
6466
)
65-
db.update()
66-
assertEqual(db.value, False)
67-
assertEqual(db.rose, False)
68-
assertEqual(db.fell, True)
67+
debouncer.update()
68+
assertEqual(debouncer.value, False)
69+
assertEqual(debouncer.rose, False)
70+
assertEqual(debouncer.fell, True)
6971

70-
assert 0 < db.current_duration <= 0.1, (
71-
"Unit error? time to run asserts %d" % db.current_duration
72+
assert 0 < debouncer.current_duration <= 0.1, (
73+
"Unit error? time to run asserts %d" % debouncer.current_duration
7274
)
73-
assert 0 < db.last_duration < 0.1, (
74-
"Unit error? Last dur should be ~.02, is %d" % db.last_duration
75+
assert 0 < debouncer.last_duration < 0.1, (
76+
"Unit error? Last dur should be ~.02, is %d" % debouncer.last_duration
7577
)
7678

7779

7880
def test_interval_is_the_same():
79-
db = adafruit_debouncer.Debouncer(_false, interval=0.25)
80-
assertEqual(db.value, False)
81-
db.update()
82-
db.function = _true
83-
db.update()
81+
debouncer = adafruit_debouncer.Debouncer(_false, interval=0.25)
82+
assertEqual(debouncer.value, False)
83+
debouncer.update()
84+
debouncer.function = _true
85+
debouncer.update()
8486

8587
time.sleep(0.1) # longer than default interval
86-
db.update()
87-
assertEqual(db.value, False)
88+
debouncer.update()
89+
assertEqual(debouncer.value, False)
8890

8991
time.sleep(0.2) # 0.1 + 0.2 > 0.25
90-
db.update()
91-
assertEqual(db.value, True)
92-
assertEqual(db.rose, True)
93-
assertEqual(db.interval, 0.25)
92+
debouncer.update()
93+
assertEqual(debouncer.value, True)
94+
assertEqual(debouncer.rose, True)
95+
assertEqual(debouncer.interval, 0.25)
9496

9597

9698
def test_setting_interval():
9799
# Check that setting the interval does change the time the debouncer waits
98-
db = adafruit_debouncer.Debouncer(_false, interval=0.01)
99-
db.update()
100+
debouncer = adafruit_debouncer.Debouncer(_false, interval=0.01)
101+
debouncer.update()
100102

101103
# set the interval to a longer time, sleep for a time between
102104
# the two interval settings, and assert that the value hasn't changed.
103105

104-
db.function = _true
105-
db.interval = 0.2
106-
db.update()
107-
assert db.interval - 0.2 < 0.00001, "interval is not consistent"
106+
debouncer.function = _true
107+
debouncer.interval = 0.2
108+
debouncer.update()
109+
assert debouncer.interval - 0.2 < 0.00001, "interval is not consistent"
108110
time.sleep(0.11)
109-
db.update()
111+
debouncer.update()
110112

111-
assertEqual(db.value, False)
112-
assertEqual(db.rose, False)
113-
assertEqual(db.fell, False)
113+
assertEqual(debouncer.value, False)
114+
assertEqual(debouncer.rose, False)
115+
assertEqual(debouncer.fell, False)
114116

115117
# and then once the whole time has passed make sure it did change
116118
time.sleep(0.11)
117-
db.update()
118-
assertEqual(db.value, True)
119-
assertEqual(db.rose, True)
120-
assertEqual(db.fell, False)
119+
debouncer.update()
120+
assertEqual(debouncer.value, True)
121+
assertEqual(debouncer.rose, True)
122+
assertEqual(debouncer.fell, False)
121123

122124

123125
def run():
@@ -131,8 +133,8 @@ def run():
131133
test()
132134
print("PASS")
133135
passes += 1
134-
except Exception as e:
135-
sys.print_exception(e)
136+
except Exception as err: # pylint: disable=broad-except
137+
sys.print_exception(err) # pylint: disable=no-member
136138
print("FAIL")
137139
fails += 1
138140

0 commit comments

Comments
 (0)