Coverage for src/debputy/dh_migration/migrators.py: 100%

11 statements  

« prev     ^ index     » next       coverage.py v7.8.2, created at 2025-12-28 16:12 +0000

1from collections.abc import Callable, Mapping 

2from typing import Literal, Union 

3 

4from debputy.dh_migration.dh_related_migrations import ( 

5 dh_mbm_migrate_package_files, 

6 dh_mbm_migrate_manual_warnings, 

7) 

8from debputy.dh_migration.migrators_impl import ( 

9 migrate_links_files, 

10 migrate_maintscript, 

11 migrate_tmpfile, 

12 migrate_install_file, 

13 migrate_installdocs_file, 

14 migrate_installexamples_file, 

15 migrate_dh_hook_targets, 

16 migrate_misspelled_readme_debian_files, 

17 migrate_doc_base_files, 

18 migrate_lintian_overrides_files, 

19 detect_unsupported_zz_debputy_features, 

20 detect_pam_files, 

21 detect_modprobe_files, 

22 detect_dh_addons_with_zz_integration, 

23 migrate_not_installed_file, 

24 migrate_installman_file, 

25 migrate_bash_completion, 

26 migrate_installinfo_file, 

27 migrate_dh_installsystemd_files, 

28 detect_obsolete_substvars, 

29 detect_dh_addons_zz_debputy_rrr, 

30 detect_dh_addons_with_full_integration, 

31 migrate_shell_completions, 

32 migrate_clean_file, 

33 min_dh_compat_check, 

34 migrate_dh_builtusing, 

35) 

36from debputy.dh_migration.models import ( 

37 FeatureMigration, 

38 MigrationRequest, 

39) 

40from debputy.plugin.api.spec import ( 

41 DebputyIntegrationMode, 

42 INTEGRATION_MODE_DH_DEBPUTY_RRR, 

43 INTEGRATION_MODE_DH_DEBPUTY, 

44 INTEGRATION_MODE_FULL, 

45) 

46 

47Migrator = Callable[ 

48 [ 

49 MigrationRequest, 

50 FeatureMigration, 

51 ], 

52 None, 

53] 

54 

55_DH_DEBPUTY_MIGRATORS = [ 

56 detect_unsupported_zz_debputy_features, 

57 detect_pam_files, 

58 detect_modprobe_files, 

59 migrate_dh_hook_targets, 

60 migrate_dh_installsystemd_files, 

61 migrate_install_file, 

62 migrate_installdocs_file, 

63 migrate_installexamples_file, 

64 migrate_installman_file, 

65 migrate_installinfo_file, 

66 migrate_misspelled_readme_debian_files, 

67 migrate_doc_base_files, 

68 migrate_links_files, 

69 migrate_maintscript, 

70 migrate_tmpfile, 

71 migrate_lintian_overrides_files, 

72 migrate_bash_completion, 

73 migrate_shell_completions, 

74 migrate_dh_builtusing, 

75 detect_obsolete_substvars, 

76 # not-installed should go last, so its rules appear after other installations 

77 # It is not perfect, but it is a start. 

78 migrate_not_installed_file, 

79 min_dh_compat_check, 

80] 

81 

82 

83MigrationTarget = Union[ 

84 DebputyIntegrationMode, 

85 Literal[ 

86 "dh-single-to-multi-binary", 

87 "dh-package-prefixed-config-files", 

88 ], 

89] 

90 

91MIGRATORS: Mapping[MigrationTarget, list[Migrator]] = { 

92 INTEGRATION_MODE_DH_DEBPUTY_RRR: [ 

93 migrate_dh_hook_targets, 

94 migrate_misspelled_readme_debian_files, 

95 detect_dh_addons_zz_debputy_rrr, 

96 detect_obsolete_substvars, 

97 ], 

98 INTEGRATION_MODE_DH_DEBPUTY: [ 

99 *_DH_DEBPUTY_MIGRATORS, 

100 detect_dh_addons_with_zz_integration, 

101 ], 

102 INTEGRATION_MODE_FULL: [ 

103 *_DH_DEBPUTY_MIGRATORS, 

104 detect_dh_addons_with_full_integration, 

105 migrate_clean_file, 

106 ], 

107 "dh-package-prefixed-config-files": [ 

108 dh_mbm_migrate_package_files, 

109 ], 

110 "dh-single-to-multi-binary": [ 

111 dh_mbm_migrate_package_files, 

112 dh_mbm_migrate_manual_warnings, 

113 ], 

114} 

115del _DH_DEBPUTY_MIGRATORS