Skip to content

Commit 6980284

Browse files
committed
Update requirements, adjust tests for this Flask version
1 parent 39a6f90 commit 6980284

7 files changed

Lines changed: 46 additions & 41 deletions

File tree

flask_phpbb3/sessions.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import json
2-
from typing import Any, Dict, Mapping, MutableMapping, Optional, Set
2+
from typing import Any, Dict, Optional, Set
33

44
import cachelib
55

@@ -103,7 +103,8 @@ def get_link_hash(self, link: str) -> str:
103103
return ''
104104

105105
import hashlib
106-
return hashlib.sha1(self['user_form_salt'] + link).hexdigest()[:8]
106+
prepared_link: str = self['user_form_salt'] + link
107+
return hashlib.sha1(prepared_link.encode('utf-8')).hexdigest()[:8]
107108

108109
@property
109110
def num_unread_notifications(self) -> int:
@@ -170,7 +171,7 @@ def open_session(
170171
# Try to fetch session
171172
user = phpbb3.get_session(session_id=session_id)
172173
if user and 'username' in user:
173-
user['username'] = user['username'].decode('utf-8', 'ignore')
174+
user['username'] = user['username']
174175
if not user:
175176
# Use anonymous user
176177
user = phpbb3.get_user(

requirements.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
psycopg2>=2.9.11
2-
Flask>=3.1.2
3-
cachelib>=0.13.0
1+
psycopg2>=2.4.5
2+
Flask==3.1.2
3+
cachelib==0.13.0
44
setuptools>=80.9.0

requirements/dev-3.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
-r dev.txt
2-
mypy==0.660
2+
mypy>=1.19.1

tests/integration/base.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
DB_NAME = 'phpbb3_test'
1616

1717

18-
def setUpModule():
18+
def setUpModule() -> None:
1919
# type: () -> None
2020
_create_db()
2121
connection = _get_connection(DB_HOST, DB_USER, DB_NAME)
@@ -44,6 +44,7 @@ def setUp(self):
4444
'PASSWORD': '',
4545
'TABLE_PREFIX': 'phpbb_',
4646
},
47+
'SERVER_NAME': '127.0.0.1'
4748
})
4849
self.phpbb3 = flask_phpbb3.PhpBB3(self.app)
4950

@@ -164,7 +165,8 @@ def _create_db():
164165

165166
def _init_schema(connection):
166167
# type: (psycopg2.extensions.connection) -> None
167-
schema_sql = open('./tests/fixtures/postgres/schema.sql', 'r').read()
168+
with open('./tests/fixtures/postgres/schema.sql', 'r') as f:
169+
schema_sql = f.read()
168170
cursor_schema = connection.cursor() # type: psycopg2.extensions.cursor
169171
cursor_schema.execute(schema_sql)
170172
cursor_schema.close()

tests/integration/test_extension.py

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -76,56 +76,58 @@ def setUp(self):
7676

7777
def test_anonymous(self):
7878
# type: () -> None
79-
data = self.client.get('/').data
79+
data = self.client.get('/').get_data().decode('utf-8')
8080
self.assertEqual(data, '1,Anonymous')
8181

8282
def test_invalid_session(self):
8383
# type: () -> None
8484
base._create_user(self.cursor)
8585

86-
data = self.client.get('/?sid=123').data
86+
data = self.client.get('/?sid=123').get_data().decode('utf-8')
8787
self.assertEqual(data, '1,Anonymous')
8888

8989
def test_user_by_args(self):
9090
# type: () -> None
9191
base._create_user(self.cursor)
9292
base._create_session(self.cursor, self.session_id, 2)
9393

94-
data = self.client.get('/?sid=' + self.session_id).data
94+
data = self.client.get('/?sid=' + self.session_id)\
95+
.get_data()\
96+
.decode('utf-8')
9597
self.assertEqual(data, '2,test')
9698

9799
def test_user_by_cookie(self):
98100
# type: () -> None
99101
base._create_user(self.cursor)
100102
base._create_session(self.cursor, self.session_id, 2)
101103

102-
self.client.set_cookie('127.0.0.1', 'phpbb3_sid', self.session_id)
103-
data = self.client.get('/').data
104+
self.client.set_cookie('phpbb3_sid', self.session_id, domain='127.0.0.1')
105+
data = self.client.get('/').get_data().decode('utf-8')
104106
self.assertEqual(data, '2,test')
105-
self.client.delete_cookie('127.0.0.1', 'phpbb3_sid')
107+
self.client.delete_cookie('phpbb3_sid', domain='127.0.0.1')
106108

107109
def test_storage(self):
108110
# type: () -> None
109111
base._create_user(self.cursor)
110112
base._create_session(self.cursor, self.session_id, 2)
111113

