@@ -98,19 +98,19 @@ def test_read_empty_dta(self):
9898
9999 def test_data_method (self ):
100100 # Minimal testing of legacy data method
101- reader_114 = StataReader (self .dta1_114 )
102- with warnings .catch_warnings (record = True ) as w :
103- parsed_114_data = reader_114 .data ()
101+ with StataReader (self .dta1_114 ) as rdr :
102+ with warnings .catch_warnings (record = True ) as w :
103+ parsed_114_data = rdr .data ()
104104
105- reader_114 = StataReader (self .dta1_114 )
106- parsed_114_read = reader_114 .read ()
105+ with StataReader (self .dta1_114 ) as rdr :
106+ parsed_114_read = rdr .read ()
107107 tm .assert_frame_equal (parsed_114_data , parsed_114_read )
108108
109109 def test_read_dta1 (self ):
110- reader_114 = StataReader ( self . dta1_114 )
111- parsed_114 = reader_114 . read ( )
112- reader_117 = StataReader (self .dta1_117 )
113- parsed_117 = reader_117 . read ()
110+
111+ parsed_114 = self . read_dta ( self . dta1_114 )
112+ parsed_117 = self . read_dta (self .dta1_117 )
113+
114114 # Pandas uses np.nan as missing value.
115115 # Thus, all columns will be of type float, regardless of their name.
116116 expected = DataFrame ([(np .nan , np .nan , np .nan , np .nan , np .nan )],
@@ -264,19 +264,18 @@ def test_read_dta18(self):
264264 for col in parsed_118 .columns :
265265 tm .assert_almost_equal (parsed_118 [col ], expected [col ])
266266
267- rdr = StataReader (self .dta22_118 )
268- vl = rdr .variable_labels ()
269- vl_expected = {u'Unicode_Cities_Strl' : u'Here are some strls with Ünicode chars' ,
270- u'Longs' : u'long data' ,
271- u'Things' : u'Here are some things' ,
272- u'Bytes' : u'byte data' ,
273- u'Ints' : u'int data' ,
274- u'Cities' : u'Here are some cities' ,
275- u'Floats' : u'float data' }
276- tm .assert_dict_equal (vl , vl_expected )
277-
278- self .assertEqual (rdr .data_label , u'This is a Ünicode data label' )
267+ with StataReader (self .dta22_118 ) as rdr :
268+ vl = rdr .variable_labels ()
269+ vl_expected = {u'Unicode_Cities_Strl' : u'Here are some strls with Ünicode chars' ,
270+ u'Longs' : u'long data' ,
271+ u'Things' : u'Here are some things' ,
272+ u'Bytes' : u'byte data' ,
273+ u'Ints' : u'int data' ,
274+ u'Cities' : u'Here are some cities' ,
275+ u'Floats' : u'float data' }
276+ tm .assert_dict_equal (vl , vl_expected )
279277
278+ self .assertEqual (rdr .data_label , u'This is a Ünicode data label' )
280279
281280 def test_read_write_dta5 (self ):
282281 original = DataFrame ([(np .nan , np .nan , np .nan , np .nan , np .nan )],
@@ -610,8 +609,10 @@ def test_bool_uint(self):
610609 tm .assert_frame_equal (written_and_read_again , expected )
611610
612611 def test_variable_labels (self ):
613- sr_115 = StataReader (self .dta16_115 ).variable_labels ()
614- sr_117 = StataReader (self .dta16_117 ).variable_labels ()
612+ with StataReader (self .dta16_115 ) as rdr :
613+ sr_115 = rdr .variable_labels ()
614+ with StataReader (self .dta16_117 ) as rdr :
615+ sr_117 = rdr .variable_labels ()
615616 keys = ('var1' , 'var2' , 'var3' )
616617 labels = ('label1' , 'label2' , 'label3' )
617618 for k ,v in compat .iteritems (sr_115 ):
@@ -652,7 +653,8 @@ def test_missing_value_generator(self):
652653 df = DataFrame ([[0.0 ]],columns = ['float_' ])
653654 with tm .ensure_clean () as path :
654655 df .to_stata (path )
655- valid_range = StataReader (path ).VALID_RANGE
656+ with StataReader (path ) as rdr :
657+ valid_range = rdr .VALID_RANGE
656658 expected_values = ['.' + chr (97 + i ) for i in range (26 )]
657659 expected_values .insert (0 , '.' )
658660 for t in types :
0 commit comments