@@ -38,13 +38,19 @@ def tearDown(self) -> None:
3838
3939 def test_multi_sign_files_generation (self ):
4040 self .__prepare_artifacts ()
41- failed , generated = generate_radas_sign (self .__repo_dir , self .__sign_result_file )
41+ failed , generated = generate_radas_sign (
42+ self .__repo_dir , self .__root , self .__sign_result_file
43+ )
4244 self .assertEqual (failed , [])
4345 expected_asc1 = os .path .join (self .__repo_dir , "foo/bar/1.0/foo-bar-1.0.jar.asc" )
4446 expected_asc2 = os .path .join (self .__repo_dir , "foo/bar/2.0/foo-bar-2.0.jar.asc" )
45- self .assertEqual (len (generated ), 2 )
47+ expected_asc3 = os .path .join (self .__repo_dir , "foo/bar/3.0/foo-bar-3.0.jar.asc" )
48+ expected_asc4 = os .path .join (self .__repo_dir , "foo/bar/4.0/foo-bar-4.0.jar.asc" )
49+ self .assertEqual (len (generated ), 4 )
4650 self .assertIn (expected_asc1 , generated )
4751 self .assertIn (expected_asc2 , generated )
52+ self .assertIn (expected_asc3 , generated )
53+ self .assertIn (expected_asc4 , generated )
4854
4955 with open (expected_asc1 ) as f :
5056 content1 = f .read ()
@@ -54,7 +60,9 @@ def test_multi_sign_files_generation(self):
5460 self .assertIn ("signature2@hash" , content2 )
5561
5662 def test_sign_files_generation_with_missing_artifacts (self ):
57- failed , generated = generate_radas_sign (self .__repo_dir , self .__sign_result_file )
63+ failed , generated = generate_radas_sign (
64+ self .__repo_dir , self .__root , self .__sign_result_file
65+ )
5866 self .assertEqual (failed , [])
5967 expected_asc1 = os .path .join (self .__repo_dir , "foo/bar/1.0/foo-bar-1.0.jar.asc" )
6068 expected_asc2 = os .path .join (self .__repo_dir , "foo/bar/2.0/foo-bar-2.0.jar.asc" )
@@ -70,12 +78,16 @@ def test_sign_files_generation_with_failure(self):
7078 # simulate expected_asc1 can not be written properly
7179 real_overwrite = overwrite_file
7280 with mock .patch ("charon.pkgs.radas_sign.files.overwrite_file" ) as mock_overwrite :
81+
7382 def side_effect (path , content ):
7483 if path == expected_asc1 :
7584 raise IOError ("mock write error" )
7685 return real_overwrite (path , content )
86+
7787 mock_overwrite .side_effect = side_effect
78- failed , generated = generate_radas_sign (self .__repo_dir , self .__sign_result_file )
88+ failed , generated = generate_radas_sign (
89+ self .__repo_dir , self .__root , self .__sign_result_file
90+ )
7991
8092 self .assertEqual (len (failed ), 1 )
8193 self .assertNotIn (expected_asc1 , generated )
@@ -86,7 +98,9 @@ def test_sign_files_generation_with_missing_result(self):
8698 # simulate missing pull result by removing the sign result file loc
8799 shutil .rmtree (self .__sign_result_loc )
88100
89- failed , generated = generate_radas_sign (self .__repo_dir , self .__sign_result_file )
101+ failed , generated = generate_radas_sign (
102+ self .__repo_dir , self .__root , self .__sign_result_file
103+ )
90104 self .assertEqual (failed , [])
91105 expected_asc1 = os .path .join (self .__repo_dir , "foo/bar/1.0/foo-bar-1.0.jar.asc" )
92106 expected_asc2 = os .path .join (self .__repo_dir , "foo/bar/2.0/foo-bar-2.0.jar.asc" )
@@ -97,6 +111,7 @@ def test_sign_files_generation_with_missing_result(self):
97111 def __prepare_sign_result_file (self ):
98112 self .__sign_result_loc = tempfile .mkdtemp ()
99113 self .__sign_result_file = os .path .join (self .__sign_result_loc , "result.json" )
114+ self .__root = "maven-repository"
100115 self .__repo_dir = os .path .join (tempfile .mkdtemp (), "maven-repository" )
101116 data = {
102117 "request-id" : "request-id" ,
@@ -120,20 +135,46 @@ def __prepare_sign_result_file(self):
120135 ),
121136 "checksum" : "sha256:sha256-content" ,
122137 },
138+ {
139+ "file" : "README.md" ,
140+ "signature" : (
141+ "-----BEGIN PGP SIGNATURE-----"
142+ "signature2@hash"
143+ "-----END PGP SIGNATURE-----"
144+ ),
145+ "checksum" : "sha256:sha256-content" ,
146+ },
147+ {
148+ "file" : "radas-tmp/maven-repository/foo/bar/3.0/foo-bar-3.0.jar" ,
149+ "signature" : (
150+ "-----BEGIN PGP SIGNATURE-----"
151+ "signature2@hash"
152+ "-----END PGP SIGNATURE-----"
153+ ),
154+ "checksum" : "sha256:sha256-content" ,
155+ },
156+ {
157+ "file" : "foo/bar/4.0/foo-bar-4.0.jar" ,
158+ "signature" : (
159+ "-----BEGIN PGP SIGNATURE-----"
160+ "signature2@hash"
161+ "-----END PGP SIGNATURE-----"
162+ ),
163+ "checksum" : "sha256:sha256-content" ,
164+ },
123165 ],
124166 }
125167 json_str = json .dumps (data , indent = 2 )
126168 overwrite_file (self .__sign_result_file , json_str )
127169
128170 def __prepare_artifacts (self ):
129- os .makedirs (os .path .join (self .__repo_dir , "foo/bar/1.0" ), exist_ok = True )
130- os .makedirs (os .path .join (self .__repo_dir , "foo/bar/2.0" ), exist_ok = True )
131- artifact1 = os .path .join (self .__repo_dir , "foo/bar/1.0/foo-bar-1.0.jar" )
132- artifact2 = os .path .join (self .__repo_dir , "foo/bar/2.0/foo-bar-2.0.jar" )
133- with open (artifact1 , "w" ) as f :
134- f .write ("dummy1" )
135- with open (artifact2 , "w" ) as f :
136- f .write ("dummy2" )
171+ for version in ["1.0" , "2.0" , "3.0" , "4.0" ]:
172+ dir_path = os .path .join (self .__repo_dir , f"foo/bar/{ version } " )
173+ os .makedirs (dir_path , exist_ok = True )
174+
175+ artifact_path = os .path .join (dir_path , f"foo-bar-{ version } .jar" )
176+ with open (artifact_path , "w" ) as f :
177+ f .write ("dummy" )
137178
138179 def __clear_sign_result_file (self ):
139180 if os .path .exists (self .__sign_result_loc ):
0 commit comments