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

11 statements  

« prev     ^ index     » next       coverage.py v7.8.2, created at 2025-10-19 09:24 +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_dh_addons_with_zz_integration, 

22 migrate_not_installed_file, 

23 migrate_installman_file, 

24 migrate_bash_completion, 

25 migrate_installinfo_file, 

26 migrate_dh_installsystemd_files, 

27 detect_obsolete_substvars, 

28 detect_dh_addons_zz_debputy_rrr, 

29 detect_dh_addons_with_full_integration, 

30 migrate_shell_completions, 

31 migrate_clean_file, 

32 min_dh_compat_check, 

33) 

34from debputy.dh_migration.models import ( 

35 FeatureMigration, 

36 MigrationRequest, 

37) 

38from debputy.plugin.api.spec import ( 

39 DebputyIntegrationMode, 

40 INTEGRATION_MODE_DH_DEBPUTY_RRR, 

41 INTEGRATION_MODE_DH_DEBPUTY, 

42 INTEGRATION_MODE_FULL, 

43) 

44 

45Migrator = Callable[ 

46 [ 

47 MigrationRequest, 

48 FeatureMigration, 

49 ], 

50 None, 

51] 

52 

53_DH_DEBPUTY_MIGRATORS = [ 

54 detect_unsupported_zz_debputy_features, 

55 detect_pam_files, 

56 migrate_dh_hook_targets, 

57 migrate_dh_installsystemd_files, 

58 migrate_install_file, 

59 migrate_installdocs_file, 

60 migrate_installexamples_file, 

61 migrate_installman_file, 

62 migrate_installinfo_file, 

63 migrate_misspelled_readme_debian_files, 

64 migrate_doc_base_files, 

65 migrate_links_files, 

66 migrate_maintscript, 

67 migrate_tmpfile, 

68 migrate_lintian_overrides_files, 

69 migrate_bash_completion, 

70 migrate_shell_completions, 

71 detect_obsolete_substvars, 

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

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

74 migrate_not_installed_file, 

75 min_dh_compat_check, 

76] 

77 

78 

79MigrationTarget = Union[ 

80 DebputyIntegrationMode, 

81 Literal[ 

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

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

84 ], 

85] 

86 

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

88 INTEGRATION_MODE_DH_DEBPUTY_RRR: [ 

89 migrate_dh_hook_targets, 

90 migrate_misspelled_readme_debian_files, 

91 detect_dh_addons_zz_debputy_rrr, 

92 detect_obsolete_substvars, 

93 ], 

94 INTEGRATION_MODE_DH_DEBPUTY: [ 

95 *_DH_DEBPUTY_MIGRATORS, 

96 detect_dh_addons_with_zz_integration, 

97 ], 

98 INTEGRATION_MODE_FULL: [ 

99 *_DH_DEBPUTY_MIGRATORS, 

100 detect_dh_addons_with_full_integration, 

101 migrate_clean_file, 

102 ], 

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

104 dh_mbm_migrate_package_files, 

105 ], 

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

107 dh_mbm_migrate_package_files, 

108 dh_mbm_migrate_manual_warnings, 

109 ], 

110} 

111del _DH_DEBPUTY_MIGRATORS