/ tests / test_options.py
test_options.py
   1  """Tests for the `options` module."""
   2  
   3  from __future__ import annotations
   4  
   5  from aria2p import API, Download, Options
   6  
   7  
   8  # Test general methods
   9  class TestGeneralMethods:
  10      def setup_method(self) -> None:
  11          self.api = API()
  12  
  13      def test_init_method(self) -> None:
  14          assert Options(self.api, {})
  15  
  16      def test_are_global_method(self) -> None:
  17          options = Options(self.api, {})
  18          assert options.are_global
  19  
  20      def test_are_not_global(self) -> None:
  21          options = Options(self.api, {}, Download(self.api, {}))
  22          assert not options.are_global
  23  
  24      def test_get_struct_method(self) -> None:
  25          options = Options(self.api, {"0": 1})
  26          assert options.get_struct() == {"0": 1}
  27  
  28      def test_get_method(self) -> None:
  29          options = Options(self.api, {"0": 1})
  30          assert options.get("0") == 1
  31  
  32      def test_set_method(self) -> None:
  33          self.api.set_global_options = lambda x: True  # type: ignore[assignment]
  34          options = Options(self.api, {})
  35          assert options.set("0", 0)
  36          assert options.get("0") == "0"
  37  
  38      def test_set_method_failure(self) -> None:
  39          self.api.set_global_options = lambda x: False  # type: ignore[assignment]
  40          options = Options(self.api, {"0": "0"})
  41          assert not options.set("0", "1")
  42          assert not options.set("1", "1")
  43          assert options.get("0") == "0"
  44          assert options.get("1") is None
  45  
  46      def test_set_method_for_download(self) -> None:
  47          self.api.set_options = lambda x, y: [True]  # type: ignore[assignment]
  48          options = Options(self.api, {}, Download(self.api, {}))
  49          assert options.set("0", 0)
  50          assert options.get("0") == "0"
  51  
  52  
  53  # Test actual options
  54  class TestOptionsProperties:
  55      def setup_method(self) -> None:
  56          self.api = API()
  57          self.api.set_global_options = lambda x: True  # type: ignore[assignment]
  58          self.options = Options(self.api, {})
  59  
  60      def test_all_proxy_properties(self) -> None:
  61          assert self.options.all_proxy is None
  62          value = "http://user:password@host:2000"
  63          self.options.all_proxy = value
  64          assert self.options.all_proxy == value
  65  
  66      def test_all_proxy_passwd_properties(self) -> None:
  67          assert self.options.all_proxy_passwd is None
  68          value = ""
  69          self.options.all_proxy_passwd = value
  70          assert self.options.all_proxy_passwd == value
  71  
  72      def test_all_proxy_user_properties(self) -> None:
  73          assert self.options.all_proxy_user is None
  74          value = ""
  75          self.options.all_proxy_user = value
  76          assert self.options.all_proxy_user == value
  77  
  78      def test_allow_overwrite_properties(self) -> None:
  79          assert self.options.allow_overwrite is None
  80          value = ""
  81          self.options.allow_overwrite = value
  82          assert self.options.allow_overwrite == value
  83  
  84      def test_allow_piece_length_change_properties(self) -> None:
  85          assert self.options.allow_piece_length_change is None
  86          value = ""
  87          self.options.allow_piece_length_change = value
  88          assert self.options.allow_piece_length_change == value
  89  
  90      def test_always_resume_properties(self) -> None:
  91          assert self.options.always_resume is None
  92          value = ""
  93          self.options.always_resume = value
  94          assert self.options.always_resume == value
  95  
  96      def test_async_dns_properties(self) -> None:
  97          assert self.options.async_dns is None
  98          value = ""
  99          self.options.async_dns = value
 100          assert self.options.async_dns == value
 101  
 102      def test_async_dns_server_properties(self) -> None:
 103          assert self.options.async_dns_server is None
 104          value = ""
 105          self.options.async_dns_server = value
 106          assert self.options.async_dns_server == value
 107  
 108      def test_auto_file_renaming_properties(self) -> None:
 109          assert self.options.auto_file_renaming is None
 110          value = ""
 111          self.options.auto_file_renaming = value
 112          assert self.options.auto_file_renaming == value
 113  
 114      def test_auto_save_interval_properties(self) -> None:
 115          assert self.options.auto_save_interval is None
 116          value = 60
 117          self.options.auto_save_interval = value
 118          assert self.options.auto_save_interval == value
 119  
 120      def test_bt_detach_seed_only_properties(self) -> None:
 121          assert self.options.bt_detach_seed_only is None
 122          value = ""
 123          self.options.bt_detach_seed_only = value
 124          assert self.options.bt_detach_seed_only == value
 125  
 126      def test_bt_enable_hook_after_hash_check_properties(self) -> None:
 127          assert self.options.bt_enable_hook_after_hash_check is None
 128          value = ""
 129          self.options.bt_enable_hook_after_hash_check = value
 130          assert self.options.bt_enable_hook_after_hash_check == value
 131  
 132      def test_bt_enable_lpd_properties(self) -> None:
 133          assert self.options.bt_enable_lpd is None
 134          value = ""
 135          self.options.bt_enable_lpd = value
 136          assert self.options.bt_enable_lpd == value
 137  
 138      def test_bt_exclude_tracker_properties(self) -> None:
 139          assert self.options.bt_exclude_tracker is None
 140          value = ""
 141          self.options.bt_exclude_tracker = value
 142          assert self.options.bt_exclude_tracker == value
 143  
 144      def test_bt_external_ip_properties(self) -> None:
 145          assert self.options.bt_external_ip is None
 146          value = ""
 147          self.options.bt_external_ip = value
 148          assert self.options.bt_external_ip == value
 149  
 150      def test_bt_force_encryption_properties(self) -> None:
 151          assert self.options.bt_force_encryption is None
 152          value = ""
 153          self.options.bt_force_encryption = value
 154          assert self.options.bt_force_encryption == value
 155  
 156      def test_bt_hash_check_seed_properties(self) -> None:
 157          assert self.options.bt_hash_check_seed is None
 158          value = ""
 159          self.options.bt_hash_check_seed = value
 160          assert self.options.bt_hash_check_seed == value
 161  
 162      def test_bt_lpd_interface_properties(self) -> None:
 163          assert self.options.bt_lpd_interface is None
 164          value = ""
 165          self.options.bt_lpd_interface = value
 166          assert self.options.bt_lpd_interface == value
 167  
 168      def test_bt_max_open_files_properties(self) -> None:
 169          assert self.options.bt_max_open_files is None
 170          value = 100
 171          self.options.bt_max_open_files = value
 172          assert self.options.bt_max_open_files == value
 173  
 174      def test_bt_max_peers_properties(self) -> None:
 175          assert self.options.bt_max_peers is None
 176          value = 50
 177          self.options.bt_max_peers = value
 178          assert self.options.bt_max_peers == value
 179  
 180      def test_bt_metadata_only_properties(self) -> None:
 181          assert self.options.bt_metadata_only is None
 182          value = ""
 183          self.options.bt_metadata_only = value
 184          assert self.options.bt_metadata_only == value
 185  
 186      def test_bt_min_crypto_level_properties(self) -> None:
 187          assert self.options.bt_min_crypto_level is None
 188          value = ""
 189          self.options.bt_min_crypto_level = value
 190          assert self.options.bt_min_crypto_level == value
 191  
 192      def test_bt_prioritize_piece_properties(self) -> None:
 193          assert self.options.bt_prioritize_piece is None
 194          value = ""
 195          self.options.bt_prioritize_piece = value
 196          assert self.options.bt_prioritize_piece == value
 197  
 198      def test_bt_remove_unselected_file_properties(self) -> None:
 199          assert self.options.bt_remove_unselected_file is None
 200          value = ""
 201          self.options.bt_remove_unselected_file = value
 202          assert self.options.bt_remove_unselected_file == value
 203  
 204      def test_bt_request_peer_speed_limit_properties(self) -> None:
 205          assert self.options.bt_request_peer_speed_limit is None
 206          value = 256
 207          self.options.bt_request_peer_speed_limit = value
 208          assert self.options.bt_request_peer_speed_limit == value
 209  
 210      def test_bt_require_crypto_properties(self) -> None:
 211          assert self.options.bt_require_crypto is None
 212          value = ""
 213          self.options.bt_require_crypto = value
 214          assert self.options.bt_require_crypto == value
 215  
 216      def test_bt_save_metadata_properties(self) -> None:
 217          assert self.options.bt_save_metadata is None
 218          value = ""
 219          self.options.bt_save_metadata = value
 220          assert self.options.bt_save_metadata == value
 221  
 222      def test_bt_seed_unverified_properties(self) -> None:
 223          assert self.options.bt_seed_unverified is None
 224          value = ""
 225          self.options.bt_seed_unverified = value
 226          assert self.options.bt_seed_unverified == value
 227  
 228      def test_bt_stop_timeout_properties(self) -> None:
 229          assert self.options.bt_stop_timeout is None
 230          value = 60
 231          self.options.bt_stop_timeout = value
 232          assert self.options.bt_stop_timeout == value
 233  
 234      def test_bt_tracker_properties(self) -> None:
 235          assert self.options.bt_tracker is None
 236          value = ""
 237          self.options.bt_tracker = value
 238          assert self.options.bt_tracker == value
 239  
 240      def test_bt_tracker_connect_timeout_properties(self) -> None:
 241          assert self.options.bt_tracker_connect_timeout is None
 242          value = 180
 243          self.options.bt_tracker_connect_timeout = value
 244          assert self.options.bt_tracker_connect_timeout == value
 245  
 246      def test_bt_tracker_interval_properties(self) -> None:
 247          assert self.options.bt_tracker_interval is None
 248          value = 60
 249          self.options.bt_tracker_interval = value
 250          assert self.options.bt_tracker_interval == value
 251  
 252      def test_bt_tracker_timeout_properties(self) -> None:
 253          assert self.options.bt_tracker_timeout is None
 254          value = 60
 255          self.options.bt_tracker_timeout = value
 256          assert self.options.bt_tracker_timeout == value
 257  
 258      def test_ca_certificate_properties(self) -> None:
 259          assert self.options.ca_certificate is None
 260          value = ""
 261          self.options.ca_certificate = value
 262          assert self.options.ca_certificate == value
 263  
 264      def test_certificate_properties(self) -> None:
 265          assert self.options.certificate is None
 266          value = ""
 267          self.options.certificate = value
 268          assert self.options.certificate == value
 269  
 270      def test_check_certificate_properties(self) -> None:
 271          assert self.options.check_certificate is None
 272          value = ""
 273          self.options.check_certificate = value
 274          assert self.options.check_certificate == value
 275  
 276      def test_check_integrity_properties(self) -> None:
 277          assert self.options.check_integrity is None
 278          value = ""
 279          self.options.check_integrity = value
 280          assert self.options.check_integrity == value
 281  
 282      def test_checksum_properties(self) -> None:
 283          assert self.options.checksum is None
 284          value = ""
 285          self.options.checksum = value
 286          assert self.options.checksum == value
 287  
 288      def test_conditional_get_properties(self) -> None:
 289          assert self.options.conditional_get is None
 290          value = ""
 291          self.options.conditional_get = value
 292          assert self.options.conditional_get == value
 293  
 294      def test_conf_path_properties(self) -> None:
 295          assert self.options.conf_path is None
 296          value = ""
 297          self.options.conf_path = value
 298          assert self.options.conf_path == value
 299  
 300      def test_connect_timeout_properties(self) -> None:
 301          assert self.options.connect_timeout is None
 302          value = 60
 303          self.options.connect_timeout = value
 304          assert self.options.connect_timeout == value
 305  
 306      def test_console_log_level_properties(self) -> None:
 307          assert self.options.console_log_level is None
 308          value = ""
 309          self.options.console_log_level = value
 310          assert self.options.console_log_level == value
 311  
 312      def test_continue_downloads_properties(self) -> None:
 313          assert self.options.continue_downloads is None
 314          value = ""
 315          self.options.continue_downloads = value
 316          assert self.options.continue_downloads == value
 317  
 318      def test_daemon_properties(self) -> None:
 319          assert self.options.daemon is None
 320          value = ""
 321          self.options.daemon = value
 322          assert self.options.daemon == value
 323  
 324      def test_deferred_input_properties(self) -> None:
 325          assert self.options.deferred_input is None
 326          value = ""
 327          self.options.deferred_input = value
 328          assert self.options.deferred_input == value
 329  
 330      def test_dht_entry_point_properties(self) -> None:
 331          assert self.options.dht_entry_point is None
 332          value = ""
 333          self.options.dht_entry_point = value
 334          assert self.options.dht_entry_point == value
 335  
 336      def test_dht_entry_point6_properties(self) -> None:
 337          assert self.options.dht_entry_point6 is None
 338          value = ""
 339          self.options.dht_entry_point6 = value
 340          assert self.options.dht_entry_point6 == value
 341  
 342      def test_dht_file_path_properties(self) -> None:
 343          assert self.options.dht_file_path is None
 344          value = ""
 345          self.options.dht_file_path = value
 346          assert self.options.dht_file_path == value
 347  
 348      def test_dht_file_path6_properties(self) -> None:
 349          assert self.options.dht_file_path6 is None
 350          value = ""
 351          self.options.dht_file_path6 = value
 352          assert self.options.dht_file_path6 == value
 353  
 354      def test_dht_listen_addr6_properties(self) -> None:
 355          assert self.options.dht_listen_addr6 is None
 356          value = ""
 357          self.options.dht_listen_addr6 = value
 358          assert self.options.dht_listen_addr6 == value
 359  
 360      def test_dht_listen_port_properties(self) -> None:
 361          assert self.options.dht_listen_port is None
 362          value = ""
 363          self.options.dht_listen_port = value
 364          assert self.options.dht_listen_port == value
 365  
 366      def test_dht_message_timeout_properties(self) -> None:
 367          assert self.options.dht_message_timeout is None
 368          value = 30
 369          self.options.dht_message_timeout = value
 370          assert self.options.dht_message_timeout == value
 371  
 372      def test_dir_properties(self) -> None:
 373          assert self.options.dir is None
 374          value = "/some/random/dir"
 375          self.options.dir = value
 376          assert self.options.dir == value
 377  
 378      def test_disable_ipv6_properties(self) -> None:
 379          assert self.options.disable_ipv6 is None
 380          value = ""
 381          self.options.disable_ipv6 = value
 382          assert self.options.disable_ipv6 == value
 383  
 384      def test_disk_cache_properties(self) -> None:
 385          assert self.options.disk_cache is None
 386          value = 2048
 387          self.options.disk_cache = value
 388          assert self.options.disk_cache == value
 389  
 390      def test_download_result_properties(self) -> None:
 391          assert self.options.download_result is None
 392          value = ""
 393          self.options.download_result = value
 394          assert self.options.download_result == value
 395  
 396      def test_dry_run_properties(self) -> None:
 397          assert self.options.dry_run is None
 398          value = ""
 399          self.options.dry_run = value
 400          assert self.options.dry_run == value
 401  
 402      def test_dscp_properties(self) -> None:
 403          assert self.options.dscp is None
 404          value = ""
 405          self.options.dscp = value
 406          assert self.options.dscp == value
 407  
 408      def test_enable_color_properties(self) -> None:
 409          assert self.options.enable_color is None
 410          value = ""
 411          self.options.enable_color = value
 412          assert self.options.enable_color == value
 413  
 414      def test_enable_dht_properties(self) -> None:
 415          assert self.options.enable_dht is None
 416          value = ""
 417          self.options.enable_dht = value
 418          assert self.options.enable_dht == value
 419  
 420      def test_enable_dht6_properties(self) -> None:
 421          assert self.options.enable_dht6 is None
 422          value = ""
 423          self.options.enable_dht6 = value
 424          assert self.options.enable_dht6 == value
 425  
 426      def test_enable_http_keep_alive_properties(self) -> None:
 427          assert self.options.enable_http_keep_alive is None
 428          value = ""
 429          self.options.enable_http_keep_alive = value
 430          assert self.options.enable_http_keep_alive == value
 431  
 432      def test_enable_http_pipelining_properties(self) -> None:
 433          assert self.options.enable_http_pipelining is None
 434          value = ""
 435          self.options.enable_http_pipelining = value
 436          assert self.options.enable_http_pipelining == value
 437  
 438      def test_enable_mmap_properties(self) -> None:
 439          assert self.options.enable_mmap is None
 440          value = ""
 441          self.options.enable_mmap = value
 442          assert self.options.enable_mmap == value
 443  
 444      def test_enable_peer_exchange_properties(self) -> None:
 445          assert self.options.enable_peer_exchange is None
 446          value = ""
 447          self.options.enable_peer_exchange = value
 448          assert self.options.enable_peer_exchange == value
 449  
 450      def test_enable_rpc_properties(self) -> None:
 451          assert self.options.enable_rpc is None
 452          value = ""
 453          self.options.enable_rpc = value
 454          assert self.options.enable_rpc == value
 455  
 456      def test_event_poll_properties(self) -> None:
 457          assert self.options.event_poll is None
 458          value = ""
 459          self.options.event_poll = value
 460          assert self.options.event_poll == value
 461  
 462      def test_file_allocation_properties(self) -> None:
 463          assert self.options.file_allocation is None
 464          value = ""
 465          self.options.file_allocation = value
 466          assert self.options.file_allocation == value
 467  
 468      def test_follow_metalink_properties(self) -> None:
 469          assert self.options.follow_metalink is None
 470          value = ""
 471          self.options.follow_metalink = value
 472          assert self.options.follow_metalink == value
 473  
 474      def test_follow_torrent_properties(self) -> None:
 475          assert self.options.follow_torrent is None
 476          value = ""
 477          self.options.follow_torrent = value
 478          assert self.options.follow_torrent == value
 479  
 480      def test_force_save_properties(self) -> None:
 481          assert self.options.force_save is None
 482          value = ""
 483          self.options.force_save = value
 484          assert self.options.force_save == value
 485  
 486      def test_force_sequential_properties(self) -> None:
 487          assert self.options.force_sequential is None
 488          value = ""
 489          self.options.force_sequential = value
 490          assert self.options.force_sequential == value
 491  
 492      def test_ftp_passwd_properties(self) -> None:
 493          assert self.options.ftp_passwd is None
 494          value = ""
 495          self.options.ftp_passwd = value
 496          assert self.options.ftp_passwd == value
 497  
 498      def test_ftp_pasv_properties(self) -> None:
 499          assert self.options.ftp_pasv is None
 500          value = ""
 501          self.options.ftp_pasv = value
 502          assert self.options.ftp_pasv == value
 503  
 504      def test_ftp_proxy_properties(self) -> None:
 505          assert self.options.ftp_proxy is None
 506          value = ""
 507          self.options.ftp_proxy = value
 508          assert self.options.ftp_proxy == value
 509  
 510      def test_ftp_proxy_passwd_properties(self) -> None:
 511          assert self.options.ftp_proxy_passwd is None
 512          value = ""
 513          self.options.ftp_proxy_passwd = value
 514          assert self.options.ftp_proxy_passwd == value
 515  
 516      def test_ftp_proxy_user_properties(self) -> None:
 517          assert self.options.ftp_proxy_user is None
 518          value = ""
 519          self.options.ftp_proxy_user = value
 520          assert self.options.ftp_proxy_user == value
 521  
 522      def test_ftp_reuse_connection_properties(self) -> None:
 523          assert self.options.ftp_reuse_connection is None
 524          value = ""
 525          self.options.ftp_reuse_connection = value
 526          assert self.options.ftp_reuse_connection == value
 527  
 528      def test_ftp_type_properties(self) -> None:
 529          assert self.options.ftp_type is None
 530          value = ""
 531          self.options.ftp_type = value
 532          assert self.options.ftp_type == value
 533  
 534      def test_ftp_user_properties(self) -> None:
 535          assert self.options.ftp_user is None
 536          value = ""
 537          self.options.ftp_user = value
 538          assert self.options.ftp_user == value
 539  
 540      def test_gid_properties(self) -> None:
 541          assert self.options.gid is None
 542          value = ""
 543          self.options.gid = value
 544          assert self.options.gid == value
 545  
 546      def test_hash_check_only_properties(self) -> None:
 547          assert self.options.hash_check_only is None
 548          value = ""
 549          self.options.hash_check_only = value
 550          assert self.options.hash_check_only == value
 551  
 552      def test_header_properties(self) -> None:
 553          assert self.options.header is None
 554          value = ""
 555          self.options.header = value
 556          assert self.options.header == value
 557  
 558      def test_http_accept_gzip_properties(self) -> None:
 559          assert self.options.http_accept_gzip is None
 560          value = ""
 561          self.options.http_accept_gzip = value
 562          assert self.options.http_accept_gzip == value
 563  
 564      def test_http_auth_challenge_properties(self) -> None:
 565          assert self.options.http_auth_challenge is None
 566          value = ""
 567          self.options.http_auth_challenge = value
 568          assert self.options.http_auth_challenge == value
 569  
 570      def test_http_no_cache_properties(self) -> None:
 571          assert self.options.http_no_cache is None
 572          value = ""
 573          self.options.http_no_cache = value
 574          assert self.options.http_no_cache == value
 575  
 576      def test_http_passwd_properties(self) -> None:
 577          assert self.options.http_passwd is None
 578          value = ""
 579          self.options.http_passwd = value
 580          assert self.options.http_passwd == value
 581  
 582      def test_http_proxy_properties(self) -> None:
 583          assert self.options.http_proxy is None
 584          value = ""
 585          self.options.http_proxy = value
 586          assert self.options.http_proxy == value
 587  
 588      def test_http_proxy_passwd_properties(self) -> None:
 589          assert self.options.http_proxy_passwd is None
 590          value = ""
 591          self.options.http_proxy_passwd = value
 592          assert self.options.http_proxy_passwd == value
 593  
 594      def test_http_proxy_user_properties(self) -> None:
 595          assert self.options.http_proxy_user is None
 596          value = ""
 597          self.options.http_proxy_user = value
 598          assert self.options.http_proxy_user == value
 599  
 600      def test_http_user_properties(self) -> None:
 601          assert self.options.http_user is None
 602          value = ""
 603          self.options.http_user = value
 604          assert self.options.http_user == value
 605  
 606      def test_https_proxy_properties(self) -> None:
 607          assert self.options.https_proxy is None
 608          value = ""
 609          self.options.https_proxy = value
 610          assert self.options.https_proxy == value
 611  
 612      def test_https_proxy_passwd_properties(self) -> None:
 613          assert self.options.https_proxy_passwd is None
 614          value = ""
 615          self.options.https_proxy_passwd = value
 616          assert self.options.https_proxy_passwd == value
 617  
 618      def test_https_proxy_user_properties(self) -> None:
 619          assert self.options.https_proxy_user is None
 620          value = ""
 621          self.options.https_proxy_user = value
 622          assert self.options.https_proxy_user == value
 623  
 624      def test_human_readable_properties(self) -> None:
 625          assert self.options.human_readable is None
 626          value = ""
 627          self.options.human_readable = value
 628          assert self.options.human_readable == value
 629  
 630      def test_index_out_properties(self) -> None:
 631          assert self.options.index_out is None
 632          value = ""
 633          self.options.index_out = value
 634          assert self.options.index_out == value
 635  
 636      def test_input_file_properties(self) -> None:
 637          assert self.options.input_file is None
 638          value = ""
 639          self.options.input_file = value
 640          assert self.options.input_file == value
 641  
 642      def test_interface_properties(self) -> None:
 643          assert self.options.interface is None
 644          value = ""
 645          self.options.interface = value
 646          assert self.options.interface == value
 647  
 648      def test_keep_unfinished_download_result_properties(self) -> None:
 649          assert self.options.keep_unfinished_download_result is None
 650          value = ""
 651          self.options.keep_unfinished_download_result = value
 652          assert self.options.keep_unfinished_download_result == value
 653  
 654      def test_listen_port_properties(self) -> None:
 655          assert self.options.listen_port is None
 656          value = ""
 657          self.options.listen_port = value
 658          assert self.options.listen_port == value
 659  
 660      def test_load_cookies(self) -> None:
 661          assert self.options.load_cookies is None
 662          value = ""
 663          self.options.load_cookies = value
 664          assert self.options.load_cookies == value
 665  
 666      def test_log_properties(self) -> None:
 667          assert self.options.log is None
 668          value = ""
 669          self.options.log = value
 670          assert self.options.log == value
 671  
 672      def test_log_level_properties(self) -> None:
 673          assert self.options.log_level is None
 674          value = ""
 675          self.options.log_level = value
 676          assert self.options.log_level == value
 677  
 678      def test_lowest_speed_limit_properties(self) -> None:
 679          assert self.options.lowest_speed_limit is None
 680          value = 128
 681          self.options.lowest_speed_limit = value
 682          assert self.options.lowest_speed_limit == value
 683  
 684      def test_max_concurrent_downloads_properties(self) -> None:
 685          assert self.options.max_concurrent_downloads is None
 686          value = 10
 687          self.options.max_concurrent_downloads = value
 688          assert self.options.max_concurrent_downloads == value
 689  
 690      def test_max_connection_per_server_properties(self) -> None:
 691          assert self.options.max_connection_per_server is None
 692          value = 20
 693          self.options.max_connection_per_server = value
 694          assert self.options.max_connection_per_server == value
 695  
 696      def test_max_download_limit_properties(self) -> None:
 697          assert self.options.max_download_limit is None
 698          value = 100
 699          self.options.max_download_limit = value
 700          assert self.options.max_download_limit == value
 701  
 702      def test_max_download_result_properties(self) -> None:
 703          assert self.options.max_download_result is None
 704          value = 50
 705          self.options.max_download_result = value
 706          assert self.options.max_download_result == value
 707  
 708      def test_max_file_not_found_properties(self) -> None:
 709          assert self.options.max_file_not_found is None
 710          value = 10
 711          self.options.max_file_not_found = value
 712          assert self.options.max_file_not_found == value
 713  
 714      def test_max_mmap_limit_properties(self) -> None:
 715          assert self.options.max_mmap_limit is None
 716          value = 10
 717          self.options.max_mmap_limit = value
 718          assert self.options.max_mmap_limit == value
 719  
 720      def test_max_overall_download_limit_properties(self) -> None:
 721          assert self.options.max_overall_download_limit is None
 722          value = 1000
 723          self.options.max_overall_download_limit = value
 724          assert self.options.max_overall_download_limit == value
 725  
 726      def test_max_overall_upload_limit_properties(self) -> None:
 727          assert self.options.max_overall_upload_limit is None
 728          value = 1000
 729          self.options.max_overall_upload_limit = value
 730          assert self.options.max_overall_upload_limit == value
 731  
 732      def test_max_resume_failure_tries_properties(self) -> None:
 733          assert self.options.max_resume_failure_tries is None
 734          value = 100
 735          self.options.max_resume_failure_tries = value
 736          assert self.options.max_resume_failure_tries == value
 737  
 738      def test_max_tries_properties(self) -> None:
 739          assert self.options.max_tries is None
 740          value = 1
 741          self.options.max_tries = value
 742          assert self.options.max_tries == value
 743  
 744      def test_max_upload_limit_properties(self) -> None:
 745          assert self.options.max_upload_limit is None
 746          value = 100
 747          self.options.max_upload_limit = value
 748          assert self.options.max_upload_limit == value
 749  
 750      def test_metalink_base_uri_properties(self) -> None:
 751          assert self.options.metalink_base_uri is None
 752          value = ""
 753          self.options.metalink_base_uri = value
 754          assert self.options.metalink_base_uri == value
 755  
 756      def test_metalink_enable_unique_protocol_properties(self) -> None:
 757          assert self.options.metalink_enable_unique_protocol is None
 758          value = ""
 759          self.options.metalink_enable_unique_protocol = value
 760          assert self.options.metalink_enable_unique_protocol == value
 761  
 762      def test_metalink_file_properties(self) -> None:
 763          assert self.options.metalink_file is None
 764          value = ""
 765          self.options.metalink_file = value
 766          assert self.options.metalink_file == value
 767  
 768      def test_metalink_language_properties(self) -> None:
 769          assert self.options.metalink_language is None
 770          value = ""
 771          self.options.metalink_language = value
 772          assert self.options.metalink_language == value
 773  
 774      def test_metalink_location_properties(self) -> None:
 775          assert self.options.metalink_location is None
 776          value = ""
 777          self.options.metalink_location = value
 778          assert self.options.metalink_location == value
 779  
 780      def test_metalink_os_properties(self) -> None:
 781          assert self.options.metalink_os is None
 782          value = ""
 783          self.options.metalink_os = value
 784          assert self.options.metalink_os == value
 785  
 786      def test_metalink_preferred_protocol_properties(self) -> None:
 787          assert self.options.metalink_preferred_protocol is None
 788          value = ""
 789          self.options.metalink_preferred_protocol = value
 790          assert self.options.metalink_preferred_protocol == value
 791  
 792      def test_metalink_version_properties(self) -> None:
 793          assert self.options.metalink_version is None
 794          value = ""
 795          self.options.metalink_version = value
 796          assert self.options.metalink_version == value
 797  
 798      def test_min_split_size_properties(self) -> None:
 799          assert self.options.min_split_size is None
 800          value = 2048
 801          self.options.min_split_size = value
 802          assert self.options.min_split_size == value
 803  
 804      def test_min_tls_version_properties(self) -> None:
 805          assert self.options.min_tls_version is None
 806          value = ""
 807          self.options.min_tls_version = value
 808          assert self.options.min_tls_version == value
 809  
 810      def test_multiple_interface_properties(self) -> None:
 811          assert self.options.multiple_interface is None
 812          value = ""
 813          self.options.multiple_interface = value
 814          assert self.options.multiple_interface == value
 815  
 816      def test_netrc_path_properties(self) -> None:
 817          assert self.options.netrc_path is None
 818          value = ""
 819          self.options.netrc_path = value
 820          assert self.options.netrc_path == value
 821  
 822      def test_no_conf_properties(self) -> None:
 823          assert self.options.no_conf is None
 824          value = ""
 825          self.options.no_conf = value
 826          assert self.options.no_conf == value
 827  
 828      def test_no_file_allocation_limit_properties(self) -> None:
 829          assert self.options.no_file_allocation_limit is None
 830          value = 200
 831          self.options.no_file_allocation_limit = value
 832          assert self.options.no_file_allocation_limit == value
 833  
 834      def test_no_netrc_properties(self) -> None:
 835          assert self.options.no_netrc is None
 836          value = ""
 837          self.options.no_netrc = value
 838          assert self.options.no_netrc == value
 839  
 840      def test_no_proxy_properties(self) -> None:
 841          assert self.options.no_proxy is None
 842          value = ""
 843          self.options.no_proxy = value
 844          assert self.options.no_proxy == value
 845  
 846      def test_on_bt_download_complete_properties(self) -> None:
 847          assert self.options.on_bt_download_complete is None
 848          value = ""
 849          self.options.on_bt_download_complete = value
 850          assert self.options.on_bt_download_complete == value
 851  
 852      def test_on_download_complete_properties(self) -> None:
 853          assert self.options.on_download_complete is None
 854          value = ""
 855          self.options.on_download_complete = value
 856          assert self.options.on_download_complete == value
 857  
 858      def test_on_download_error_properties(self) -> None:
 859          assert self.options.on_download_error is None
 860          value = ""
 861          self.options.on_download_error = value
 862          assert self.options.on_download_error == value
 863  
 864      def test_on_download_pause_properties(self) -> None:
 865          assert self.options.on_download_pause is None
 866          value = ""
 867          self.options.on_download_pause = value
 868          assert self.options.on_download_pause == value
 869  
 870      def test_on_download_start_properties(self) -> None:
 871          assert self.options.on_download_start is None
 872          value = ""
 873          self.options.on_download_start = value
 874          assert self.options.on_download_start == value
 875  
 876      def test_on_download_stop_properties(self) -> None:
 877          assert self.options.on_download_stop is None
 878          value = ""
 879          self.options.on_download_stop = value
 880          assert self.options.on_download_stop == value
 881  
 882      def test_optimize_concurrent_downloads_properties(self) -> None:
 883          assert self.options.optimize_concurrent_downloads is None
 884          value = ""
 885          self.options.optimize_concurrent_downloads = value
 886          assert self.options.optimize_concurrent_downloads == value
 887  
 888      def test_out_properties(self) -> None:
 889          assert self.options.out is None
 890          value = ""
 891          self.options.out = value
 892          assert self.options.out == value
 893  
 894      def test_parameterized_uri_properties(self) -> None:
 895          assert self.options.parameterized_uri is None
 896          value = ""
 897          self.options.parameterized_uri = value
 898          assert self.options.parameterized_uri == value
 899  
 900      def test_pause_properties(self) -> None:
 901          assert self.options.pause is None
 902          value = ""
 903          self.options.pause = value
 904          assert self.options.pause == value
 905  
 906      def test_pause_metadata_properties(self) -> None:
 907          assert self.options.pause_metadata is None
 908          value = ""
 909          self.options.pause_metadata = value
 910          assert self.options.pause_metadata == value
 911  
 912      def test_peer_id_prefix_properties(self) -> None:
 913          assert self.options.peer_id_prefix is None
 914          value = ""
 915          self.options.peer_id_prefix = value
 916          assert self.options.peer_id_prefix == value
 917  
 918      def test_piece_length_properties(self) -> None:
 919          assert self.options.piece_length is None
 920          value = ""
 921          self.options.piece_length = value
 922          assert self.options.piece_length == value
 923  
 924      def test_private_key_properties(self) -> None:
 925          assert self.options.private_key is None
 926          value = ""
 927          self.options.private_key = value
 928          assert self.options.private_key == value
 929  
 930      def test_proxy_method_properties(self) -> None:
 931          assert self.options.proxy_method is None
 932          value = ""
 933          self.options.proxy_method = value
 934          assert self.options.proxy_method == value
 935  
 936      def test_quiet_properties(self) -> None:
 937          assert self.options.quiet is None
 938          value = ""
 939          self.options.quiet = value
 940          assert self.options.quiet == value
 941  
 942      def test_realtime_chunk_checksum_properties(self) -> None:
 943          assert self.options.realtime_chunk_checksum is None
 944          value = ""
 945          self.options.realtime_chunk_checksum = value
 946          assert self.options.realtime_chunk_checksum == value
 947  
 948      def test_referer_properties(self) -> None:
 949          assert self.options.referer is None
 950          value = ""
 951          self.options.referer = value
 952          assert self.options.referer == value
 953  
 954      def test_remote_time_properties(self) -> None:
 955          assert self.options.remote_time is None
 956          value = ""
 957          self.options.remote_time = value
 958          assert self.options.remote_time == value
 959  
 960      def test_remove_control_file_properties(self) -> None:
 961          assert self.options.remove_control_file is None
 962          value = ""
 963          self.options.remove_control_file = value
 964          assert self.options.remove_control_file == value
 965  
 966      def test_retry_wait_properties(self) -> None:
 967          assert self.options.retry_wait is None
 968          value = 2
 969          self.options.retry_wait = value
 970          assert self.options.retry_wait == value
 971  
 972      def test_reuse_uri_properties(self) -> None:
 973          assert self.options.reuse_uri is None
 974          value = ""
 975          self.options.reuse_uri = value
 976          assert self.options.reuse_uri == value
 977  
 978      def test_rlimit_nofile(self) -> None:
 979          assert self.options.rlimit_nofile is None
 980          value = 10
 981          self.options.rlimit_nofile = value
 982          assert self.options.rlimit_nofile == value
 983  
 984      def test_rpc_allow_origin_all_properties(self) -> None:
 985          assert self.options.rpc_allow_origin_all is None
 986          value = ""
 987          self.options.rpc_allow_origin_all = value
 988          assert self.options.rpc_allow_origin_all == value
 989  
 990      def test_rpc_certificate_properties(self) -> None:
 991          assert self.options.rpc_certificate is None
 992          value = ""
 993          self.options.rpc_certificate = value
 994          assert self.options.rpc_certificate == value
 995  
 996      def test_rpc_listen_all_properties(self) -> None:
 997          assert self.options.rpc_listen_all is None
 998          value = True
 999          self.options.rpc_listen_all = value
