Coverage for tests/test_pin_requirements.py: 100%

11 statements  

« prev     ^ index     » next       coverage.py v6.4.2, created at 2022-08-01 13:01 +0200

1from iso_freeze.lib import PyPackage 

2from iso_freeze.pin_requirements import build_reqirements_file_contents 

3 

4MOCKED_REQUIREMENTS = [ 

5 PyPackage(name="tomli", version="2.0.1", requested=True, hash="sha256:1234"), 

6 PyPackage(name="pyjokes", version="0.6.0", requested=False, hash="sha256:5678"), 

7] 

8 

9 

10def test_build_reqirements_file_contents_no_hashes() -> None: 

11 """Test if requirements file contents are correctly build.""" 

12 expected_output_no_hashes: list[str] = [ 

13 "# Top level requirements", 

14 "tomli==2.0.1", 

15 "# Dependencies of top level requirements", 

16 "pyjokes==0.6.0", 

17 ] 

18 actual_output_no_hashes: list[str] = build_reqirements_file_contents( 

19 requirements=MOCKED_REQUIREMENTS, hashes=False 

20 ) 

21 assert expected_output_no_hashes == actual_output_no_hashes 

22 

23 

24def test_build_reqirements_file_contents_with_hashes() -> None: 

25 """Test if requirements file contents are correctly build with hashes.""" 

26 expected_output_hashes = [ 

27 "# Top level requirements", 

28 "tomli==2.0.1 \\\n" " --hash=sha256:1234", 

29 "# Dependencies of top level requirements", 

30 "pyjokes==0.6.0 \\\n" " --hash=sha256:5678", 

31 ] 

32 actual_output_hashes: list[str] = build_reqirements_file_contents( 

33 requirements=MOCKED_REQUIREMENTS, hashes=True 

34 ) 

35 assert expected_output_hashes == actual_output_hashes