Merge branch 'isort' into 'master'
Sort Python import definitions with isort
See merge request jelmer/debmutate!11
Jelmer Vernooij
1 year, 3 months ago
18 | 18 | |
19 | 19 | import os |
20 | 20 | import re |
21 | from typing import Iterator, Optional, List, Union | |
21 | from typing import Iterator, List, Optional, Union | |
22 | 22 | |
23 | 23 | from .reformatting import Editor |
24 | 24 |
18 | 18 | """Ben file parsing.""" |
19 | 19 | |
20 | 20 | import re |
21 | ||
22 | 21 | |
23 | 22 | SUPPORTED_KEYS = [ |
24 | 23 | 'title', 'notes', 'is_affected', 'is_good', 'is_bad', 'export'] |
39 | 39 | 'upstream_merge_changelog_line', |
40 | 40 | ] |
41 | 41 | |
42 | import re | |
43 | import textwrap | |
42 | 44 | from datetime import datetime |
43 | 45 | from email.utils import format_datetime, parseaddr |
44 | import re | |
45 | import textwrap | |
46 | from typing import List, Iterator, Tuple, Optional | |
47 | ||
48 | from debian.changelog import ( | |
49 | ChangeBlock, | |
50 | Changelog, | |
51 | ChangelogCreateError, | |
52 | ChangelogParseError, | |
53 | format_date, | |
54 | get_maintainer, | |
55 | Version, | |
56 | ) | |
46 | from typing import Iterator, List, Optional, Tuple | |
47 | ||
48 | from debian.changelog import (ChangeBlock, Changelog, ChangelogCreateError, | |
49 | ChangelogParseError, Version, format_date, | |
50 | get_maintainer) | |
51 | ||
57 | 52 | from .reformatting import Editor |
58 | 53 | |
59 | 54 | WIDTH = 80 |
666 | 661 | def gbp_dch(path: str) -> None: |
667 | 662 | """Run 'gbp dch'.""" |
668 | 663 | import os |
664 | ||
669 | 665 | from gbp.scripts.dch import main as dch_main |
670 | 666 | old_cwd = os.getcwd() |
671 | 667 | try: |
41 | 41 | |
42 | 42 | import collections |
43 | 43 | import contextlib |
44 | from itertools import takewhile | |
45 | 44 | import operator |
46 | 45 | import os |
47 | 46 | import re |
47 | import subprocess | |
48 | 48 | import time |
49 | from typing import ( | |
50 | ContextManager, | |
51 | Optional, | |
52 | Callable, | |
53 | Tuple, | |
54 | Union, | |
55 | List, | |
56 | Iterable, | |
57 | Dict, | |
58 | ) | |
59 | ||
60 | import subprocess | |
61 | 49 | import warnings |
50 | from itertools import takewhile | |
51 | from typing import (Callable, ContextManager, Dict, Iterable, List, Optional, | |
52 | Tuple, Union) | |
62 | 53 | |
63 | 54 | from debian.changelog import Version |
64 | 55 | |
65 | 56 | from ._deb822 import PkgRelation |
66 | from .deb822 import ( | |
67 | Deb822Editor, | |
68 | ChangeConflict, | |
69 | Deb822Paragraph, | |
70 | parse_deb822_file, | |
71 | ) | |
57 | from .deb822 import (ChangeConflict, Deb822Editor, Deb822Paragraph, | |
58 | parse_deb822_file) | |
72 | 59 | from .reformatting import GeneratedFile |
73 | ||
74 | 60 | |
75 | 61 | # TODO(jelmer): dedupe with scripts/wrap-and-sort in devscripts |
76 | 62 | CONTROL_LIST_FIELDS = ( |
25 | 25 | |
26 | 26 | from typing import Dict, Optional |
27 | 27 | |
28 | from debian.copyright import ( | |
29 | Copyright, | |
30 | MachineReadableFormatError, | |
31 | NotMachineReadableError, | |
32 | ) | |
28 | from debian.copyright import (Copyright, MachineReadableFormatError, | |
29 | NotMachineReadableError) | |
33 | 30 | from debian.deb822 import RestrictedField |
34 | 31 | |
35 | 32 | from .reformatting import Editor |
29 | 29 | from io import BytesIO |
30 | 30 | from typing import List, Optional, Union |
31 | 31 | |
32 | from debian._deb822_repro.parsing import Deb822FileElement as Deb822File | |
33 | from debian._deb822_repro.parsing import \ | |
34 | Deb822ParagraphElement as Deb822Paragraph | |
35 | from debian._deb822_repro.parsing import parse_deb822_file | |
32 | 36 | from debian.deb822 import Deb822 |
33 | from debian._deb822_repro.parsing import ( | |
34 | parse_deb822_file, | |
35 | Deb822ParagraphElement as Deb822Paragraph, | |
36 | Deb822FileElement as Deb822File, | |
37 | ) | |
38 | 37 | |
39 | from .reformatting import ( | |
40 | Editor, | |
41 | ) | |
42 | ||
38 | from .reformatting import Editor | |
43 | 39 | |
44 | 40 | # Urgh; this is bad form as a library, but the alternative is |
45 | 41 | # silently discarding comments. |
17 | 17 | |
18 | 18 | """Utility functions for dealing with debcargo files.""" |
19 | 19 | |
20 | import os | |
21 | import re | |
20 | 22 | from collections.abc import MutableMapping |
21 | 23 | from itertools import chain |
22 | import os | |
23 | import re | |
24 | 24 | from typing import Optional, Tuple |
25 | 25 | |
26 | 26 | from debian.changelog import Changelog |
27 | ||
28 | from tomlkit import loads, dumps | |
27 | from tomlkit import dumps, loads | |
29 | 28 | |
30 | 29 | from .reformatting import Editor |
31 | ||
32 | 30 | |
33 | 31 | DEFAULT_MAINTAINER = ( |
34 | 32 | "Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>") |
23 | 23 | 'get_debhelper_compat_level', |
24 | 24 | ] |
25 | 25 | |
26 | import os | |
26 | 27 | from dataclasses import dataclass |
27 | import os | |
28 | from typing import Optional, Union, Dict, List | |
29 | ||
28 | from typing import Dict, List, Optional, Union | |
29 | ||
30 | from debian.changelog import Version | |
30 | 31 | from debian.deb822 import Deb822 |
31 | 32 | |
32 | from debian.changelog import Version | |
33 | ||
34 | from .control import ( | |
35 | ensure_minimum_version, | |
36 | get_relation, | |
37 | parse_relations, | |
38 | ControlEditor, | |
39 | ) | |
33 | from .control import (ControlEditor, ensure_minimum_version, get_relation, | |
34 | parse_relations) | |
40 | 35 | from .reformatting import Editor |
41 | 36 | |
42 | 37 |
18 | 18 | |
19 | 19 | import fnmatch |
20 | 20 | import re |
21 | from typing import Optional, List, Union | |
21 | from typing import List, Optional, Union | |
22 | 22 | |
23 | 23 | from .reformatting import Editor |
24 | ||
25 | 24 | |
26 | 25 | # https://lintian.debian.org/manual/section-2.4.html |
27 | 26 | # File format (as documented in policy 2.4.1): |
17 | 17 | """Handling of orig tarballs.""" |
18 | 18 | |
19 | 19 | import os |
20 | ||
21 | 20 | |
22 | 21 | SUPPORTED_SUFFIXES = [".tar.gz", ".tar.bz2", ".tar.lzma", ".tar.xz"] |
23 | 22 |
17 | 17 | """Utility functions for editing patches under debian/patches/. |
18 | 18 | """ |
19 | 19 | |
20 | import os | |
20 | 21 | from collections import namedtuple |
21 | import os | |
22 | 22 | from typing import Iterator, List, Optional |
23 | 23 | |
24 | 24 | from .reformatting import Editor |
25 | ||
26 | 25 | |
27 | 26 | DEFAULT_DEBIAN_PATCHES_DIR = 'debian/patches' |
28 | 27 |
25 | 25 | |
26 | 26 | import logging |
27 | 27 | import os |
28 | from typing import Union, Optional, List, TypeVar, Generic | |
28 | from typing import Generic, List, Optional, TypeVar, Union | |
29 | 29 | |
30 | 30 | |
31 | 31 | class GeneratedFile(Exception): |
26 | 26 | ] |
27 | 27 | |
28 | 28 | import re |
29 | from typing import Optional, Tuple, NamedTuple | |
29 | from typing import NamedTuple, Optional, Tuple | |
30 | 30 | |
31 | 31 | |
32 | 32 | class VcsUrl(NamedTuple): |
16 | 16 | |
17 | 17 | """Utility functions for dealing with Debian versions.""" |
18 | 18 | |
19 | import re | |
19 | 20 | from datetime import datetime |
20 | import re | |
21 | 21 | from typing import Optional, Tuple, Union |
22 | ||
22 | 23 | from debian.changelog import Version |
23 | 24 | |
24 | 25 | __all__ = [ |
16 | 16 | |
17 | 17 | """Functions for working with watch files.""" |
18 | 18 | |
19 | from io import StringIO | |
20 | 19 | import logging |
21 | import pcre | |
22 | 20 | import re |
23 | 21 | import sys |
24 | from typing import ( | |
25 | Iterable, List, Union, Callable, Optional, TextIO, Iterator, Tuple) | |
22 | from io import StringIO | |
23 | from typing import (Callable, Iterable, Iterator, List, Optional, TextIO, | |
24 | Tuple, Union) | |
26 | 25 | from urllib.parse import urljoin |
27 | 26 | |
27 | import pcre | |
28 | 28 | from debian.changelog import Version |
29 | 29 | |
30 | from .reformatting import ( | |
31 | Editor, | |
32 | ) | |
33 | ||
34 | 30 | from . import __version__ |
31 | from .reformatting import Editor | |
35 | 32 | |
36 | 33 | DEFAULT_USER_AGENT = 'debmutate/%s' % '.'.join([str(x) for x in __version__]) |
37 | 34 | |
362 | 359 | return _subst(self.url, package) |
363 | 360 | |
364 | 361 | def discover(self, package) -> Iterator[Release]: |
365 | from urllib.request import urlopen, Request | |
362 | from urllib.request import Request, urlopen | |
366 | 363 | url = self.format_url(package) |
367 | 364 | try: |
368 | 365 | user_agent = self.get_option('user-agent') |
14 | 14 | # along with this program; if not, write to the Free Software |
15 | 15 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
16 | 16 | |
17 | import json | |
17 | 18 | import os |
18 | import json | |
19 | 19 | |
20 | 20 | from debmutate.control import ControlEditor |
21 | 21 | |
30 | 30 | updater.source["Rules-Requires-Root"] = "no" |
31 | 31 | |
32 | 32 | if os.environ.get('SVP_API') == "1": |
33 | import debian | |
33 | 34 | import debmutate |
34 | import debian | |
35 | 35 | with open(os.environ['SVP_RESULT'], 'w') as f: |
36 | 36 | json.dump({ |
37 | 37 | 'description': 'Set Rules-Requires-Root.', |
14 | 14 | # along with this program; if not, write to the Free Software |
15 | 15 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
16 | 16 | |
17 | import json | |
17 | 18 | import logging |
18 | ||
19 | import json | |
20 | 19 | import os |
21 | ||
22 | from typing import Optional, List | |
20 | from typing import List, Optional | |
23 | 21 | |
24 | 22 | from debmutate.control import ControlEditor, delete_from_list |
25 | 23 | from debmutate.deb822 import ChangeConflict |
26 | from debmutate.reformatting import GeneratedFile, FormattingUnpreservable | |
27 | ||
24 | from debmutate.reformatting import FormattingUnpreservable, GeneratedFile | |
28 | 25 | |
29 | 26 | BRANCH_NAME = "mia" |
30 | 27 | MIA_EMAIL = "mia@qa.debian.org" |
32 | 29 | |
33 | 30 | |
34 | 31 | def versions_dict(): |
32 | import debian | |
35 | 33 | import debmutate |
36 | import debian | |
37 | 34 | return { |
38 | 35 | 'debmutate': debmutate.version_string, |
39 | 36 | 'debian': debian.__version__, |
147 | 144 | |
148 | 145 | try: |
149 | 146 | if os.path.exists('debian/debcargo.toml'): |
150 | from debmutate.debcargo import DebcargoControlShimEditor, DebcargoEditor | |
147 | from debmutate.debcargo import (DebcargoControlShimEditor, | |
148 | DebcargoEditor) | |
151 | 149 | |
152 | 150 | control = DebcargoControlShimEditor.from_debian_dir('debian') |
153 | 151 | else: |
16 | 16 | |
17 | 17 | """Tests for debmutate.rules.""" |
18 | 18 | |
19 | from debmutate._rules import (Makefile, Rule, dh_invoke_add_with, | |
20 | dh_invoke_drop_with, dh_invoke_get_with, | |
21 | discard_pointless_override, matches_wildcard, | |
22 | update_rules) | |
23 | ||
19 | 24 | from . import TestCase, TestCaseInTempDir |
20 | ||
21 | from debmutate._rules import ( | |
22 | Makefile, | |
23 | Rule, | |
24 | dh_invoke_drop_with, | |
25 | dh_invoke_add_with, | |
26 | dh_invoke_get_with, | |
27 | discard_pointless_override, | |
28 | matches_wildcard, | |
29 | update_rules, | |
30 | ) | |
31 | 25 | |
32 | 26 | |
33 | 27 | class MakefileParseTests(TestCase): |
19 | 19 | |
20 | 20 | """Tests for lintian_brush.changelog.""" |
21 | 21 | |
22 | from datetime import datetime | |
23 | from debian.changelog import Changelog | |
24 | 22 | import os |
25 | 23 | import shutil |
26 | 24 | import tempfile |
27 | ||
28 | from debmutate.changelog import ( | |
29 | ChangelogCreateError, | |
30 | ChangelogEditor, | |
31 | TextWrapper, | |
32 | all_sha_prefixed, | |
33 | rewrap_change, | |
34 | find_extra_authors, | |
35 | find_thanks, | |
36 | increment_version, | |
37 | changes_sections, | |
38 | release, | |
39 | strip_changelog_message, | |
40 | new_upstream_package_version, | |
41 | changeblock_ensure_first_line, | |
42 | find_last_distribution, | |
43 | upstream_merge_changelog_line, | |
44 | take_uploadership, | |
45 | ) | |
46 | ||
47 | from debian.changelog import Version | |
48 | ||
25 | from datetime import datetime | |
49 | 26 | from unittest import TestCase |
27 | ||
28 | from debian.changelog import Changelog, Version | |
29 | ||
30 | from debmutate.changelog import (ChangelogCreateError, ChangelogEditor, | |
31 | TextWrapper, all_sha_prefixed, | |
32 | changeblock_ensure_first_line, | |
33 | changes_sections, find_extra_authors, | |
34 | find_last_distribution, find_thanks, | |
35 | increment_version, | |
36 | new_upstream_package_version, release, | |
37 | rewrap_change, strip_changelog_message, | |
38 | take_uploadership, | |
39 | upstream_merge_changelog_line) | |
50 | 40 | |
51 | 41 | |
52 | 42 | class CreateChangelogTests(TestCase): |
19 | 19 | |
20 | 20 | import os |
21 | 21 | |
22 | from . import ( | |
23 | TestCase, | |
24 | TestCaseInTempDir, | |
25 | ) | |
26 | ||
27 | from debmutate.control import ( | |
28 | _cdbs_resolve_conflict, | |
29 | add_dependency, | |
30 | drop_dependency, | |
31 | ensure_exact_version, | |
32 | ensure_minimum_version, | |
33 | ensure_some_version, | |
34 | ensure_relation, | |
35 | get_relation, | |
36 | guess_template_type, | |
37 | iter_relations, | |
38 | is_relation_implied, | |
39 | is_dep_implied, | |
40 | update_control, | |
41 | PkgRelation, | |
42 | format_relations, | |
43 | parse_relations, | |
44 | delete_from_list, | |
45 | ControlEditor, | |
46 | parse_standards_version, | |
47 | MissingSourceParagraph, | |
48 | ) | |
49 | from debmutate.reformatting import ( | |
50 | GeneratedFile, | |
51 | FormattingUnpreservable, | |
52 | ) | |
22 | from debmutate.control import (ControlEditor, MissingSourceParagraph, | |
23 | PkgRelation, _cdbs_resolve_conflict, | |
24 | add_dependency, delete_from_list, | |
25 | drop_dependency, ensure_exact_version, | |
26 | ensure_minimum_version, ensure_relation, | |
27 | ensure_some_version, format_relations, | |
28 | get_relation, guess_template_type, | |
29 | is_dep_implied, is_relation_implied, | |
30 | iter_relations, parse_relations, | |
31 | parse_standards_version, update_control) | |
32 | from debmutate.reformatting import FormattingUnpreservable, GeneratedFile | |
33 | ||
34 | from . import TestCase, TestCaseInTempDir | |
53 | 35 | |
54 | 36 | |
55 | 37 | class UpdateControlTests(TestCaseInTempDir): |
19 | 19 | import os |
20 | 20 | import shutil |
21 | 21 | import tempfile |
22 | ||
23 | 22 | from unittest import TestCase |
24 | 23 | |
25 | from debian.copyright import ( | |
26 | FilesParagraph, | |
27 | LicenseParagraph, | |
28 | License, | |
29 | ) | |
30 | ||
31 | from debmutate.copyright import ( | |
32 | NotMachineReadableError, | |
33 | CopyrightEditor, | |
34 | ) | |
24 | from debian.copyright import FilesParagraph, License, LicenseParagraph | |
25 | ||
26 | from debmutate.copyright import CopyrightEditor, NotMachineReadableError | |
35 | 27 | |
36 | 28 | |
37 | 29 | class UpdateCopyrightTests(TestCase): |
17 | 17 | |
18 | 18 | """Tests for debmutate.deb822.""" |
19 | 19 | |
20 | from . import ( | |
21 | TestCase, | |
22 | TestCaseInTempDir, | |
23 | ) | |
24 | ||
25 | 20 | from debian.deb822 import Deb822 |
26 | 21 | |
27 | from debmutate.deb822 import ( | |
28 | ChangeConflict, | |
29 | Deb822Editor, | |
30 | dump_paragraphs, | |
31 | reformat_deb822, | |
32 | ) | |
33 | from debmutate.reformatting import ( | |
34 | GeneratedFile, | |
35 | ) | |
22 | from debmutate.deb822 import (ChangeConflict, Deb822Editor, dump_paragraphs, | |
23 | reformat_deb822) | |
24 | from debmutate.reformatting import GeneratedFile | |
25 | ||
26 | from . import TestCase, TestCaseInTempDir | |
36 | 27 | |
37 | 28 | |
38 | 29 | class ReformatDeb822Tests(TestCase): |
16 | 16 | |
17 | 17 | """Tests for debmutate.debcargo.""" |
18 | 18 | |
19 | from contextlib import ExitStack | |
20 | 19 | import os |
21 | 20 | import shutil |
22 | 21 | import tempfile |
22 | from contextlib import ExitStack | |
23 | 23 | from unittest import TestCase |
24 | 24 | |
25 | ||
26 | from debmutate.debcargo import ( | |
27 | debcargo_version_to_semver, | |
28 | semver_pair, | |
29 | DebcargoControlShimEditor, | |
30 | DebcargoEditor, | |
31 | DEFAULT_MAINTAINER, | |
32 | ) | |
25 | from debmutate.debcargo import (DEFAULT_MAINTAINER, DebcargoControlShimEditor, | |
26 | DebcargoEditor, debcargo_version_to_semver, | |
27 | semver_pair) | |
33 | 28 | |
34 | 29 | |
35 | 30 | class DebcargoVersionToSemverTests(TestCase): |
20 | 20 | |
21 | 21 | from debian.changelog import Version |
22 | 22 | |
23 | from . import ( | |
24 | TestCase, | |
25 | TestCaseInTempDir, | |
26 | ) | |
23 | from debmutate.debhelper import (MaintscriptEditor, MaintscriptMoveConffile, | |
24 | ensure_minimum_debhelper_version) | |
27 | 25 | |
28 | from debmutate.debhelper import ( | |
29 | ensure_minimum_debhelper_version, | |
30 | MaintscriptEditor, | |
31 | MaintscriptMoveConffile, | |
32 | ) | |
26 | from . import TestCase, TestCaseInTempDir | |
33 | 27 | |
34 | 28 | |
35 | 29 | class EnsureMinumumDebhelperVersionTests(TestCase): |
17 | 17 | """Tests for debmutate.""" |
18 | 18 | |
19 | 19 | import os |
20 | ||
21 | 20 | from unittest import TestCase |
22 | 21 | |
23 | 22 | from debian.changelog import Changelog |
16 | 16 | |
17 | 17 | """Tests for lintian_brush.lintian_overrides.""" |
18 | 18 | |
19 | from . import ( | |
20 | TestCase, | |
21 | TestCaseInTempDir, | |
22 | ) | |
23 | ||
24 | 19 | from io import StringIO |
25 | 20 | |
26 | from debmutate.lintian_overrides import ( | |
27 | LintianOverride, | |
28 | LintianOverridesEditor, | |
29 | iter_overrides, | |
30 | parse_override, | |
31 | serialize_override, | |
32 | ) | |
21 | from debmutate.lintian_overrides import (LintianOverride, | |
22 | LintianOverridesEditor, | |
23 | iter_overrides, parse_override, | |
24 | serialize_override) | |
25 | ||
26 | from . import TestCase, TestCaseInTempDir | |
33 | 27 | |
34 | 28 | |
35 | 29 | class UpdateOverridesEditorTests(TestCaseInTempDir): |
16 | 16 | |
17 | 17 | """Tests for debmutate.orig.""" |
18 | 18 | |
19 | from debmutate.orig import component_from_orig_tarball | |
20 | ||
19 | 21 | from . import TestCase |
20 | ||
21 | from debmutate.orig import ( | |
22 | component_from_orig_tarball, | |
23 | ) | |
24 | 22 | |
25 | 23 | |
26 | 24 | class ComponentFromOrigTarballTests(TestCase): |
16 | 16 | |
17 | 17 | """Tests for debmutate.patch.""" |
18 | 18 | |
19 | import os | |
19 | 20 | from io import BytesIO |
20 | import os | |
21 | 21 | |
22 | from . import ( | |
23 | TestCase, | |
24 | TestCaseInTempDir, | |
25 | ) | |
22 | from debmutate.patch import (QuiltSeriesEditor, find_common_patch_suffix, | |
23 | read_quilt_series) | |
26 | 24 | |
27 | from debmutate.patch import ( | |
28 | find_common_patch_suffix, | |
29 | read_quilt_series, | |
30 | QuiltSeriesEditor, | |
31 | ) | |
25 | from . import TestCase, TestCaseInTempDir | |
32 | 26 | |
33 | 27 | |
34 | 28 | class ReadSeriesFileTests(TestCase): |
17 | 17 | |
18 | 18 | """Tests for lintian brush reformatting tools.""" |
19 | 19 | |
20 | from . import ( | |
21 | TestCase, | |
22 | TestCaseInTempDir, | |
23 | ) | |
20 | from debmutate.reformatting import (FormattingUnpreservable, GeneratedFile, | |
21 | check_generated_file, | |
22 | check_preserve_formatting, | |
23 | edit_formatted_file) | |
24 | 24 | |
25 | from debmutate.reformatting import ( | |
26 | FormattingUnpreservable, | |
27 | check_generated_file, | |
28 | check_preserve_formatting, | |
29 | edit_formatted_file, | |
30 | GeneratedFile, | |
31 | ) | |
25 | from . import TestCase, TestCaseInTempDir | |
32 | 26 | |
33 | 27 | |
34 | 28 | class CheckPreserveFormattingTests(TestCase): |
18 | 18 | |
19 | 19 | from unittest import TestCase |
20 | 20 | |
21 | from debmutate.vcs import ( | |
22 | VcsUrl, | |
23 | split_vcs_url, | |
24 | unsplit_vcs_url, | |
25 | mangle_version_for_git, | |
26 | gbp_expand_tag_name, | |
27 | ) | |
21 | from debmutate.vcs import (VcsUrl, gbp_expand_tag_name, mangle_version_for_git, | |
22 | split_vcs_url, unsplit_vcs_url) | |
28 | 23 | |
29 | 24 | |
30 | 25 | class SplitVcsUrlTests(TestCase): |
17 | 17 | """Tests for debmutate.versions.""" |
18 | 18 | |
19 | 19 | from datetime import datetime |
20 | ||
21 | from debmutate.versions import ( | |
22 | add_dfsg_suffix, | |
23 | git_snapshot_data_from_version, | |
24 | mangle_version_for_git, | |
25 | new_package_version, | |
26 | get_snapshot_revision, | |
27 | upstream_version_add_revision, | |
28 | debianize_upstream_version, | |
29 | matches_release, | |
30 | strip_dfsg_suffix, | |
31 | ) | |
20 | from unittest import TestCase | |
32 | 21 | |
33 | 22 | from debian.changelog import Version |
34 | from unittest import TestCase | |
23 | ||
24 | from debmutate.versions import (add_dfsg_suffix, debianize_upstream_version, | |
25 | get_snapshot_revision, | |
26 | git_snapshot_data_from_version, | |
27 | mangle_version_for_git, matches_release, | |
28 | new_package_version, strip_dfsg_suffix, | |
29 | upstream_version_add_revision) | |
35 | 30 | |
36 | 31 | |
37 | 32 | class MangleVersionForGitTests(TestCase): |
16 | 16 | |
17 | 17 | """Tests for debmutate.watch.""" |
18 | 18 | |
19 | from io import StringIO | |
20 | 19 | import os |
21 | 20 | import shutil |
22 | 21 | import tempfile |
22 | from io import StringIO | |
23 | 23 | from unittest import TestCase |
24 | 24 | |
25 | from debmutate.watch import ( | |
26 | parse_watch_file, | |
27 | MissingVersion, | |
28 | Watch, | |
29 | WatchFile, | |
30 | WatchEditor, | |
31 | InvalidUVersionMangle, | |
32 | ) | |
25 | from debmutate.watch import (InvalidUVersionMangle, MissingVersion, Watch, | |
26 | WatchEditor, WatchFile, parse_watch_file) | |
33 | 27 | |
34 | 28 | |
35 | 29 | class ParseWatchFileTests(TestCase): |