1- import unittest
1+ from six . moves import xrange
22
3+ import unittest
34import tinylink
45
6+
57class DummyHandle (object ):
68 """
79 Dummy handler, so the TinyLink class can exchange data with itself.
810 """
911
1012 def __init__ (self ):
11- self .buffer = bytearray ()
13+ self .stream = bytearray ()
1214 self .index = 0
1315 self .length = 0
1416
1517 def write (self , data ):
16- self .buffer .extend (data )
18+ self .stream .extend (data )
1719 self .length += len (data )
1820
1921 # Return number of bytes written
2022 return len (data )
2123
2224 def read (self , count ):
23- data = str ( self .buffer [self .index :min (self .length , self .index + count )])
25+ data = self .stream [self .index :min (self .length , self .index + count )]
2426 self .index += len (data )
2527
2628 # Return data
27- return data
29+ return bytes (data )
30+
2831
2932class TinyLinkTest (unittest .TestCase ):
3033 """
@@ -39,10 +42,11 @@ def test_basic(self):
3942 handle = DummyHandle ()
4043 link = tinylink .TinyLink (handle )
4144
42- message = "Hello, this is a test"
45+ message = b "Hello, this is a test"
4346 size = link .write (message )
4447
45- self .assertEqual (size , tinylink .LEN_PREAMBLE + tinylink .LEN_HEADER +
48+ self .assertEqual (
49+ size , tinylink .LEN_PREAMBLE + tinylink .LEN_HEADER +
4650 tinylink .LEN_BODY + len (message ))
4751
4852 # Read `size' bytes to receive the full frame, test it partially
@@ -54,23 +58,9 @@ def test_basic(self):
5458 self .assertEqual (len (frames ), 1 )
5559 self .assertEqual (frames [0 ].data , message )
5660
57- def test_reset (self ):
58- """
59- Test reset feature.
60- """
61-
62- handle = DummyHandle ()
63- link = tinylink .TinyLink (handle )
64-
65- size = link .reset ()
66- frames = link .read (size )
67-
68- self .assertEqual (len (frames ), 1 )
69- self .assertIsInstance (frames [0 ], tinylink .ResetFrame )
70-
7161 def test_multiple (self ):
7262 """
73- Test multiple messages
63+ Test multiple messages.
7464 """
7565
7666 handle = DummyHandle ()
@@ -79,14 +69,14 @@ def test_multiple(self):
7969 size = 0
8070
8171 for i in xrange (5 ):
82- size += link .write (chr ( 97 + i ))
72+ size += link .write (bytes ([ 97 + i ] ))
8373
8474 frames = link .read (size )
8575
8676 self .assertEqual (len (frames ), 5 )
8777
8878 for i in xrange (5 ):
89- self .assertEqual (frames [i ].data , chr ( 97 + i ))
79+ self .assertEqual (frames [i ].data , bytes ([ 97 + i ] ))
9080
9181 def test_sync (self ):
9282 """
@@ -96,8 +86,8 @@ def test_sync(self):
9686 handle = DummyHandle ()
9787 link = tinylink .TinyLink (handle )
9888
99- garbage = "Garbage here that doesn't synchronize."
100- message = "Hi!"
89+ garbage = b "Garbage here that doesn't synchronize."
90+ message = b "Hi!"
10191
10292 size = handle .write (garbage ) + link .write (message )
10393 frames = link .read (size )
@@ -113,8 +103,8 @@ def test_sync_small(self):
113103 handle = DummyHandle ()
114104 link = tinylink .TinyLink (handle , max_length = 4 )
115105
116- garbage = "Garbage here that doesn't synchronize."
117- message = "Hi!"
106+ garbage = b "Garbage here that doesn't synchronize."
107+ message = b "Hi!"
118108
119109 size = handle .write (garbage ) + link .write (message )
120110 frames = link .read (size )
@@ -130,7 +120,7 @@ def test_size_fit(self):
130120 handle = DummyHandle ()
131121 link = tinylink .TinyLink (handle , max_length = 4 )
132122
133- message = "blub"
123+ message = b "blub"
134124
135125 size = link .write (message )
136126 frames = link .read (size )
@@ -146,41 +136,42 @@ def test_size_no_fit(self):
146136 handle = DummyHandle ()
147137 link = tinylink .TinyLink (handle , max_length = 2 )
148138
149- message = "blub"
139+ message = b "blub"
150140
151141 with self .assertRaises (ValueError ):
152- size = link .write (message )
142+ link .write (message )
153143
154144 def test_damaged_a (self ):
155145 """
156- Test damaged frame (in total) that will return a DamagedFrame.
146+ Test damaged frame (in total) that will return a Frame with damages is
147+ True.
157148 """
158149
159150 handle = DummyHandle ()
160151 link = tinylink .TinyLink (handle )
161152
162- message = "Hello, this is a test"
153+ message = b "Hello, this is a test"
163154
164155 size = link .write (message )
165- handle .buffer [- tinylink .LEN_CRC :] = " \x00 " * tinylink .LEN_CRC
156+ handle .stream [- tinylink .LEN_CRC :] = [ 0x00 ] * tinylink .LEN_CRC
166157 frames = link .read (size )
167158
168159 self .assertEqual (len (frames ), 1 )
169160 self .assertEqual (frames [0 ].data , message )
170- self .assertIsInstance (frames [0 ], tinylink . DamagedFrame )
161+ self .assertEqual (frames [0 ]. damaged , True )
171162
172- def test_damaged_a (self ):
163+ def test_damaged_b (self ):
173164 """
174165 Test damaged frame (header) that won't return anything.
175166 """
176167
177168 handle = DummyHandle ()
178169 link = tinylink .TinyLink (handle )
179170
180- message = "Hello, this is a test"
171+ message = b "Hello, this is a test"
181172
182173 size = link .write (message )
183- handle .buffer [tinylink .LEN_PREAMBLE + tinylink .LEN_HEADER - 1 ] = " \x00 "
174+ handle .stream [tinylink .LEN_PREAMBLE + tinylink .LEN_HEADER - 1 ] = 0x00
184175 frames = link .read (size )
185176
186- self .assertEqual (len (frames ), 0 )
177+ self .assertEqual (len (frames ), 0 )
0 commit comments