import pytest from httpx import AsyncClient @pytest.mark.asyncio async def test_repository_crud(auth_client: AsyncClient) -> None: # Create project first resp = await auth_client.post( "/api/v1/projects", json={"name": "RepoTest", "slug": "repo-test"} ) project_id = resp.json()["id"] # Create repo resp = await auth_client.post( f"/api/v1/projects/{project_id}/repositories", json={"name": "repo1", "git_url": "https://git.example.com/repo1.git"}, ) assert resp.status_code == 201 repo_id = resp.json()["id"] # List resp = await auth_client.get(f"/api/v1/projects/{project_id}/repositories") assert resp.status_code == 200 assert len(resp.json()) == 1 # Get resp = await auth_client.get(f"/api/v1/projects/{project_id}/repositories/{repo_id}") assert resp.status_code == 200 # Update resp = await auth_client.put( f"/api/v1/projects/{project_id}/repositories/{repo_id}", json={"name": "repo1-updated"}, ) assert resp.status_code == 200 assert resp.json()["name"] == "repo1-updated" # Delete resp = await auth_client.delete(f"/api/v1/projects/{project_id}/repositories/{repo_id}") assert resp.status_code == 204