|
7 | 7 |
|
8 | 8 |
|
9 | 9 | DIST_PATH = Path(__file__).parent.parent / "fixtures" / "distributions"
|
| 10 | +TEST_FILE = "demo-0.1.0.tar.gz" |
10 | 11 |
|
11 | 12 |
|
12 | 13 | def test_file_dependency_wrong_path():
|
13 | 14 | with pytest.raises(ValueError):
|
14 |
| - FileDependency("demo", DIST_PATH / "demo-0.2.0.tar.gz") |
| 15 | + FileDependency("demo", DIST_PATH / TEST_FILE.replace("1", "2")) |
15 | 16 |
|
16 | 17 |
|
17 | 18 | def test_file_dependency_dir():
|
18 | 19 | with pytest.raises(ValueError):
|
19 | 20 | FileDependency("demo", DIST_PATH)
|
20 | 21 |
|
21 | 22 |
|
| 23 | +def test_default_hash(): |
| 24 | + path = DIST_PATH / TEST_FILE |
| 25 | + dep = FileDependency("demo", path) |
| 26 | + SHA_256 = "72e8531e49038c5f9c4a837b088bfcb8011f4a9f76335c8f0654df6ac539b3d6" |
| 27 | + assert dep.hash() == SHA_256 |
| 28 | + |
| 29 | + |
| 30 | +try: |
| 31 | + from hashlib import algorithms_guaranteed as ALGORITHMS_GUARANTEED |
| 32 | +except ImportError: |
| 33 | + ALGORITHMS_GUARANTEED = "md5,sha1,sha224,sha256,sha384,sha512".split(",") |
| 34 | + |
| 35 | + |
| 36 | +@pytest.mark.parametrize( |
| 37 | + "hash_name,expected", |
| 38 | + [ |
| 39 | + (hash_name, value) |
| 40 | + for hash_name, value in [ |
| 41 | + ("sha224", "972d02f36539a98599aed0566bc8aaf3e6701f4e895dd797d8f5248e"), |
| 42 | + ( |
| 43 | + "sha3_512", |
| 44 | + "c04ee109ae52d6440445e24dbd6d244a1d0f0289ef79cb7ba9bc3c139c0237169af9a8f61cd1cf4fc17f853ddf84f97c475ac5bb6c91a4aff0b825b884d4896c", |
| 45 | + ), |
| 46 | + ( |
| 47 | + "blake2s", |
| 48 | + "c336ecbc9d867c9d860accfba4c3723c51c4b5c47a1e0a955e1c8df499e36741", |
| 49 | + ), |
| 50 | + ( |
| 51 | + "sha3_384", |
| 52 | + "d4abb2459941369aabf8880c5287b7eeb80678e14f13c71b9ecf64c772029dc3f93939590bea9ecdb51a1d1a74fefc5a", |
| 53 | + ), |
| 54 | + ( |
| 55 | + "blake2b", |
| 56 | + "48e70abac547ab38e2330e6e6743a0c0f6274dcaa6df2c98135a78a9dd5b04a072d551fc3851b34da03eb0bf50dd71c7f32a8c36956e99fd6c66491bc7844800", |
| 57 | + ), |
| 58 | + ( |
| 59 | + "sha256", |
| 60 | + "72e8531e49038c5f9c4a837b088bfcb8011f4a9f76335c8f0654df6ac539b3d6", |
| 61 | + ), |
| 62 | + ( |
| 63 | + "sha512", |
| 64 | + "e08a00a4b86358e49a318e7e3ba7a3d2fabdd17a2fef95559a0af681ea07ab1296b0b8e11e645297da296290661dc07ae3c8f74eab66bd18a80dce0c0ccb355b", |
| 65 | + ), |
| 66 | + ( |
| 67 | + "sha384", |
| 68 | + "aa3144e28c6700a83247e8ec8711af5d3f5f75997990d48ec41e66bd275b3d0e19ee6f2fe525a358f874aa717afd06a9", |
| 69 | + ), |
| 70 | + ("sha3_224", "64bfc6e4125b4c6d67fd88ad1c7d1b5c4dc11a1970e433cd576c91d4"), |
| 71 | + ("sha1", "4c057579005ac3e68e951a11ffdc4b27c6ae16af"), |
| 72 | + ( |
| 73 | + "sha3_256", |
| 74 | + "ba3d2a964b0680b6dc9565a03952e29c294c785d5a2307d3e2d785d73b75ed7e", |
| 75 | + ), |
| 76 | + ] |
| 77 | + if hash_name in ALGORITHMS_GUARANTEED |
| 78 | + ], |
| 79 | +) |
| 80 | +def test_guaranteed_hash(hash_name, expected): |
| 81 | + path = DIST_PATH / TEST_FILE |
| 82 | + dep = FileDependency("demo", path) |
| 83 | + assert dep.hash(hash_name) == expected |
| 84 | + |
| 85 | + |
22 | 86 | def _test_file_dependency_pep_508(
|
23 | 87 | mocker, name, path, pep_508_input, pep_508_output=None
|
24 | 88 | ):
|
|
0 commit comments