diff options
author | John L. Villalovos <john@sodarock.com> | 2022-06-03 21:21:38 -0700 |
---|---|---|
committer | John L. Villalovos <john@sodarock.com> | 2022-06-03 21:24:58 -0700 |
commit | c86e471dead930468172f4b7439ea6fa207f12e8 (patch) | |
tree | b62a4f0651ccf75ecd490a2512090f4838bf6e2b | |
parent | 6189437d2c8d18f6c7d72aa7743abd6d36fb4efa (diff) | |
download | gitlab-c86e471dead930468172f4b7439ea6fa207f12e8.tar.gz |
chore: rename `what` to `gitlab_resource`
Naming a variable `what` makes it difficult to understand what it is
used for.
Rename it to `gitlab_resource` as that is what is being stored.
The Gitlab documentation talks about them being resources:
https://docs.gitlab.com/ee/api/api_resources.html
This will improve code readability.
-rw-r--r-- | gitlab/cli.py | 14 | ||||
-rw-r--r-- | gitlab/v4/cli.py | 18 | ||||
-rw-r--r-- | tests/unit/test_cli.py | 14 |
3 files changed, 24 insertions, 22 deletions
diff --git a/gitlab/cli.py b/gitlab/cli.py index 4159632..c9e182d 100644 --- a/gitlab/cli.py +++ b/gitlab/cli.py @@ -91,14 +91,16 @@ def die(msg: str, e: Optional[Exception] = None) -> None: sys.exit(1) -def what_to_cls(what: str, namespace: ModuleType) -> Type[RESTObject]: +def gitlab_resource_to_cls( + gitlab_resource: str, namespace: ModuleType +) -> Type[RESTObject]: classes = CaseInsensitiveDict(namespace.__dict__) - lowercase_class = what.replace("-", "") + lowercase_class = gitlab_resource.replace("-", "") return classes[lowercase_class] -def cls_to_what(cls: RESTObject) -> str: +def cls_to_gitlab_resource(cls: RESTObject) -> str: dasherized_uppercase = camel_upperlower_regex.sub(r"\1-\2", cls.__name__) dasherized_lowercase = camel_lowerupper_regex.sub(r"\1-\2", dasherized_uppercase) return dasherized_lowercase.lower() @@ -322,7 +324,7 @@ def main() -> None: fields = [x.strip() for x in args.fields.split(",")] debug = args.debug action = args.whaction - what = args.what + gitlab_resource = args.gitlab_resource args_dict = vars(args) # Remove CLI behavior-related args @@ -331,7 +333,7 @@ def main() -> None: "config_file", "verbose", "debug", - "what", + "gitlab_resource", "whaction", "version", "output", @@ -359,4 +361,4 @@ def main() -> None: if debug: gl.enable_debug() - gitlab.v4.cli.run(gl, what, action, args_dict, verbose, output, fields) + gitlab.v4.cli.run(gl, gitlab_resource, action, args_dict, verbose, output, fields) diff --git a/gitlab/v4/cli.py b/gitlab/v4/cli.py index 226459e..18bd3f0 100644 --- a/gitlab/v4/cli.py +++ b/gitlab/v4/cli.py @@ -29,13 +29,13 @@ from gitlab import cli class GitlabCLI: def __init__( - self, gl: gitlab.Gitlab, what: str, action: str, args: Dict[str, str] + self, gl: gitlab.Gitlab, gitlab_resource: str, action: str, args: Dict[str, str] ) -> None: - self.cls: Type[gitlab.base.RESTObject] = cli.what_to_cls( - what, namespace=gitlab.v4.objects + self.cls: Type[gitlab.base.RESTObject] = cli.gitlab_resource_to_cls( + gitlab_resource, namespace=gitlab.v4.objects ) self.cls_name = self.cls.__name__ - self.what = what.replace("-", "_") + self.gitlab_resource = gitlab_resource.replace("-", "_") self.action = action.lower() self.gl = gl self.args = args @@ -81,7 +81,7 @@ class GitlabCLI: def run(self) -> Any: # Check for a method that matches object + action - method = f"do_{self.what}_{self.action}" + method = f"do_{self.gitlab_resource}_{self.action}" if hasattr(self, method): return getattr(self, method)() @@ -333,7 +333,7 @@ def _populate_sub_parser_by_class( def extend_parser(parser: argparse.ArgumentParser) -> argparse.ArgumentParser: subparsers = parser.add_subparsers( - title="object", dest="what", help="Object to manipulate." + title="object", dest="gitlab_resource", help="Object to manipulate." ) subparsers.required = True @@ -347,7 +347,7 @@ def extend_parser(parser: argparse.ArgumentParser) -> argparse.ArgumentParser: classes.add(cls._obj_cls) for cls in sorted(classes, key=operator.attrgetter("__name__")): - arg_name = cli.cls_to_what(cls) + arg_name = cli.cls_to_gitlab_resource(cls) object_group = subparsers.add_parser(arg_name) object_subparsers = object_group.add_subparsers( @@ -497,14 +497,14 @@ PRINTERS: Dict[ def run( gl: gitlab.Gitlab, - what: str, + gitlab_resource: str, action: str, args: Dict[str, Any], verbose: bool, output: str, fields: List[str], ) -> None: - g_cli = GitlabCLI(gl=gl, what=what, action=action, args=args) + g_cli = GitlabCLI(gl=gl, gitlab_resource=gitlab_resource, action=action, args=args) data = g_cli.run() printer: Union[JSONPrinter, LegacyPrinter, YAMLPrinter] = PRINTERS[output]() diff --git a/tests/unit/test_cli.py b/tests/unit/test_cli.py index 2ada1c3..2da8ddf 100644 --- a/tests/unit/test_cli.py +++ b/tests/unit/test_cli.py @@ -29,7 +29,7 @@ from gitlab.exceptions import GitlabError @pytest.mark.parametrize( - "what,expected_class", + "gitlab_resource,expected_class", [ ("class", "Class"), ("test-class", "TestClass"), @@ -39,18 +39,18 @@ from gitlab.exceptions import GitlabError ("ldap-group", "LDAPGroup"), ], ) -def test_what_to_cls(what, expected_class): +def test_gitlab_resource_to_cls(gitlab_resource, expected_class): def _namespace(): pass ExpectedClass = type(expected_class, (), {}) _namespace.__dict__[expected_class] = ExpectedClass - assert cli.what_to_cls(what, _namespace) == ExpectedClass + assert cli.gitlab_resource_to_cls(gitlab_resource, _namespace) == ExpectedClass @pytest.mark.parametrize( - "class_name,expected_what", + "class_name,expected_gitlab_resource", [ ("Class", "class"), ("TestClass", "test-class"), @@ -61,10 +61,10 @@ def test_what_to_cls(what, expected_class): ("LDAPGroup", "ldap-group"), ], ) -def test_cls_to_what(class_name, expected_what): +def test_cls_to_gitlab_resource(class_name, expected_gitlab_resource): TestClass = type(class_name, (), {}) - assert cli.cls_to_what(TestClass) == expected_what + assert cli.cls_to_gitlab_resource(TestClass) == expected_gitlab_resource @pytest.mark.parametrize( @@ -125,7 +125,7 @@ def test_base_parser(): def test_v4_parse_args(): parser = cli._get_parser() args = parser.parse_args(["project", "list"]) - assert args.what == "project" + assert args.gitlab_resource == "project" assert args.whaction == "list" |