diff options
Diffstat (limited to 'utilities/test_blinkenrocket.py')
-rw-r--r-- | utilities/test_blinkenrocket.py | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/utilities/test_blinkenrocket.py b/utilities/test_blinkenrocket.py new file mode 100644 index 0000000..62bd0e3 --- /dev/null +++ b/utilities/test_blinkenrocket.py @@ -0,0 +1,117 @@ +#!/usr/bin/python +import unittest +from blinkenrocket import * + +class TestFrame(unittest.TestCase): + + def test_notImplemented(self): + frame = Frame() + with self.assertRaises(NotImplementedError): + frame.getRepresentation() + +class TestAnimation(unittest.TestCase): + + def test_speedDefault(self): + anim = animationFrame([]) + self.assertEquals(ord(anim.getHeader()[0]),1) + + def test_speedOkay(self): + anim = animationFrame([],speed=7) + self.assertEquals(ord(anim.getHeader()[0]),7) + + def test_speedNotOkay(self): + anim = animationFrame([],speed=70) + self.assertEquals(ord(anim.getHeader()[0]),1) + + def test_delayDefault(self): + anim = animationFrame([]) + self.assertEquals(ord(anim.getHeader()[1]),0) + + def test_delayOkay(self): + anim = animationFrame([],delay=7) + self.assertEquals(ord(anim.getHeader()[1]),7) + + def test_delayNotOkay(self): + anim = animationFrame([],delay=70) + self.assertEquals(ord(anim.getHeader()[1]),0) + + def test_illegalLength(self): + with self.assertRaises(Exception): + anim = animationFrame([0x11,0x12,0x13,0x14]) + + def test_allowedLength(self): + anim = animationFrame([0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18]) + + def test_defaultHeaderOK(self): + anim = animationFrame([]) + self.assertEquals(anim.getHeader(),[chr(1),chr(0)]) + + def test_differentHeaderOK(self): + anim = animationFrame([],speed=7,delay=8) + self.assertEquals(anim.getHeader(),[chr(7),chr(8)]) + +class TestText(unittest.TestCase): + + def test_speedDefault(self): + text = textFrame([]) + self.assertEquals(ord(text.getHeader()[0]),(1 << 4 | 0)) + + def test_speedOkay(self): + text = textFrame([],speed=7) + self.assertEquals(ord(text.getHeader()[0]),(7 << 4 | 0)) + + def test_speedNotOkay(self): + text = textFrame([],speed=70) + self.assertEquals(ord(text.getHeader()[0]),(1 << 4 | 0)) + + def test_delayDefault(self): + text = textFrame([]) + self.assertEquals(ord(text.getHeader()[0]),(1 << 4 | 0)) + + def test_delayOkay(self): + text = textFrame([],delay=7) + self.assertEquals(ord(text.getHeader()[0]),(1 << 4 | 7)) + + def test_delayNotOkay(self): + text = textFrame([],delay=70) + self.assertEquals(ord(text.getHeader()[0]),(1 << 4 | 0)) + + def test_directionDefault(self): + text = textFrame([]) + self.assertEquals(ord(text.getHeader()[1]),0) + + def test_directionOkay(self): + text = textFrame([],direction=1) + self.assertEquals(ord(text.getHeader()[1]),(1 << 4 | 0)) + + def test_directionNotOkay(self): + text = textFrame([],direction=7) + self.assertEquals(ord(text.getHeader()[1]),0) + + def test_defaultHeaderOK(self): + text = textFrame([]) + self.assertEquals(text.getHeader(),[chr(1 << 4 | 0),chr(0)]) + + def test_differentHeaderOK(self): + text = textFrame([],speed=7,delay=8,direction=1) + self.assertEquals(text.getHeader(),[chr(7 << 4 | 8),chr(1 << 4 | 0)]) + +class TestBlinkenrocket(unittest.TestCase): + + def test_addFrameFail(self): + br = blinkenrocket() + with self.assertRaises(Exception): + br.addFrame([]) + + def test_addFrameText(self): + text = textFrame("MUZY",speed=7,delay=8,direction=1) + self.assertEquals(text.getFrameHeader(),[chr(0x01 << 4), chr(4)]) + self.assertEquals(text.getHeader(),[chr(7 << 4 | 8),chr(1 << 4 | 0)]) + self.assertEquals(text.getRepresentation(),[chr(0x01 << 4), chr(4),chr(7 << 4 | 8),chr(1 << 4 | 0),'M','U','Z','Y']) + br = blinkenrocket() + br.addFrame(text) + expect = [chr(0x99),chr(0x99),chr(0xA9),chr(0xA9),chr(0x01 << 4), chr(4),chr(7 << 4 | 8),chr(1 << 4 | 0),'M','U','Z','Y',chr(0x84),chr(0x84)] + self.assertEquals(br.getMessage(),expect) + +if __name__ == '__main__': + unittest.main() |