Skip to content

Commit f894a06

Browse files
Merge branch 'main' into dependabot/pip/flake8-gte-7.3.0-and-lt-8
2 parents 82edfa3 + fdfdd21 commit f894a06

6 files changed

Lines changed: 55 additions & 3 deletions

File tree

requirements/databases.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
# PostgreSQL drivers
44
psycopg2-binary>=2.9,<3
5-
asyncpg>=0.27,<1
5+
asyncpg>=0.31.0,<1

requirements/documentation.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
docutils==0.22.4
1+
docutils==0.23
22
pdoc3==0.11.6

requirements/testing.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ cryptography<46; implementation_name == "pypy" and python_version == "3.10"
1212
# used only under slack_sdk/*_store
1313
boto3<=2
1414
# For AWS tests
15-
moto>=4.0.13,<6
15+
moto>=4.2.14,<6
1616
# For AsyncSQLAlchemy tests
1717
greenlet<=4
1818
aiosqlite<=1

slack_sdk/signature/__init__.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,18 @@ def __init__(self, signing_secret: str, clock: Clock = Clock()):
2929
self.signing_secret = signing_secret
3030
self.clock = clock
3131

32+
@property
33+
def signing_secret(self) -> str:
34+
return self._signing_secret
35+
36+
@signing_secret.setter
37+
def signing_secret(self, value: str) -> None:
38+
if not isinstance(value, str):
39+
raise ValueError("signing_secret must be a string")
40+
if not value.strip():
41+
raise ValueError("signing_secret must not be empty.")
42+
self._signing_secret = value
43+
3244
def is_valid_request(
3345
self,
3446
body: Union[str, bytes],

tests/signature/test_signature_verifier.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,3 +97,23 @@ def test_is_valid_none(self):
9797
self.assertFalse(verifier.is_valid(None, self.timestamp, None))
9898
self.assertFalse(verifier.is_valid(self.body, None, None))
9999
self.assertFalse(verifier.is_valid(None, None, None))
100+
101+
def test_invalid_signing_secret(self):
102+
with self.assertRaises(ValueError):
103+
SignatureVerifier("")
104+
with self.assertRaises(ValueError):
105+
SignatureVerifier(" ")
106+
with self.assertRaises(ValueError):
107+
SignatureVerifier(None)
108+
with self.assertRaises(ValueError):
109+
SignatureVerifier(123)
110+
with self.assertRaises(ValueError):
111+
SignatureVerifier(b"secret")
112+
113+
def test_invalid_signing_secret_reassignment(self):
114+
verifier = SignatureVerifier(self.signing_secret)
115+
with self.assertRaises(ValueError):
116+
verifier.signing_secret = ""
117+
with self.assertRaises(ValueError):
118+
verifier.signing_secret = None
119+
self.assertEqual(verifier.signing_secret, self.signing_secret)

tests/slack_sdk/signature/test_signature_verifier.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,3 +97,23 @@ def test_is_valid_none(self):
9797
self.assertFalse(verifier.is_valid(None, self.timestamp, None))
9898
self.assertFalse(verifier.is_valid(self.body, None, None))
9999
self.assertFalse(verifier.is_valid(None, None, None))
100+
101+
def test_invalid_signing_secret(self):
102+
with self.assertRaises(ValueError):
103+
SignatureVerifier("")
104+
with self.assertRaises(ValueError):
105+
SignatureVerifier(" ")
106+
with self.assertRaises(ValueError):
107+
SignatureVerifier(None)
108+
with self.assertRaises(ValueError):
109+
SignatureVerifier(123)
110+
with self.assertRaises(ValueError):
111+
SignatureVerifier(b"secret")
112+
113+
def test_invalid_signing_secret_reassignment(self):
114+
verifier = SignatureVerifier(self.signing_secret)
115+
with self.assertRaises(ValueError):
116+
verifier.signing_secret = ""
117+
with self.assertRaises(ValueError):
118+
verifier.signing_secret = None
119+
self.assertEqual(verifier.signing_secret, self.signing_secret)

0 commit comments

Comments
 (0)