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)