Exemple #1
0
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