def test_XmlBigFrameIO_read_write_dataframe(): """Test reading and writing DataFrame objects as XML""" from clair.xmlio import XmlIOBigFrame, XMLConverterListings testdata_dir = relative("../../test-data") basename = "test-listings" #Remove test files testdata_pattern = path.join(testdata_dir, basename) + "*" os.system("rm " + testdata_pattern) #Create test data frame1 = make_test_listings() # print frame1 #Create test object xml_io = XmlIOBigFrame(testdata_dir, basename, XMLConverterListings()) #datetime(2013,1,10), datetime(2013,2,2), datetime(2013,2,3) #Write and read XML files, written data must be same as read data. xml_io.write_data(frame1) # xml_io.write_data(frame1, datetime(2013,1,1), datetime(2013,1,1)) frame2 = xml_io.read_data() # print frame2 assert_frames_equal(frame1, frame2) #Count the created files # os.system("ls " + testdata_dir) files_glob = glob.glob(testdata_pattern) assert len(files_glob) == 2 print #Write files again, the algorithm must create new files. #read them, it must not confuse the algorithm xml_io.write_data(frame1) frame2 = xml_io.read_data() assert_frames_equal(frame1, frame2) #Count the created files # os.system("ls " + testdata_dir) files_glob = glob.glob(testdata_pattern) assert len(files_glob) == 4 print #Write files in overwrite mode, read them, compare xml_io.write_data(frame1, overwrite=True) frame2 = xml_io.read_data() assert_frames_equal(frame1, frame2) #Count the created files # os.system("ls " + testdata_dir) files_glob = glob.glob(testdata_pattern) assert len(files_glob) == 2