def test_ic_fmt_hdf5_logs(): h5path = retrieve_data("fmt-hdf5_fl_2018.zip") hw = RTDCWriter(h5path) hw.store_log("test", ["asdasd" * 100]) hw.store_log("M1_para.ini", ["asdasd" * 100]) with check.IntegrityChecker(h5path) as ic: cues = ic.check_fmt_hdf5() assert len(cues) == 1 assert cues[0].category == "format HDF5" assert cues[0].msg == 'Logs: test line 0 exceeds maximum line length 100' assert cues[0].level == "alert"
def test_replace_logs(): rtdc_file = tempfile.mktemp(suffix=".rtdc", prefix="dclab_test_replace_logs_") hw = RTDCWriter(rtdc_file) hw.store_log("log1", ["hans", "und"]) with h5py.File(rtdc_file, mode="r") as rtdc_data: logs = rtdc_data["logs"] assert len(logs["log1"]) == 2 hw = RTDCWriter(rtdc_file, mode="replace") hw.store_log("log1", ["peter"]) with h5py.File(rtdc_file, mode="r") as rtdc_data: logs = rtdc_data["logs"] assert len(logs["log1"]) == 1
def test_bulk_logs(): log = ["This is a test log that contains two lines.", "This is the second line.", ] rtdc_file = tempfile.mktemp(suffix=".rtdc", prefix="dclab_test_bulk_logs_") hw = RTDCWriter(rtdc_file) hw.store_log("testlog", log) # Read the file: with h5py.File(rtdc_file, mode="r") as rtdc_data: outlog = rtdc_data["logs"]["testlog"] for ii in range(len(outlog)): if isinstance(outlog[ii], bytes): # h5py 3 reads strings as bytes by default outii = outlog[ii].decode("utf-8") else: outii = outlog[ii] assert outii == log[ii]
def test_logs_append(): log1 = ["This is a test log that contains two lines.", "This is the second line.", ] log2 = ["These are other logging events.", "They are appended to the log.", "And may have different lengths." ] rtdc_file = tempfile.mktemp(suffix=".rtdc", prefix="dclab_test_append_logs_") hw = RTDCWriter(rtdc_file, mode="reset") hw.store_log("testlog", log1) hw.store_log("testlog", log2) # Read the file: with h5py.File(rtdc_file, mode="r") as rtdc_data: outlog = rtdc_data["logs"]["testlog"] for ii in range(len(outlog)): if isinstance(outlog[ii], bytes): # h5py 3 reads strings as bytes by default outii = outlog[ii].decode("utf-8") else: outii = outlog[ii] assert outii == (log1 + log2)[ii]