From 6a2ca2f6851eb9dd087071e49d9746627d8f16ad Mon Sep 17 00:00:00 2001 From: Eugene Krevenets Date: Wed, 12 Apr 2017 13:17:38 +0200 Subject: [PATCH] fix serialization of like matcher --- botstory/middlewares/sticker/sticker.py | 8 +++++--- botstory/middlewares/sticker/sticker_test.py | 7 +++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/botstory/middlewares/sticker/sticker.py b/botstory/middlewares/sticker/sticker.py index 0d0f062..33b42e3 100644 --- a/botstory/middlewares/sticker/sticker.py +++ b/botstory/middlewares/sticker/sticker.py @@ -33,7 +33,9 @@ class Like: type = 'Sticker.Like' def __init__(self, size=ANY_LIKE): - if size == ANY_LIKE: + if isinstance(size, list): + self.valid_likes = size + elif size == ANY_LIKE: self.valid_likes = LIKE_STICKERS else: self.valid_likes = [size] @@ -42,8 +44,8 @@ def validate(self, ctx): return get_sticker(ctx) in self.valid_likes def serialize(self): - return self.option + return self.valid_likes @staticmethod def deserialize(option): - return Match(option) + return Like(option) diff --git a/botstory/middlewares/sticker/sticker_test.py b/botstory/middlewares/sticker/sticker_test.py index 094c93a..9454941 100644 --- a/botstory/middlewares/sticker/sticker_test.py +++ b/botstory/middlewares/sticker/sticker_test.py @@ -102,3 +102,10 @@ def then(ctx): }) assert trigger_likes[match_size].is_triggered + + +def test_serialize_like(): + m_old = sticker.Like(sticker.BIG_LIKE) + m_new = matchers.deserialize(matchers.serialize(m_old)) + assert isinstance(m_new, sticker.Like) + assert sticker.BIG_LIKE in m_new.valid_likes