def test_can_set_via_color_tuple(self): color = (128, 128, 128) s = LightSettings() s.set_color(color) self.assertEquals(s.red, 128) self.assertEquals(s.blue, 128) self.assertEquals(s.green, 128)
def test_can_dim_lights_uniformly(self): color = (100, 100, 100) s = LightSettings() s.set_color(color) s.dim(75) self.assertEquals(s.red, 75) self.assertEquals(s.green, 75) self.assertEquals(s.blue, 75)
def test_can_transition_one_way(self): raspi = RasPi(self.mockconfig) settings = LightSettings(red=0, green=0, blue=0) settings2 = LightSettings(red=255, green=255, blue=255) settings.next_settings = settings2 settings.on_duration = 0.015 settings2.transition_time = 0.015 raspi.apply_settings(settings) for led in raspi.leds: self.assertEquals(0, raspi.get_PWM_dutycycle(led)) gevent.sleep(0.07) for led in raspi.leds: self.assertEquals(255, raspi.get_PWM_dutycycle(led))
def test_can_load_from_json(self): d = {'red': 10, 'blue': 20, 'green': 30, 'on_duration': 1} json_str = json.dumps(d) s = LightSettings.from_json(json_str) self.assertTrue(s is not None) self.assertEquals(s.red, 10) self.assertEquals(s.blue, 20) self.assertEquals(s.green, 30) self.assertEquals(s.on_duration, 1)
def test_can_compare_settings_for_equivalence(self): color = (100, 100, 100) s = LightSettings() s.set_color(color) s2 = LightSettings() s2.set_color(color) self.assertEquals(s, s2) self.assertFalse(s is s2)
def test_detects_cycles(self): ls = LightSettings() ls2 = LightSettings() ls3 = LightSettings() # make a cycle ls.next_settings = ls2 ls2.next_settings = ls3 ls3.next_settings = ls mod = Modifier() mod.modify(ls) self.assertIsNotNone(ls)
def test_can_serialize_to_json(self): s = LightSettings() s.red = 10 jsonstr = s.to_json() self.assertEquals(jsonstr, '{"red": 10}')
def test_can_set_on_duration(self): s = LightSettings() s.on_duration = 3 self.assertEquals(s.on_duration, 3)
def test_invalid_blue_value_throws(self): s = LightSettings() with self.assertRaises(ValueError): s.blue = -1 with self.assertRaises(ValueError): s.blue = 256
def test_invalid_green_value_throws(self): s = LightSettings() with self.assertRaises(ValueError): s.green = -0.01 with self.assertRaises(ValueError): s.green = 100000
def test_invalid_red_value_throws(self): s = LightSettings() with self.assertRaises(ValueError): s.red = -10 with self.assertRaises(ValueError): s.red = 300
def test_can_set_green(self): s = LightSettings() s.green = 80 self.assertEquals(s.green, 80)
def test_can_set_red(self): s = LightSettings() s.red = 10 self.assertEquals(s.red, 10)
def test_can_set_blue(self): s = LightSettings() s.blue = 20 self.assertEquals(s.blue, 20)
def test_can_compare_settings_to_tuple(self): color = (100, 100, 100) s = LightSettings() s.set_color(color) self.assertEquals(s, color)