From 7e25d1e1eb150d7488947325322f6b74704c3bbd Mon Sep 17 00:00:00 2001 From: Tiexin Guo Date: Thu, 20 Jun 2024 14:23:33 +0800 Subject: [PATCH] chore: rename charms.yaml file to interface.yaml --- README.md | 4 ++-- interface_tester/collector.py | 19 ++++++++++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 5bdc9d4..b83dc51 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Interface-tester-pytest +# pytest-interface-tester This repository contains a library meant to facilitate compliance testing of charm relation interfaces. The problem is best stated as follows: @@ -74,7 +74,7 @@ The flow is (from the POV of the spec repo): ## Customizing the fixture's address -You can customize name and location of the fixture, but you will need to include that data when registering your charm with the interface. In `charms.yaml`, you can then specify: +You can customize name and location of the fixture, but you will need to include that data when registering your charm with the interface. In `interface.yaml`, you can then specify: ```yaml - name: my-charm-name # required url: https://github.com/foo/my-charm-name # required diff --git a/interface_tester/collector.py b/interface_tester/collector.py index d297455..bd76873 100644 --- a/interface_tester/collector.py +++ b/interface_tester/collector.py @@ -9,6 +9,7 @@ schemas for one, you can execute this file to ascertain that all relevant data is being gathered correctly. """ + import dataclasses import importlib import inspect @@ -61,7 +62,7 @@ def __hash__(self): class _CharmsDotYamlSpec(TypedDict): - """Specification of the `charms.yaml` file each interface/version dir should contain.""" + """Specification of the `interface.yaml` file each interface/version dir should contain.""" providers: List[_CharmTestConfig] requirers: List[_CharmTestConfig] @@ -152,19 +153,19 @@ def get_schemas(file: Path) -> Dict[Literal["requirer", "provider"], Type[DataBa def _gather_charms_for_version(version_dir: Path) -> Optional[_CharmsDotYamlSpec]: - """Attempt to read the `charms.yaml` for this version sudir. + """Attempt to read the `interface.yaml` for this version sudir. On failure, return None. """ - charms_yaml = version_dir / "charms.yaml" - if not charms_yaml.exists(): + interface_yaml = version_dir / "interface.yaml" + if not interface_yaml.exists(): return None charms = None try: - charms = yaml.safe_load(charms_yaml.read_text()) + charms = yaml.safe_load(interface_yaml.read_text()) except (json.JSONDecodeError, yaml.YAMLError) as e: - logger.error("failed to decode %s: verify that it is valid yaml: %s" % (charms_yaml, e)) + logger.error("failed to decode %s: verify that it is valid yaml: %s" % (interface_yaml, e)) except FileNotFoundError as e: logger.error("not found: %s" % e) if not charms: @@ -175,10 +176,10 @@ def _gather_charms_for_version(version_dir: Path) -> Optional[_CharmsDotYamlSpec if not isinstance(providers, list) or not isinstance(requirers, list): raise TypeError( - f"{charms_yaml} file has unexpected providers/requirers spec; " + f"{interface_yaml} file has unexpected providers/requirers spec; " f"expected two lists of dicts (yaml mappings); " f"got {type(providers)}/{type(requirers)}. " - f"Invalid charms.yaml format." + f"Invalid interface.yaml format." ) provider_configs = [] @@ -190,7 +191,7 @@ def _gather_charms_for_version(version_dir: Path) -> Optional[_CharmsDotYamlSpec except TypeError: logger.error( "failure parsing %s to _CharmTestConfig; invalid charm test " - "configuration in %s/charms.yaml:providers" % (item, version_dir) + "configuration in %s/interface.yaml:providers" % (item, version_dir) ) continue destination.append(cfg)