From 0127046fd24e16ad322780f6ea1017ea82653525 Mon Sep 17 00:00:00 2001 From: Martin Raspaud Date: Wed, 9 Jan 2019 13:56:04 +0100 Subject: [PATCH] Fix decoding utf-8 encoded raw messages --- posttroll/message.py | 2 ++ posttroll/tests/test_message.py | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/posttroll/message.py b/posttroll/message.py index 9a255bc..2d7048c 100644 --- a/posttroll/message.py +++ b/posttroll/message.py @@ -252,6 +252,8 @@ def _decode(rawstr): rawstr = rawstr.decode('utf-8') except AttributeError: pass + except UnicodeEncodeError: + pass if not rawstr.startswith(_MAGICK): raise MessageError("This is not a '%s' message (wrong magick word)" % _MAGICK) diff --git a/posttroll/tests/test_message.py b/posttroll/tests/test_message.py index a2e3e7f..5d0efae 100644 --- a/posttroll/tests/test_message.py +++ b/posttroll/tests/test_message.py @@ -105,6 +105,12 @@ def test_unicode(self): except UnicodeDecodeError: self.fail('Unexpected unicode decoding error') + try: + Message(rawstr=u'pytroll://oper/polar/direct_readout/norrköping pong sat@MERLIN 2019-01-07T12:52:19.872171' + ' v1.01 application/json {"station": "norrk\u00f6ping"}') + except UnicodeDecodeError: + self.fail('Unexpected unicode decoding error') + def test_pickle(self): """Test pickling. @@ -170,3 +176,6 @@ def suite(): mysuite.addTest(loader.loadTestsFromTestCase(Test)) return mysuite + +if __name__ == '__main__': + unittest.main()