Create a studio with unique name, track for cleanup.
(self, **kwargs)
| 192 | f'{", ".join(cls._created_studios)}') |
| 193 | |
| 194 | def _create_and_track(self, **kwargs): |
| 195 | """Create a studio with unique name, track for cleanup.""" |
| 196 | name = f'ut_test_create_{uuid4().hex[:8]}' |
| 197 | repo_id = f'{self.owner}/{name}' |
| 198 | api = HubApi() |
| 199 | # Merge studio creation defaults from config with caller overrides |
| 200 | create_kwargs = { |
| 201 | 'sdk_type': |
| 202 | self.config.get('sdk_type', 'gradio'), |
| 203 | 'sdk_version': |
| 204 | self.config.get('sdk_version', '6.2.0'), |
| 205 | 'base_image': |
| 206 | self.config.get('base_image', |
| 207 | 'ubuntu22.04-py311-torch2.9.1-modelscope1.35.0'), |
| 208 | 'hardware': |
| 209 | self.config.get('hardware', 'platform/2v-cpu-16g-mem'), |
| 210 | } |
| 211 | create_kwargs.update(kwargs) |
| 212 | print(f'Creating studio {repo_id} with config: {self.config}') |
| 213 | url = api.create_repo( |
| 214 | repo_id, |
| 215 | repo_type='studio', |
| 216 | visibility=self.config.get('visibility', 'private'), |
| 217 | license=self.config.get('license', 'apache-2.0'), |
| 218 | token=self.token, |
| 219 | endpoint=self.config.get('endpoint'), |
| 220 | create_default_config=False, |
| 221 | **create_kwargs, |
| 222 | ) |
| 223 | self._created_studios.append(repo_id) |
| 224 | print(f'Created studio {repo_id} at {url}') |
| 225 | return repo_id, url |
| 226 | |
| 227 | def test_create_studio_basic(self): |
| 228 | """Create a basic studio and verify it exists.""" |
no test coverage detected