"""
Test suite for lesson 7 and 8.
"""
import unittest
from lessons.lesson_7_and_8.main import (
value_to_color,
converter,
all_led_off
)
[docs]
class Lesson7And8TestCase(unittest.TestCase):
"""
Test case for lesson 7 and 8.
"""
[docs]
def test_all_led_off(self):
"""
Verify that all_led_off returns None.
:return:
"""
self.assertIsNone(all_led_off())
[docs]
def test_value_to_color_return_type(self):
"""
Return type should be string.
:return:
"""
expected = type("YELLOW")
test_val = 80
result = value_to_color(test_val)
t = type(result)
msg = f'expected: {expected}, results: {t}, test_val: {test_val}'
self.assertIsInstance(result, str, msg)
[docs]
def test_value_to_color_red_min(self):
"""
95 should correspond to red color.
:return:
"""
expected = "RED"
test_val = 95
result = value_to_color(test_val)
msg = f'expected: {expected}, results: {result}, test_val: {test_val}'
self.assertEqual(result, expected, msg)
[docs]
def test_value_to_color_red_max(self):
"""
100 should correspond to red color.
:return:
"""
expected = "RED"
test_val = 100
result = value_to_color(test_val)
msg = f'expected: {expected}, results: {result}, test_val: {test_val}'
self.assertEqual(result, expected, msg)
[docs]
def test_value_to_color_red_mid(self):
"""
97 should correspond to red color.
:return:
"""
expected = "RED"
test_val = 97
result = value_to_color(test_val)
msg = f'expected: {expected}, results: {result}, test_val: {test_val}'
self.assertEqual(result, expected, msg)
[docs]
def test_value_to_color_yellow_min(self):
"""
80 should correspond to yellow color.
:return:
"""
expected = "YELLOW"
test_val = 80
result = value_to_color(test_val)
msg = f'expected: {expected}, results: {result}, test_val: {test_val}'
self.assertEqual(result, expected, msg)
[docs]
def test_value_to_color_yellow_max(self):
"""
94 should correspond to yellow color.
:return:
"""
expected = "YELLOW"
test_val = 94
result = value_to_color(test_val)
msg = f'expected: {expected}, results: {result}, test_val: {test_val}'
self.assertEqual(result, expected, msg)
[docs]
def test_value_to_color_yellow_mid(self):
"""
87 should correspond to yellow color.
:return:
"""
expected = "YELLOW"
test_val = 87
result = value_to_color(test_val)
msg = f'expected: {expected}, results: {result}, test_val: {test_val}'
self.assertEqual(result, expected, msg)
[docs]
def test_value_to_color_green_min(self):
"""
Zero should correspond to green color.
:return:
"""
expected = "GREEN"
test_val = 0
result = value_to_color(test_val)
msg = f'expected: {expected}, results: {result}, test_val: {test_val}'
self.assertEqual(result, expected, msg)
[docs]
def test_value_to_color_green_max(self):
"""
79 should correspond to green color.
:return:
"""
expected = "GREEN"
test_val = 79
result = value_to_color(test_val)
msg = f'expected: {expected}, results: {result}, test_val: {test_val}'
self.assertEqual(result, expected, msg)
[docs]
def test_value_to_color_green_mid(self):
"""
40 should correspond to green color.
:return:
"""
expected = "GREEN"
test_val = 40
result = value_to_color(test_val)
msg = f'expected: {expected}, results: {result}, test_val: {test_val}'
self.assertEqual(result, expected, msg)
[docs]
def test_converter_max(self):
"""
Converter output should be 100 for read pin value 65535.
:return:
"""
read_value = 65535
val = converter(read_value)
expected = 100
msg = f"read_value: {read_value}, val{val}, expected: {expected}"
self.assertEqual(val, expected, msg)
[docs]
def test_converter_min(self):
"""
Converter output should be 0 for read pin value 0.
:return:
"""
read_value = 0
val = converter(read_value)
expected = 0
msg = f"read_value: {read_value}, val{val}, expected: {expected}"
self.assertEqual(val, expected, msg)
[docs]
def test_converter_mid_range_50(self):
"""
Converter output should be 50 for read pin value 32768.
:return:
"""
read_value = 32768
val = converter(read_value)
expected = 50
msg = f"read_value: {read_value}, val{val}, expected: {expected}"
self.assertEqual(val, expected, msg)
[docs]
def test_converter_mid_range_49(self):
"""
Converter output should be 49 for read pin value 32767.
:return:
"""
read_value = 32767
val = converter(read_value)
expected = 49
msg = f"read_value: {read_value}, val{val}, expected: {expected}"
self.assertEqual(val, expected, msg)
[docs]
def test_converter_return_type(self):
"""
Converter output type should be integer.
:return:
"""
read_value = 0
val = converter(read_value)
t = type(val)
expected = type(0)
msg = f"read_value: {read_value}, val{val}, t: {t}, expected: {expected}"
self.assertIsInstance(val, int, msg)
if __name__ == '__main__':
unittest.main()