@@ -98,19 +98,19 @@ def test_read_empty_dta(self):
98
98
99
99
def test_data_method (self ):
100
100
# 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 ()
104
104
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 ()
107
107
tm .assert_frame_equal (parsed_114_data , parsed_114_read )
108
108
109
109
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
+
114
114
# Pandas uses np.nan as missing value.
115
115
# Thus, all columns will be of type float, regardless of their name.
116
116
expected = DataFrame ([(np .nan , np .nan , np .nan , np .nan , np .nan )],
@@ -264,19 +264,18 @@ def test_read_dta18(self):
264
264
for col in parsed_118 .columns :
265
265
tm .assert_almost_equal (parsed_118 [col ], expected [col ])
266
266
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 )
279
277
278
+ self .assertEqual (rdr .data_label , u'This is a Ünicode data label' )
280
279
281
280
def test_read_write_dta5 (self ):
282
281
original = DataFrame ([(np .nan , np .nan , np .nan , np .nan , np .nan )],
@@ -610,8 +609,10 @@ def test_bool_uint(self):
610
609
tm .assert_frame_equal (written_and_read_again , expected )
611
610
612
611
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 ()
615
616
keys = ('var1' , 'var2' , 'var3' )
616
617
labels = ('label1' , 'label2' , 'label3' )
617
618
for k ,v in compat .iteritems (sr_115 ):
@@ -652,7 +653,8 @@ def test_missing_value_generator(self):
652
653
df = DataFrame ([[0.0 ]],columns = ['float_' ])
653
654
with tm .ensure_clean () as path :
654
655
df .to_stata (path )
655
- valid_range = StataReader (path ).VALID_RANGE
656
+ with StataReader (path ) as rdr :
657
+ valid_range = rdr .VALID_RANGE
656
658
expected_values = ['.' + chr (97 + i ) for i in range (26 )]
657
659
expected_values .insert (0 , '.' )
658
660
for t in types :
0 commit comments