From 0127178c181559d1bf5053d8f0842286b2e20d16 Mon Sep 17 00:00:00 2001 From: jpalanca Date: Thu, 27 Sep 2018 12:50:45 +0200 Subject: [PATCH] fixed bug when thread is not defined in a message. --- spade/message.py | 7 ++++--- tests/test_message.py | 13 +++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/spade/message.py b/spade/message.py index 7bfe1967..27c7d047 100644 --- a/spade/message.py +++ b/spade/message.py @@ -234,9 +234,10 @@ def prepare(self): ) ) - data.fields.append(forms_xso.Field(var="_thread_node", - type_=forms_xso.FieldType.TEXT_SINGLE, - values=[self.thread])) + if self.thread: + data.fields.append(forms_xso.Field(var="_thread_node", + type_=forms_xso.FieldType.TEXT_SINGLE, + values=[self.thread])) data.title = SPADE_X_METADATA msg.xep0004_data = [data] diff --git a/tests/test_message.py b/tests/test_message.py index 5e99556f..8beeee32 100644 --- a/tests/test_message.py +++ b/tests/test_message.py @@ -73,6 +73,19 @@ def test_body_with_languages(): assert new_msg.body == "Hello World" +def test_thread_empty(): + msg = Message(thread=None) + + assert msg.thread is None + assert msg.metadata == {} + + aiomsg = msg.prepare() + for data in aiomsg.xep0004_data: + if data.title == SPADE_X_METADATA: + for field in data.fields: + assert field.var != "_thread_node" + + def test_equal(message): assert message == copy.copy(message)