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
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