# HG changeset patch # User Paul Fisher # Date 1571365173 14400 # Node ID 770215590d8095600f8c3bf18203f576e79136ec # Parent b5625b531d2dea33bb24da54dd36215cc49e539c logger: Actually pass the right type. The logger was improperly giving the writer already-encoded values. diff -r b5625b531d2d -r 770215590d80 weatherlog/logger.py --- a/weatherlog/logger.py Tue Oct 15 23:05:10 2019 -0400 +++ b/weatherlog/logger.py Thu Oct 17 22:19:33 2019 -0400 @@ -36,7 +36,7 @@ @attr.s(auto_attribs=True, frozen=True, slots=True) class ReadingPosition: # The encoded reading that was written. - data: bytes + data: t.Dict[str, object] # The index of the byte immediately following this one. end: int @@ -78,7 +78,7 @@ self._file.write(encoded) self._file.flush() byte = self._file.tell() - self._send_queue.append(ReadingPosition(encoded, byte)) + self._send_queue.append(ReadingPosition(reading, byte)) def _send_internal(self) -> None: to_send: t.List[ReadingPosition] = [] @@ -158,9 +158,8 @@ end_pos = infile.tell() try: for entry in reader: - data = bson_encode(entry) end_pos = infile.tell() - readings.append(ReadingPosition(data, end_pos)) + readings.append(ReadingPosition(entry, end_pos)) except bson.InvalidBSON: infile.seek(end_pos, os.SEEK_SET) infile.truncate(end_pos) diff -r b5625b531d2d -r 770215590d80 weatherlog/logger_test.py --- a/weatherlog/logger_test.py Tue Oct 15 23:05:10 2019 -0400 +++ b/weatherlog/logger_test.py Thu Oct 17 22:19:33 2019 -0400 @@ -12,7 +12,6 @@ import pytz from . import logger -from . import types class FakeWriter(logger.RemoteWriter): @@ -77,8 +76,8 @@ self.assertEqual( writer.writes, [ - (bs({'first': 'item'}), bs({'entry': 2})), - (bs({'thing': 'three'}),), + ({'first': 'item'}, {'entry': 2}), + ({'thing': 'three'},), ], ) self.assertEqual(self._read_last_sent(), '59') @@ -118,8 +117,8 @@ {'some new': 'entry'}, ]) self.assertEqual(list(itertools.chain.from_iterable(writer.writes)), [ - bs(dict(sample_time=ts(60), temp_c=10, rh_pct=99)), - bs({'some new': 'entry'}), + dict(sample_time=ts(60), temp_c=10, rh_pct=99), + {'some new': 'entry'}, ]) def test_resume_from_byte(self): @@ -150,8 +149,8 @@ {'some new': 'entry'}, ]) self.assertEqual(list(itertools.chain.from_iterable(writer.writes)), [ - bs({'unsent': 'value'}), - bs({'some new': 'entry'}), + {'unsent': 'value'}, + {'some new': 'entry'}, ]) def test_send_failure(self): @@ -169,7 +168,7 @@ self.assertEqual(self._read_last_sent(), '30') self.assertEqual( - writer.writes, [(bs({'cool write': 'succeeds'}),)]) + writer.writes, [({'cool write': 'succeeds'},)]) self.assertEqual(self._read_bsons(), [ {'cool write': 'succeeds'}, {'bad write': 'fails'}, @@ -183,8 +182,8 @@ self.assertEqual( writer.writes, [ - (bs({'cool write': 'succeeds'}),), - (bs({'bad write': 'fails'}),), + ({'cool write': 'succeeds'},), + ({'bad write': 'fails'},), ]) self.assertEqual(self._read_bsons(), [ {'cool write': 'succeeds'},