112-
self.client.set_cookie('127.0.0.1', 'phpbb3_sid', self.session_id)
113-
data = self.client.get('/data').data
114+
self.client.set_cookie('phpbb3_sid', self.session_id, domain='127.0.0.1')
115+
data = self.client.get('/data').get_data().decode('utf-8')
114116
self.assertEqual(data, '')
115117

116118
self.client.get('/data/something')
117119

118-
data = self.client.get('/data').data
120+
data = self.client.get('/data').get_data().decode('utf-8')
119121
self.assertEqual(data, 'something')
120122

121123
def test_storage_invalid_id(self):
122124
# type: () -> None
123-
data = self.client.get('/data').data
125+
data = self.client.get('/data').get_data().decode('utf-8')
124126
self.assertEqual(data, '')
125127

126128
self.client.get('/data/something')
127129

128-
data = self.client.get('/data').data
130+
data = self.client.get('/data').get_data().decode('utf-8')
129131
self.assertEqual(data, '')
130132

131133
def test_privilege(self):
@@ -135,11 +137,11 @@ def test_privilege(self):
135137
base._create_privilege(self.cursor, 1, 'm_edit')
136138
base._grant_privilege(self.cursor, 2)
137139

138-
data = self.client.get('/priv_test').data
140+
data = self.client.get('/priv_test').get_data().decode('utf-8')
139141
self.assertEqual(data, 'False,False,False')
140142

141143
# We do a login via phpbb3 :P
142-
self.client.set_cookie('127.0.0.1', 'phpbb3_sid', self.session_id)
144+
self.client.set_cookie('phpbb3_sid', self.session_id, domain='127.0.0.1')
143145

144-
data = self.client.get('/priv_test').data
146+
data = self.client.get('/priv_test').get_data().decode('utf-8')
145147
self.assertEqual(data, 'True,False,True')

tests/unit/backends/test_psycopg2.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,9 @@ def test_empty(self, mocked_db):
117117
}
118118
)
119119

120-
self.assertListEqual(
121-
connection._functions.keys(),
122-
[
120+
self.assertSetEqual(
121+
set(connection._functions.keys()),
122+
set([
123123
'has_membership_resolve',
124124
'get_autologin',
125125
'get_session',
@@ -128,7 +128,7 @@ def test_empty(self, mocked_db):
128128
'get_unread_notifications_count',
129129
'get_user',
130130
'get_user_profile',
131-
]
131+
])
132132
)
133133

134134
def test_valid(self, mocked_db):
@@ -168,9 +168,9 @@ def test_empty(self, mocked_db):
168168
}
169169
)
170170

171-
self.assertListEqual(
172-
connection._functions.keys(),
173-
[
171+
self.assertSetEqual(
172+
set(connection._functions.keys()),
173+
set([
174174
'has_membership_resolve',
175175
'get_autologin',
176176
'get_session',
@@ -179,7 +179,7 @@ def test_empty(self, mocked_db):
179179
'get_unread_notifications_count',
180180
'get_user',
181181
'get_user_profile',
182-
]
182+
])
183183
)
184184

185185
def test_addition(self, mocked_db):
@@ -193,9 +193,9 @@ def test_addition(self, mocked_db):
193193
}
194194
)
195195

196-
self.assertListEqual(
197-
connection._functions.keys(),
198-
[
196+
self.assertSetEqual(
197+
set(connection._functions.keys()),
198+
set([
199199
'has_membership_resolve',
200200
'get_autologin',
201201
'get_session',
@@ -205,7 +205,7 @@ def test_addition(self, mocked_db):
205205
'some_custom_statement',
206206
'get_user',
207207
'get_user_profile',
208-
]
208+
])
209209
)
210210
self.assertEqual(
211211
connection._functions['some_custom_statement'],
@@ -223,9 +223,9 @@ def test_override(self, mocked_db):
223223
}
224224
)
225225

226-
self.assertListEqual(
227-
connection._functions.keys(),
228-
[
226+
self.assertSetEqual(
227+
set(connection._functions.keys()),
228+
set([
229229
'has_membership_resolve',
230230
'get_autologin',
231231
'get_session',
@@ -234,7 +234,7 @@ def test_override(self, mocked_db):
234234
'get_unread_notifications_count',
235235
'get_user',
236236
'get_user_profile',
237-
]
237+
])
238238
)
239239
self.assertEqual(
240240
connection._functions['get_autologin'],

tests/unit/test_sessions.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@ def test_get_link_hash(self):
9696
self.assertEqual(self.session.get_link_hash(some_link), '')
9797

9898
self.session['user_id'] = '3'
99-
salted_link = self.session['user_form_salt'] + some_link
100-
expected_value = hashlib.sha1(salted_link).hexdigest()[:8]
99+
salted_link: str = self.session['user_form_salt'] + some_link
100+
expected_value = hashlib.sha1(salted_link.encode('utf-8')).hexdigest()[:8]
101101
self.assertEqual(self.session.get_link_hash(some_link), expected_value)
102102

103103

0 commit comments

Comments
 (0)