"""Tests for the ``pip hash`` command""" def test_basic_hash(script, tmpdir): """Run 'pip hash' through its default behavior.""" expected = ('--hash=sha256:2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425' 'e73043362938b9824') result = script.pip('hash', _hello_file(tmpdir)) assert expected in str(result) def test_good_algo_option(script, tmpdir): """Make sure the -a option works.""" expected = ('--hash=sha512:9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caad' 'ae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e' '5c3adef46f73bcdec043') result = script.pip('hash', '-a', 'sha512', _hello_file(tmpdir)) assert expected in str(result) def test_bad_algo_option(script, tmpdir): """Make sure the -a option raises an error when given a bad operand.""" result = script.pip('hash', '-a', 'invalidname', _hello_file(tmpdir), expect_error=True) assert "invalid choice: 'invalidname'" in str(result) def _hello_file(tmpdir): """Return a temp file to hash containing "hello".""" file = tmpdir / 'hashable' file.write_text('hello') return file