@@ -1742,10 +1742,55 @@ def test_11__verify_metadata_file(self):
1742
1742
1743
1743
self .assertRaises (tuf .exceptions .InvalidMetadataJSONError ,
1744
1744
self .repository_updater ._verify_metadata_file ,
1745
- metadata_file_object , 'root' )
1745
+ metadata_file_object , 'root' , None )
1746
1746
1747
1747
1748
- def test_13__targets_of_role (self ):
1748
+ def test_12__validate_metadata_version (self ):
1749
+ # Test for valid metadata version with expected_version.
1750
+ self .repository_updater ._validate_metadata_version (
1751
+ expected_version = 1 , metadata_role = 'root' , version_downloaded = 1 )
1752
+
1753
+ # Test for valid metadata version without expected_version.
1754
+ self .repository_updater ._validate_metadata_version (
1755
+ expected_version = None , metadata_role = 'root' , version_downloaded = 1 )
1756
+
1757
+ # Test for expected_version different than version downloaded.
1758
+ self .assertRaises (tuf .exceptions .BadVersionNumberError ,
1759
+ self .repository_updater ._validate_metadata_version ,
1760
+ expected_version = 2 , metadata_role = 'root' , version_downloaded = 1 )
1761
+
1762
+ # Test without expected_version and version_downloaded < current_version.
1763
+ self .assertRaises (tuf .exceptions .ReplayedMetadataError ,
1764
+ self .repository_updater ._validate_metadata_version ,
1765
+ expected_version = None , metadata_role = 'root' , version_downloaded = 0 )
1766
+
1767
+
1768
+ def test_13__validate_spec_version (self ):
1769
+ # Tests when metadata spec ver is compatible with tuf.SPECIFICATION_VERSION
1770
+
1771
+ # metadata spec ver = tuf.SPECIFICATION_VERSION
1772
+ self .repository_updater ._validate_spec_version (tuf .SPECIFICATION_VERSION )
1773
+
1774
+ code_spec_ver_split = tuf .SPECIFICATION_VERSION .split ('.' )
1775
+ code_spec_major = int (code_spec_ver_split [0 ])
1776
+ code_spec_minor = int (code_spec_ver_split [1 ])
1777
+
1778
+ # metadata major ver is the same as tuf.SPECIFICATION_VERSION major ver
1779
+ # but metadata minor ver != tuf.SPECIFICATION_VERSION minor ver
1780
+ metadata_spec = [str (code_spec_major ), str (code_spec_minor + 1 ), '0' ]
1781
+ separator = '.'
1782
+ metadata_spec = separator .join (metadata_spec )
1783
+ self .repository_updater ._validate_spec_version (metadata_spec )
1784
+
1785
+ # Test when metadata spec ver is NOT compatible
1786
+ # with tuf.SPECIFICATION_VERSION
1787
+ metadata_spec = [str (code_spec_major + 1 ), str (code_spec_minor ), '0' ]
1788
+ metadata_spec = separator .join (metadata_spec )
1789
+ self .assertRaises (tuf .exceptions .UnsupportedSpecificationError ,
1790
+ self .repository_updater ._validate_spec_version , metadata_spec )
1791
+
1792
+
1793
+ def test_15__targets_of_role (self ):
1749
1794
# Test case where a list of targets is given. By default, the 'targets'
1750
1795
# parameter is None.
1751
1796
targets = [{'filepath' : 'file1.txt' , 'fileinfo' : {'length' : 1 , 'hashes' : {'sha256' : 'abc' }}}]
0 commit comments