@@ -62,6 +62,15 @@ def test_access_info():
6262 access_info .change_read_to_write ()
6363 assert "Trying to change variable to 'WRITE' which does not have " \
6464 "'READ' access." in str (err .value )
65+ access_info2 = AccessInfo (AccessType .READ , Node ())
66+ assert str (access_info2 ) == "READ"
67+ access_info2 .change_read_to_type_info ()
68+ assert str (access_info2 ) == "TYPE_INFO"
69+ assert access_info2 .access_type == AccessType .TYPE_INFO
70+ with pytest .raises (InternalError ) as err :
71+ access_info2 .change_read_to_type_info ()
72+ assert ("Trying to change variable to 'TYPE_INFO' which does not have "
73+ "'READ' access." in str (err .value ))
6574
6675 # Test setter and getter:
6776 component_indices = ComponentIndices ([["i" ]])
@@ -200,6 +209,42 @@ def test_variable_access_sequence():
200209 assert not accesses .has_data_access ()
201210
202211
212+ def test_variable_access_sequence_read_to_type_info ():
213+ '''
214+ Test the read_to_type_info functionality of AccessSequence
215+ '''
216+ accesses = AccessSequence (Signature ("var_name" ))
217+ accesses .add_access (AccessType .INQUIRY , Node (), component_indices = None )
218+ accesses .add_access (AccessType .READ , Node (), component_indices = None )
219+ accesses .change_read_to_type_info ()
220+ assert not accesses .is_read ()
221+ assert not accesses .is_written ()
222+ assert not accesses .has_data_access ()
223+
224+ with pytest .raises (InternalError ) as err :
225+ accesses .change_read_to_type_info ()
226+ assert ("Trying to change variable 'var_name' to "
227+ "'TYPE_INFO' but it does not have a 'READ' access."
228+ in str (err .value ))
229+
230+ accesses .add_access (AccessType .WRITE , Node (), component_indices = None )
231+ with pytest .raises (InternalError ) as err :
232+ accesses .change_read_to_type_info ()
233+ assert ("Variable 'var_name' has a 'WRITE' access. "
234+ "change_read_to_type_info() "
235+ "expects only inquiry accesses and a single 'READ' access."
236+ in str (err .value ))
237+
238+ accesses = AccessSequence (Signature ("var_name" ))
239+ accesses .add_access (AccessType .READ , Node (), component_indices = None )
240+ accesses .add_access (AccessType .READ , Node (), component_indices = None )
241+
242+ with pytest .raises (InternalError ) as err :
243+ accesses .change_read_to_type_info ()
244+ assert ("Trying to change variable 'var_name' to "
245+ "'TYPE_INFO' but it has more than one 'READ' access."
246+ in str (err .value ))
247+
203248def test_variable_access_sequence_has_indices (fortran_reader ):
204249 '''Test that the AccessSequence class handles indices as expected.
205250
0 commit comments