@@ -38,6 +38,7 @@ class tagStep:
3838 write_data : bytes
3939 read_lines : typing .List [typing .Optional [str ]]
4040
41+ # --------------------------------------------------------------------
4142 sm_Steps001 : typing .List [tagStep ] = [
4243 tagStep (
4344 b"" ,
@@ -91,14 +92,80 @@ class tagStep:
9192
9293 ]
9394
95+ # -------------------------------------------------------------------
96+ def test_001__from_beginnig (
97+ self ,
98+ os_ops_descr : OsOpsDescr ,
99+ ):
100+ assert type (os_ops_descr ) is OsOpsDescr
101+ assert isinstance (os_ops_descr .os_ops , OsOperations )
102+
103+ __class__ .helper__player (
104+ os_ops_descr ,
105+ __class__ .sm_Steps001 ,
106+ 0 ,
107+ )
108+ return
109+
94110 # --------------------------------------------------------------------
95- def test_001__common (
111+ sm_Steps002 : typing .List [tagStep ] = [
112+ tagStep (
113+ b"abc\n defg\n " ,
114+ ["abc\n " , "defg\n " , None ]
115+ ),
116+ ]
117+
118+ # -------------------------------------------------------------------
119+ def test_002__from_1 (
96120 self ,
97121 os_ops_descr : OsOpsDescr ,
98122 ):
99123 assert type (os_ops_descr ) is OsOpsDescr
100124 assert isinstance (os_ops_descr .os_ops , OsOperations )
101125
126+ __class__ .helper__player (
127+ os_ops_descr ,
128+ __class__ .sm_Steps002 ,
129+ 1 ,
130+ )
131+ return
132+
133+ # --------------------------------------------------------------------
134+ sm_Steps003 : typing .List [tagStep ] = [
135+ tagStep (
136+ b"abc\n defg\n " ,
137+ ["defg\n " , None ]
138+ ),
139+ ]
140+
141+ # -------------------------------------------------------------------
142+ def test_003__from_second_line (
143+ self ,
144+ os_ops_descr : OsOpsDescr ,
145+ ):
146+ assert type (os_ops_descr ) is OsOpsDescr
147+ assert isinstance (os_ops_descr .os_ops , OsOperations )
148+
149+ __class__ .helper__player (
150+ os_ops_descr ,
151+ __class__ .sm_Steps003 ,
152+ 4 ,
153+ )
154+ return
155+
156+ # --------------------------------------------------------------------
157+ @staticmethod
158+ def helper__player (
159+ os_ops_descr : OsOpsDescr ,
160+ steps : typing .List [tagStep ],
161+ initial_pos : int ,
162+ ):
163+ assert type (os_ops_descr ) is OsOpsDescr
164+ assert isinstance (os_ops_descr .os_ops , OsOperations )
165+ assert type (steps ) is list
166+ assert type (initial_pos ) is int
167+ assert initial_pos >= 0
168+
102169 os_ops = os_ops_descr .os_ops
103170 assert isinstance (os_ops_descr .os_ops , OsOperations )
104171
@@ -110,23 +177,27 @@ def test_001__common(
110177 assert os_ops .path_exists (filename )
111178 assert os_ops .get_file_size (filename ) == 0
112179
113- file_line_reader = FileLineReader (
114- os_ops ,
115- filename ,
116- file_encoding = "utf-8" ,
117- )
180+ file_line_reader : typing .Optional [FileLineReader ] = None
118181
119182 # -----------------------
120183 nStep = 0
121184
122- for step in __class__ . sm_Steps001 :
185+ for step in steps :
123186 nStep += 1
124187
125188 logging .info ("-------------------- step: {}" .format (nStep ))
126189
127190 logging .info ("write: {}" .format (step .write_data ))
128191 os_ops .write (filename , step .write_data , binary = True )
129192
193+ if file_line_reader is None :
194+ file_line_reader = FileLineReader (
195+ os_ops ,
196+ filename ,
197+ file_encoding = "utf-8" ,
198+ file_pos = initial_pos ,
199+ )
200+
130201 nRead = 0
131202 for expected_line in step .read_lines :
132203 nRead += 1
0 commit comments