21
21
)
22
22
from linebot .v3 .exceptions import InvalidSignatureError
23
23
24
+
24
25
class TestWebhookParserWithSkipSignatureVerification (unittest .TestCase ):
25
26
def setUp (self ):
26
27
self .parser = WebhookParser ('channel_secret' )
@@ -40,6 +41,7 @@ def test_parse_with_invalid_signature(self):
40
41
except InvalidSignatureError :
41
42
self .fail ("parse() raised InvalidSignatureError unexpectedly!" )
42
43
44
+
43
45
class TestWebhookHandlerWithSkipSignatureVerification (unittest .TestCase ):
44
46
def setUp (self ):
45
47
self .handler = WebhookHandler ('channel_secret' )
@@ -56,7 +58,31 @@ def default_with_skip(event):
56
58
self .handler_with_skip_called = True
57
59
58
60
def test_handle_with_invalid_signature (self ):
59
- body = '{"events": [{"type": "message", "message": {"type": "text", "id": "123", "text": "test"}, "timestamp": 1462629479859, "source": {"type": "user", "userId": "U123"}, "replyToken": "reply_token", "mode": "active", "webhookEventId": "test_id", "deliveryContext": {"isRedelivery": false}}]}'
61
+ body = """
62
+ {
63
+ "events": [
64
+ {
65
+ "type": "message",
66
+ "message": {
67
+ "type": "text",
68
+ "id": "123",
69
+ "text": "test"
70
+ },
71
+ "timestamp": 1462629479859,
72
+ "source": {
73
+ "type": "user",
74
+ "userId": "U123"
75
+ },
76
+ "replyToken": "reply_token",
77
+ "mode": "active",
78
+ "webhookEventId": "test_id",
79
+ "deliveryContext": {
80
+ "isRedelivery": false
81
+ }
82
+ }
83
+ ]
84
+ }
85
+ """
60
86
signature = 'invalid_signature'
61
87
62
88
# Should raise InvalidSignatureError when skip_signature_verification is False (default)
@@ -76,7 +102,31 @@ def test_handle_with_invalid_signature(self):
76
102
self .assertTrue (self .handler_with_skip_called )
77
103
78
104
def test_dynamic_skip_signature_verification (self ):
79
- body = '{"events": [{"type": "message", "message": {"type": "text", "id": "123", "text": "test"}, "timestamp": 1462629479859, "source": {"type": "user", "userId": "U123"}, "replyToken": "reply_token", "mode": "active", "webhookEventId": "test_id", "deliveryContext": {"isRedelivery": false}}]}'
105
+ body = """
106
+ {
107
+ "events": [
108
+ {
109
+ "type": "message",
110
+ "message": {
111
+ "type": "text",
112
+ "id": "123",
113
+ "text": "test"
114
+ },
115
+ "timestamp": 1462629479859,
116
+ "source": {
117
+ "type": "user",
118
+ "userId": "U123"
119
+ },
120
+ "replyToken": "reply_token",
121
+ "mode": "active",
122
+ "webhookEventId": "test_id",
123
+ "deliveryContext": {
124
+ "isRedelivery": false
125
+ }
126
+ }
127
+ ]
128
+ }
129
+ """
80
130
signature = 'invalid_signature'
81
131
skip_flag = [False ]
82
132
@@ -111,6 +161,6 @@ def default_dynamic(event):
111
161
# Handler should be called now
112
162
self .assertTrue (dynamic_handler_called [0 ])
113
163
164
+
114
165
if __name__ == '__main__' :
115
166
unittest .main ()
116
-
0 commit comments