1000          assert self.options.rpc_listen_all == value
1001  
1002      def test_rpc_listen_port_properties(self) -> None:
1003          assert self.options.rpc_listen_port is None
1004          value = 6801
1005          self.options.rpc_listen_port = value
1006          assert self.options.rpc_listen_port == value
1007  
1008      def test_rpc_max_request_size_properties(self) -> None:
1009          assert self.options.rpc_max_request_size is None
1010          value = ""
1011          self.options.rpc_max_request_size = value
1012          assert self.options.rpc_max_request_size == value
1013  
1014      def test_rpc_passwd_properties(self) -> None:
1015          assert self.options.rpc_passwd is None
1016          value = ""
1017          self.options.rpc_passwd = value
1018          assert self.options.rpc_passwd == value
1019  
1020      def test_rpc_private_key_properties(self) -> None:
1021          assert self.options.rpc_private_key is None
1022          value = ""
1023          self.options.rpc_private_key = value
1024          assert self.options.rpc_private_key == value
1025  
1026      def test_rpc_save_upload_metadata_properties(self) -> None:
1027          assert self.options.rpc_save_upload_metadata is None
1028          value = ""
1029          self.options.rpc_save_upload_metadata = value
1030          assert self.options.rpc_save_upload_metadata == value
1031  
1032      def test_rpc_secret(self) -> None:
1033          assert self.options.rpc_secret is None
1034          value = "secret"
1035          self.options.rpc_secret = value
1036          assert self.options.rpc_secret == value
1037  
1038      def test_rpc_secure_properties(self) -> None:
1039          assert self.options.rpc_secure is None
1040          value = ""
1041          self.options.rpc_secure = value
1042          assert self.options.rpc_secure == value
1043  
1044      def test_rpc_user_properties(self) -> None:
1045          assert self.options.rpc_user is None
1046          value = ""
1047          self.options.rpc_user = value
1048          assert self.options.rpc_user == value
1049  
1050      def test_save_cookies_properties(self) -> None:
1051          assert self.options.save_cookies is None
1052          value = ""
1053          self.options.save_cookies = value
1054          assert self.options.save_cookies == value
1055  
1056      def test_save_not_found_properties(self) -> None:
1057          assert self.options.save_not_found is None
1058          value = ""
1059          self.options.save_not_found = value
1060          assert self.options.save_not_found == value
1061  
1062      def test_save_session_properties(self) -> None:
1063          assert self.options.save_session is None
1064          value = ""
1065          self.options.save_session = value
1066          assert self.options.save_session == value
1067  
1068      def test_save_session_interval_properties(self) -> None:
1069          assert self.options.save_session_interval is None
1070          value = 120
1071          self.options.save_session_interval = value
1072          assert self.options.save_session_interval == value
1073  
1074      def test_seed_ratio_properties(self) -> None:
1075          assert self.options.seed_ratio is None
1076          value = ""
1077          self.options.seed_ratio = value
1078          assert self.options.seed_ratio == value
1079  
1080      def test_seed_time_properties(self) -> None:
1081          assert self.options.seed_time is None
1082          value = ""
1083          self.options.seed_time = value
1084          assert self.options.seed_time == value
1085  
1086      def test_select_file_properties(self) -> None:
1087          assert self.options.select_file is None
1088          value = ""
1089          self.options.select_file = value
1090          assert self.options.select_file == value
1091  
1092      def test_server_stat_if_properties(self) -> None:
1093          assert self.options.server_stat_if is None
1094          value = ""
1095          self.options.server_stat_if = value
1096          assert self.options.server_stat_if == value
1097  
1098      def test_server_stat_of_properties(self) -> None:
1099          assert self.options.server_stat_of is None
1100          value = ""
1101          self.options.server_stat_of = value
1102          assert self.options.server_stat_of == value
1103  
1104      def test_server_stat_timeout_properties(self) -> None:
1105          assert self.options.server_stat_timeout is None
1106          value = 60
1107          self.options.server_stat_timeout = value
1108          assert self.options.server_stat_timeout == value
1109  
1110      def test_show_console_readout_properties(self) -> None:
1111          assert self.options.show_console_readout is None
1112          value = ""
1113          self.options.show_console_readout = value
1114          assert self.options.show_console_readout == value
1115  
1116      def test_show_files_properties(self) -> None:
1117          assert self.options.show_files is None
1118          value = ""
1119          self.options.show_files = value
1120          assert self.options.show_files == value
1121  
1122      def test_socket_recv_buffer_size_properties(self) -> None:
1123          assert self.options.socket_recv_buffer_size is None
1124          value = 256
1125          self.options.socket_recv_buffer_size = value
1126          assert self.options.socket_recv_buffer_size == value
1127  
1128      def test_split_properties(self) -> None:
1129          assert self.options.split is None
1130          value = 5
1131          self.options.split = value
1132          assert self.options.split == value
1133  
1134      def test_ssh_host_key_md_properties(self) -> None:
1135          assert self.options.ssh_host_key_md is None
1136          value = ""
1137          self.options.ssh_host_key_md = value
1138          assert self.options.ssh_host_key_md == value
1139  
1140      def test_stderr_properties(self) -> None:
1141          assert self.options.stderr is None
1142          value = ""
1143          self.options.stderr = value
1144          assert self.options.stderr == value
1145  
1146      def test_stop(self) -> None:
1147          assert self.options.stop is None
1148          value = 1000
1149          self.options.stop = value
1150          assert self.options.stop == value
1151  
1152      def test_stop_with_process_properties(self) -> None:
1153          assert self.options.stop_with_process is None
1154          value = 15050
1155          self.options.stop_with_process = value
1156          assert self.options.stop_with_process == value
1157  
1158      def test_stream_piece_selector_properties(self) -> None:
1159          assert self.options.stream_piece_selector is None
1160          value = ""
1161          self.options.stream_piece_selector = value
1162          assert self.options.stream_piece_selector == value
1163  
1164      def test_summary_interval_properties(self) -> None:
1165          assert self.options.summary_interval is None
1166          value = 120
1167          self.options.summary_interval = value
1168          assert self.options.summary_interval == value
1169  
1170      def test_timeout_properties(self) -> None:
1171          assert self.options.timeout is None
1172          value = 60
1173          self.options.timeout = value
1174          assert self.options.timeout == value
1175  
1176      def test_torrent_file_properties(self) -> None:
1177          assert self.options.torrent_file is None
1178          value = ""
1179          self.options.torrent_file = value
1180          assert self.options.torrent_file == value
1181  
1182      def test_truncate_console_readout_properties(self) -> None:
1183          assert self.options.truncate_console_readout is None
1184          value = ""
1185          self.options.truncate_console_readout = value
1186          assert self.options.truncate_console_readout == value
1187  
1188      def test_uri_selector_properties(self) -> None:
1189          assert self.options.uri_selector is None
1190          value = ""
1191          self.options.uri_selector = value
1192          assert self.options.uri_selector == value
1193  
1194      def test_use_head_properties(self) -> None:
1195          assert self.options.use_head is None
1196          value = ""
1197          self.options.use_head = value
1198          assert self.options.use_head == value
1199  
1200      def test_user_agent_properties(self) -> None:
1201          assert self.options.user_agent is None
1202          value = ""
1203          self.options.user_agent = value
1204          assert self.options.user_agent == value