Skip to content

Commit e6907b9

Browse files
authored
nose -> pytest (#76)
1 parent 831b6bf commit e6907b9

File tree

7 files changed

+58
-61
lines changed

7 files changed

+58
-61
lines changed

python/.coveragerc

-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,2 @@
11
[report]
2-
omit =
3-
*noseplugin*
42
show_missing = true

python/.noserc

-12
This file was deleted.

python/http_ece/tests/test_ece.py

+37-37
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from cryptography.hazmat.primitives.asymmetric import ec
88
from cryptography.hazmat.primitives.serialization import Encoding, PublicFormat
99

10-
from nose.tools import eq_, assert_raises
10+
from pytest import raises
1111

1212
import http_ece as ece
1313
from http_ece import ECEException
@@ -59,7 +59,7 @@ def setUp(self):
5959
self.m_salt = os.urandom(16)
6060

6161
def test_derive_key_invalid_mode(self):
62-
with assert_raises(ECEException) as ex:
62+
with raises(ECEException) as ex:
6363
ece.derive_key(
6464
"invalid",
6565
version="aes128gcm",
@@ -70,10 +70,10 @@ def test_derive_key_invalid_mode(self):
7070
auth_secret=None,
7171
keyid="valid",
7272
)
73-
eq_(ex.exception.message, "unknown 'mode' specified: invalid")
73+
assert ex.value.message == "unknown 'mode' specified: invalid"
7474

7575
def test_derive_key_invalid_salt(self):
76-
with assert_raises(ECEException) as ex:
76+
with raises(ECEException) as ex:
7777
ece.derive_key(
7878
"encrypt",
7979
version="aes128gcm",
@@ -84,10 +84,10 @@ def test_derive_key_invalid_salt(self):
8484
auth_secret=None,
8585
keyid="valid",
8686
)
87-
eq_(ex.exception.message, "'salt' must be a 16 octet value")
87+
assert ex.value.message == "'salt' must be a 16 octet value"
8888

8989
def test_derive_key_invalid_version(self):
90-
with assert_raises(ECEException) as ex:
90+
with raises(ECEException) as ex:
9191
ece.derive_key(
9292
"encrypt",
9393
version="invalid",
@@ -98,10 +98,10 @@ def test_derive_key_invalid_version(self):
9898
auth_secret=None,
9999
keyid="valid",
100100
)
101-
eq_(ex.exception.message, "Invalid version")
101+
assert ex.value.message == "Invalid version"
102102

103103
def test_derive_key_no_private_key(self):
104-
with assert_raises(ECEException) as ex:
104+
with raises(ECEException) as ex:
105105
ece.derive_key(
106106
"encrypt",
107107
version="aes128gcm",
@@ -112,10 +112,10 @@ def test_derive_key_no_private_key(self):
112112
auth_secret=None,
113113
keyid="valid",
114114
)
115-
eq_(ex.exception.message, "DH requires a private_key")
115+
assert ex.value.message == "DH requires a private_key"
116116

117117
def test_derive_key_no_secret(self):
118-
with assert_raises(ECEException) as ex:
118+
with raises(ECEException) as ex:
119119
ece.derive_key(
120120
"encrypt",
121121
version="aes128gcm",
@@ -126,12 +126,12 @@ def test_derive_key_no_secret(self):
126126
auth_secret=None,
127127
keyid="valid",
128128
)
129-
eq_(ex.exception.message, "unable to determine the secret")
129+
assert ex.value.message == "unable to determine the secret"
130130

131131
def test_iv_bad_counter(self):
132-
with assert_raises(ECEException) as ex:
132+
with raises(ECEException) as ex:
133133
ece.iv(os.urandom(8), pow(2, 64) + 1)
134-
eq_(ex.exception.message, "Counter too big")
134+
assert ex.value.message == "Counter too big"
135135

136136

137137
class TestEceChecking(unittest.TestCase):
@@ -144,76 +144,76 @@ def setUp(self):
144144
self.m_header += struct.pack("!L", 32) + b"\0"
145145

146146
def test_encrypt_small_rs(self):
147-
with assert_raises(ECEException) as ex:
147+
with raises(ECEException) as ex:
148148
ece.encrypt(
149149
self.m_input,
150150
version="aes128gcm",
151151
key=self.m_key,
152152
rs=1,
153153
)
154-
eq_(ex.exception.message, "Record size too small")
154+
assert ex.value.message == "Record size too small"
155155

156156
def test_decrypt_small_rs(self):
157157
header = os.urandom(16) + struct.pack("!L", 2) + b"\0"
158-
with assert_raises(ECEException) as ex:
158+
with raises(ECEException) as ex:
159159
ece.decrypt(
160160
header + self.m_input,
161161
version="aes128gcm",
162162
key=self.m_key,
163163
rs=1,
164164
)
165-
eq_(ex.exception.message, "Record size too small")
165+
assert ex.value.message == "Record size too small"
166166

167167
def test_encrypt_bad_version(self):
168-
with assert_raises(ECEException) as ex:
168+
with raises(ECEException) as ex:
169169
ece.encrypt(
170170
self.m_input,
171171
version="bogus",
172172
key=self.m_key,
173173
)
174-
eq_(ex.exception.message, "Invalid version")
174+
assert ex.value.message == "Invalid version"
175175

176176
def test_decrypt_bad_version(self):
177-
with assert_raises(ECEException) as ex:
177+
with raises(ECEException) as ex:
178178
ece.decrypt(
179179
self.m_input,
180180
version="bogus",
181181
key=self.m_key,
182182
)
183-
eq_(ex.exception.message, "Invalid version")
183+
assert ex.value.message == "Invalid version"
184184

185185
def test_decrypt_bad_header(self):
186-
with assert_raises(ECEException) as ex:
186+
with raises(ECEException) as ex:
187187
ece.decrypt(
188188
os.urandom(4),
189189
version="aes128gcm",
190190
key=self.m_key,
191191
)
192-
eq_(ex.exception.message, "Could not parse the content header")
192+
assert ex.value.message == "Could not parse the content header"
193193

194194
def test_encrypt_long_keyid(self):
195-
with assert_raises(ECEException) as ex:
195+
with raises(ECEException) as ex:
196196
ece.encrypt(
197197
self.m_input,
198198
version="aes128gcm",
199199
key=self.m_key,
200200
keyid=b64e(os.urandom(192)), # 256 bytes
201201
)
202-
eq_(ex.exception.message, "keyid is too long")
202+
assert ex.value.message == "keyid is too long"
203203

204204
def test_overlong_padding(self):
205-
with assert_raises(ECEException) as ex:
205+
with raises(ECEException) as ex:
206206
ece.decrypt(
207207
self.m_header + b"\xbb\xc7\xb9ev\x0b\xf0f+\x93\xf4"
208208
b"\xe5\xd6\x94\xb7e\xf0\xcd\x15\x9b(\x01\xa5",
209209
version="aes128gcm",
210210
key=b"d\xc7\x0ed\xa7%U\x14Q\xf2\x08\xdf\xba\xa0\xb9r",
211211
keyid=b64e(os.urandom(192)), # 256 bytes
212212
)
213-
eq_(ex.exception.message, "all zero record plaintext")
213+
assert ex.value.message == "all zero record plaintext"
214214

215215
def test_bad_early_delimiter(self):
216-
with assert_raises(ECEException) as ex:
216+
with raises(ECEException) as ex:
217217
ece.decrypt(
218218
self.m_header + b"\xb9\xc7\xb9ev\x0b\xf0\x9eB\xb1\x08C8u"
219219
b"\xa3\x06\xc9x\x06\n\xfc|}\xe9R\x85\x91"
@@ -224,29 +224,29 @@ def test_bad_early_delimiter(self):
224224
key=b"d\xc7\x0ed\xa7%U\x14Q\xf2\x08\xdf\xba\xa0\xb9r",
225225
keyid=b64e(os.urandom(192)), # 256 bytes
226226
)
227-
eq_(ex.exception.message, "record delimiter != 1")
227+
assert ex.value.message == "record delimiter != 1"
228228

229229
def test_bad_final_delimiter(self):
230-
with assert_raises(ECEException) as ex:
230+
with raises(ECEException) as ex:
231231
ece.decrypt(
232232
self.m_header + b"\xba\xc7\xb9ev\x0b\xf0\x9eB\xb1\x08Ji"
233233
b"\xe4P\x1b\x8dI\xdb\xc6y#MG\xc2W\x16",
234234
version="aes128gcm",
235235
key=b"d\xc7\x0ed\xa7%U\x14Q\xf2\x08\xdf\xba\xa0\xb9r",
236236
keyid=b64e(os.urandom(192)), # 256 bytes
237237
)
238-
eq_(ex.exception.message, "last record delimiter != 2")
238+
assert ex.value.message == "last record delimiter != 2"
239239

240240
def test_damage(self):
241-
with assert_raises(ECEException) as ex:
241+
with raises(ECEException) as ex:
242242
ece.decrypt(
243243
self.m_header + b"\xbb\xc6\xb1\x1dF:~\x0f\x07+\xbe\xaaD"
244244
b"\xe0\xd6.K\xe5\xf9]%\xe3\x86q\xe0}",
245245
version="aes128gcm",
246246
key=b"d\xc7\x0ed\xa7%U\x14Q\xf2\x08\xdf\xba\xa0\xb9r",
247247
keyid=b64e(os.urandom(192)), # 256 bytes
248248
)
249-
eq_(ex.exception.message, "Decryption error: InvalidTag()")
249+
assert ex.value.message == "Decryption error: InvalidTag()"
250250

251251

252252
class TestEceIntegration(unittest.TestCase):
@@ -319,7 +319,7 @@ def encrypt_decrypt(self, input, encrypt_params, decrypt_params=None, version=No
319319
version=version,
320320
)
321321
logbuf("Decrypted", decrypted)
322-
eq_(input, decrypted)
322+
assert input == decrypted
323323

324324
def use_explicit_key(self, version=None):
325325
params = {
@@ -350,9 +350,9 @@ def detect_truncation(self, version):
350350
chunk = encrypted[0 : 21 + rs]
351351
else:
352352
chunk = encrypted[0 : rs + 16]
353-
with assert_raises(ECEException) as ex:
353+
with raises(ECEException) as ex:
354354
ece.decrypt(chunk, salt=salt, key=key, rs=rs, version=version)
355-
eq_(ex.exception.message, "Message truncated")
355+
assert ex.value.message == "Message truncated"
356356

357357
def use_dh(self, version):
358358
def pubbytes(k):
@@ -487,7 +487,7 @@ def _run(self, mode):
487487
rs=p.get("rs", 4096),
488488
version=p["version"],
489489
)
490-
eq_(b64d(data[outp]), result)
490+
assert b64d(data[outp]) == result
491491

492492
def test_decrypt(self):
493493
self._run("decrypt")

python/pytest.ini

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[pytest]
2+
addopts= --verbose --verbosity=1 --cov=http_ece
3+
log_format = %(asctime)s,%(msecs)03d %(name)s: %(levelname)s: %(message)s
4+
log_file_date_format = %H:%M:%S

python/setup.cfg

-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,2 @@
11
[bdist_wheel]
22
universal=1
3-
[nosetests]
4-
config=.noserc

python/setup.py

+8-3
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,21 @@
2424
"Programming Language :: Python :: 3.4",
2525
"Programming Language :: Python :: 3.5",
2626
"Programming Language :: Python :: 3.6",
27+
"Programming Language :: Python :: 3.7",
28+
"Programming Language :: Python :: 3.8",
29+
"Programming Language :: Python :: 3.9",
30+
"Programming Language :: Python :: 3.10",
31+
"Programming Language :: Python :: 3.11",
32+
"Programming Language :: Python :: 3.12",
2733
],
2834
keywords="crypto http",
2935
install_requires=[
3036
"cryptography>=2.5",
3137
],
3238
tests_require=[
33-
"nose",
34-
"coverage",
39+
"pytest",
40+
"pytest-cov",
3541
],
36-
test_suite="nose.collector",
3742
url="https://github.com/martinthomson/encrypted-content-encoding",
3843
license="MIT",
3944
)

python/tox.ini

+9-5
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,22 @@
44
# and then run "tox" from this directory.
55

66
[tox]
7-
envlist = py27,py34,py35
7+
envlist = py27,py34,py35,py38,py39,py310,py311,py312
88

99
[testenv]
1010
basepython =
1111
py27: python2.7
1212
py34: python3.4
1313
py35: python3.5
14+
py38: python3.8
15+
py39: python3.9
16+
py310: python3.10
17+
py311: python3.11
18+
py312: python3.12
1419
commands =
15-
nosetests \
20+
pytest \
1621
[]
1722
deps =
18-
nose
19-
mock
20-
coverage
23+
pytest
24+
pytest-cov
2125
flake8

0 commit comments

Comments
 (0)