category=LogReadWarning)
self.ignore[idx] = True
else:
- if new_size < last_size:
- warn('{0} / {1} has become smaller ({2} --> {3})!'
- .format(obj, description, last_size, new_size),
+ if new_size < last_size: # happened at start of some tests
+ warn('{0} / {1} has become smaller ({2} --> {3})! '
+ .format(obj, description, last_size, new_size)
+ + 'Maybe you are reading from a half-initialized '
+ + 'file?',
category=LogReadWarning)
try:
new_data = obj.read()
import os
import time
import logging
+from warnings import warn
-from src.log_read import IterativeReader, LineReader
+from src.log_read import IterativeReader, LineReader, LogReadWarning
# get best clock
from sys import version_info
with open(self.temp_file, 'rt') as file_handle:
reader = IterativeReader(file_handle)
self.helper_test_len(reader, 1)
- for counter, (desc, text) in enumerate(reader):
+ counter = -1 # we may have to adapt this manually
+ for desc, text in reader:
receive_time = perf_counter()
+ counter += 1
text = text.strip()
if DEBUG:
print('{1}: received text "{0}" at {2}'
.format(text, counter, receive_time))
+ if counter == 0 and not text:
+ # if reader runs stat() before we write, we might get
+ # a warning and one empty read here
+ counter -= 1
+ warn('Got an empty read, you should have seen another '
+ 'warning about file shrinking',
+ category=LogReadWarning)
+ continue
index = text.index(':')
count_text = int(text[:index].strip())
self.assertEqual(count_text, counter)