|
18 | 18 | from securesystemslib.signer import SSlibSigner |
19 | 19 |
|
20 | 20 | from tests import utils |
21 | | -from tuf import ngclient |
22 | 21 | from tuf.api import exceptions |
23 | 22 | from tuf.api.metadata import ( |
24 | 23 | Metadata, |
|
28 | 27 | Targets, |
29 | 28 | Timestamp, |
30 | 29 | ) |
| 30 | +from tuf.ngclient import Updater, UpdaterConfig |
31 | 31 |
|
32 | 32 | logger = logging.getLogger(__name__) |
33 | 33 |
|
@@ -107,7 +107,7 @@ def setUp(self) -> None: |
107 | 107 | self.dl_dir = tempfile.mkdtemp(dir=self.tmp_test_dir) |
108 | 108 | # Creating a repository instance. The test cases will use this client |
109 | 109 | # updater to refresh metadata, fetch target files, etc. |
110 | | - self.updater = ngclient.Updater( |
| 110 | + self.updater = Updater( |
111 | 111 | metadata_dir=self.client_directory, |
112 | 112 | metadata_base_url=self.metadata_url, |
113 | 113 | target_dir=self.dl_dir, |
@@ -242,16 +242,14 @@ def test_implicit_refresh_with_only_local_root(self) -> None: |
242 | 242 |
|
243 | 243 | def test_both_target_urls_not_set(self) -> None: |
244 | 244 | # target_base_url = None and Updater._target_base_url = None |
245 | | - updater = ngclient.Updater( |
246 | | - self.client_directory, self.metadata_url, self.dl_dir |
247 | | - ) |
| 245 | + updater = Updater(self.client_directory, self.metadata_url, self.dl_dir) |
248 | 246 | info = TargetFile(1, {"sha256": ""}, "targetpath") |
249 | 247 | with self.assertRaises(ValueError): |
250 | 248 | updater.download_target(info) |
251 | 249 |
|
252 | 250 | def test_no_target_dir_no_filepath(self) -> None: |
253 | 251 | # filepath = None and Updater.target_dir = None |
254 | | - updater = ngclient.Updater(self.client_directory, self.metadata_url) |
| 252 | + updater = Updater(self.client_directory, self.metadata_url) |
255 | 253 | info = TargetFile(1, {"sha256": ""}, "targetpath") |
256 | 254 | with self.assertRaises(ValueError): |
257 | 255 | updater.find_cached_target(info) |
@@ -323,6 +321,27 @@ def test_non_existing_target_file(self) -> None: |
323 | 321 | with self.assertRaises(exceptions.DownloadHTTPError): |
324 | 322 | self.updater.download_target(info) |
325 | 323 |
|
| 324 | + def test_user_agent(self) -> None: |
| 325 | + # test default |
| 326 | + self.updater.refresh() |
| 327 | + session = next(iter(self.updater._fetcher._sessions.values())) |
| 328 | + ua = session.headers["User-Agent"] |
| 329 | + self.assertEqual(ua[:4], "tuf/") |
| 330 | + |
| 331 | + # test custom UA |
| 332 | + updater = Updater( |
| 333 | + self.client_directory, |
| 334 | + self.metadata_url, |
| 335 | + self.dl_dir, |
| 336 | + self.targets_url, |
| 337 | + config=UpdaterConfig(app_user_agent="MyApp/1.2.3"), |
| 338 | + ) |
| 339 | + updater.refresh() |
| 340 | + session = next(iter(updater._fetcher._sessions.values())) |
| 341 | + ua = session.headers["User-Agent"] |
| 342 | + |
| 343 | + self.assertEqual(ua[:16], "MyApp/1.2.3 tuf/") |
| 344 | + |
326 | 345 |
|
327 | 346 | if __name__ == "__main__": |
328 | 347 | utils.configure_test_logging(sys.argv) |
|
0 commit comments