| 109 | return self._key(component) in self.installed |
| 110 | |
| 111 | def install(self, project_root: Path, component: ComponentRef) -> None: |
| 112 | from specify_cli.bundler import BundlerError |
| 113 | |
| 114 | self.install_calls.append(self._key(component)) |
| 115 | if self._fail_on is not None and component.id == self._fail_on: |
| 116 | raise BundlerError(f"Simulated failure installing {component.id}") |
| 117 | self.installed.add(self._key(component)) |
| 118 | |
| 119 | def remove(self, project_root: Path, component: ComponentRef) -> None: |
| 120 | self.remove_calls.append(self._key(component)) |