@@ -15,36 +15,72 @@ def setUp(self):
15
15
def tearDown (self ):
16
16
pass
17
17
18
+ # https://api.slack.com/authentication/verifying-requests-from-slack
19
+ signing_secret = "8f742231b10e8888abcd99yyyzzz85a5"
20
+
18
21
body = "token=xyzz0WbapA4vBCDEFasx0q6G&team_id=T1DC2JH3J&team_domain=testteamnow&channel_id=G8PSS9T3V&channel_name=foobar&user_id=U2CERLKJA&user_name=roadrunner&command=%2Fwebhook-collect&text=&response_url=https%3A%2F%2Fhooks.slack.com%2Fcommands%2FT1DC2JH3J%2F397700885554%2F96rGlfmibIGlgcZRskXaIFfN&trigger_id=398738663015.47445629121.803a0bc887a14d10d2c447fce8b6703c"
22
+
23
+ timestamp = "1531420618"
24
+ valid_signature = "v0=a2114d57b48eac39b9ad189dd8316235a7b4a8d21a10bd27519666489c69b503"
25
+
19
26
headers = {
20
- "X-Slack-Request-Timestamp" : "1531420618" ,
21
- "X-Slack-Signature" : "v0=a2114d57b48eac39b9ad189dd8316235a7b4a8d21a10bd27519666489c69b503" ,
27
+ "X-Slack-Request-Timestamp" : timestamp ,
28
+ "X-Slack-Signature" : valid_signature ,
22
29
}
23
30
24
31
def test_generate_signature (self ):
25
- # https://api.slack.com/authentication/verifying-requests-from-slack
26
32
verifier = SignatureVerifier ("8f742231b10e8888abcd99yyyzzz85a5" )
27
33
timestamp = "1531420618"
28
34
signature = verifier .generate_signature (timestamp = timestamp , body = self .body )
29
- self .assertEqual ("v0=a2114d57b48eac39b9ad189dd8316235a7b4a8d21a10bd27519666489c69b503" , signature )
35
+ self .assertEqual (self . valid_signature , signature )
30
36
31
37
def test_is_valid_request (self ):
32
38
verifier = SignatureVerifier (
33
- signing_secret = "8f742231b10e8888abcd99yyyzzz85a5" ,
39
+ signing_secret = self . signing_secret ,
34
40
clock = MockClock ()
35
41
)
36
42
self .assertTrue (verifier .is_valid_request (self .body , self .headers ))
37
43
38
44
def test_is_valid_request_invalid_body (self ):
39
45
verifier = SignatureVerifier (
40
- signing_secret = "8f742231b10e8888abcd99yyyzzz85a5" ,
41
- clock = MockClock ()
46
+ signing_secret = self . signing_secret ,
47
+ clock = MockClock (),
42
48
)
43
49
modified_body = self .body + "------"
44
50
self .assertFalse (verifier .is_valid_request (modified_body , self .headers ))
45
51
46
52
def test_is_valid_request_expiration (self ):
47
53
verifier = SignatureVerifier (
48
- signing_secret = "8f742231b10e8888abcd99yyyzzz85a5"
54
+ signing_secret = self . signing_secret ,
49
55
)
50
56
self .assertFalse (verifier .is_valid_request (self .body , self .headers ))
57
+
58
+ def test_is_valid_request_none (self ):
59
+ verifier = SignatureVerifier (
60
+ signing_secret = self .signing_secret ,
61
+ clock = MockClock (),
62
+ )
63
+ self .assertFalse (verifier .is_valid_request (None , self .headers ))
64
+ self .assertFalse (verifier .is_valid_request (self .body , None ))
65
+ self .assertFalse (verifier .is_valid_request (None , None ))
66
+
67
+ def test_is_valid (self ):
68
+ verifier = SignatureVerifier (
69
+ signing_secret = self .signing_secret ,
70
+ clock = MockClock (),
71
+ )
72
+ self .assertTrue (verifier .is_valid (self .body , self .timestamp , self .valid_signature ))
73
+ self .assertTrue (verifier .is_valid (self .body , 1531420618 , self .valid_signature ))
74
+
75
+ def test_is_valid_none (self ):
76
+ verifier = SignatureVerifier (
77
+ signing_secret = self .signing_secret ,
78
+ clock = MockClock (),
79
+ )
80
+ self .assertFalse (verifier .is_valid (None , self .timestamp , self .valid_signature ))
81
+ self .assertFalse (verifier .is_valid (self .body , None , self .valid_signature ))
82
+ self .assertFalse (verifier .is_valid (self .body , self .timestamp , None ))
83
+ self .assertFalse (verifier .is_valid (None , None , self .valid_signature ))
84
+ self .assertFalse (verifier .is_valid (None , self .timestamp , None ))
85
+ self .assertFalse (verifier .is_valid (self .body , None , None ))
86
+ self .assertFalse (verifier .is_valid (None , None , None ))
0 commit comments