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
Exemple #2
0
def test_XmlBigFrameIO_read_write_text():
    """Test reading and writing text files"""
    from clair.xmlio import XmlIOBigFrame
    
    testdata_dir = relative("../../test-data")
    basename = "test-file"
    
    #Remove test files
    testdata_pattern = path.join(testdata_dir, basename) + "*"
    os.system("rm " + testdata_pattern)
    
    #Create test object
    xml_io = XmlIOBigFrame(testdata_dir, basename, None)

    #Create nonsense files
    fname_ok = xml_io.make_filename(datetime(2012, 3, 3), 0, False)
    fname_bad = fname_ok[:len(basename)+1] + "xx" + fname_ok[len(basename)+3:]
    path_empty = path.join(testdata_dir, fname_ok)
    path_bad1 = path.join(testdata_dir, fname_ok + ".old")
    path_bad2 = path.join(testdata_dir, fname_bad)
    os.system("touch " + path_empty)
    os.system("touch " + path_bad1)
    os.system("touch " + path_bad2)
    
    #Write some files
    xml_io.write_text("Contents of test file from January, 1.", 
                      datetime(2012, 1, 1), False, False)
    xml_io.write_text("Contents of test file from January, 2.", 
                      datetime(2012, 1, 1), False, False)
    xml_io.write_text("Contents of test file from January, 3.", 
                      datetime(2012, 1, 1), False, False)
    xml_io.write_text("Contents of test file from February, 1.", 
                      datetime(2012, 2, 10, 11, 11), False, False)
    xml_io.write_text("Contents of test file from February, 2.", 
                      datetime(2012, 2, 20, 12, 12), False, False)
    
    #Show which files exist
    os.system("ls " + testdata_dir)
    
    #Read the files that were just written, test if we get right contents.
    texts = xml_io.read_text(datetime(2012, 1, 1), datetime(2012, 1, 1))
    print texts
    assert len(texts) == 3
    assert texts == ["Contents of test file from January, 1.",
                     "Contents of test file from January, 2.",
                     "Contents of test file from January, 3."]
    texts = xml_io.read_text(datetime(2012, 1, 1), datetime(2012, 2, 1))
    print texts
    assert len(texts) == 5