Skip to content
Prev Previous commit
Next Next commit
- changed input repo from vscode to flask
-lowered max file size from 243 to 200 for all unit tests -correctly handled missing fields and invalid token unit tests
  • Loading branch information
fritznastor committed Jul 24, 2025
commit 5ff74776b13f71ed4d10c1530c7a2864d67f6a91
48 changes: 24 additions & 24 deletions tests/test_flow_integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ async def test_remote_repository_analysis(request: pytest.FixtureRequest) -> Non
"""Test the complete flow of analyzing a remote repository."""
client = request.getfixturevalue("test_client")
form_data = {
"input_text": "https://github.com/microsoft/vscode",
"max_file_size": "243",
"input_text": "https://github.com/pallets/flask",
"max_file_size": "200",
"pattern_type": "exclude",
"pattern": "",
"token": "",
Expand All @@ -75,7 +75,7 @@ async def test_invalid_repository_url(request: pytest.FixtureRequest) -> None:
client = request.getfixturevalue("test_client")
form_data = {
"input_text": "https://github.com/nonexistent/repo",
"max_file_size": "243",
"max_file_size": "200",
"pattern_type": "exclude",
"pattern": "",
"token": "",
Expand All @@ -95,7 +95,7 @@ async def test_large_repository(request: pytest.FixtureRequest) -> None:
"""Simulate analysis of a large repository with nested folders and many files."""
client = request.getfixturevalue("test_client")
form_data = {
"input_text": "https://github.com/microsoft/vscode",
"input_text": "https://github.com/pallets/flask",
"max_file_size": "100", # Lower this to force skipping large files
"pattern_type": "exclude",
"pattern": "",
Expand All @@ -120,8 +120,8 @@ async def test_concurrent_requests(request: pytest.FixtureRequest) -> None:

def make_request() -> None:
form_data = {
"input_text": "https://github.com/microsoft/vscode",
"max_file_size": "243",
"input_text": "https://github.com/pallets/flask",
"max_file_size": "200",
"pattern_type": "exclude",
"pattern": "",
"token": "",
Expand All @@ -147,7 +147,7 @@ async def test_large_file_handling(request: pytest.FixtureRequest) -> None:
"""Test handling of repositories with large files."""
client = request.getfixturevalue("test_client")
form_data = {
"input_text": "https://github.com/microsoft/vscode",
"input_text": "https://github.com/pallets/flask",
"max_file_size": "1",
"pattern_type": "exclude",
"pattern": "",
Expand All @@ -170,8 +170,8 @@ async def test_repository_with_patterns(request: pytest.FixtureRequest) -> None:
"""Test repository analysis with include/exclude patterns."""
client = request.getfixturevalue("test_client")
form_data = {
"input_text": "https://github.com/microsoft/vscode",
"max_file_size": "243",
"input_text": "https://github.com/pallets/flask",
"max_file_size": "200",
"pattern_type": "include",
"pattern": "*.md",
"token": "",
Expand All @@ -190,11 +190,11 @@ async def test_repository_with_patterns(request: pytest.FixtureRequest) -> None:

assert "summary" in response_data
assert isinstance(response_data["summary"], str)
assert "microsoft/vscode" in response_data["summary"].lower()
assert "pallets/flask" in response_data["summary"].lower()

assert "tree" in response_data
assert isinstance(response_data["tree"], str)
assert "microsoft-vscode" in response_data["tree"].lower()
assert "pallets-flask" in response_data["tree"].lower()

assert "pattern_type" in response_data
assert response_data["pattern_type"] == "include"
Expand All @@ -204,15 +204,15 @@ async def test_repository_with_patterns(request: pytest.FixtureRequest) -> None:
else:
assert "error" in response_data
assert isinstance(response_data["error"], str)
assert response_data["error"] # not empty
assert response_data["error"]


@pytest.mark.asyncio
async def test_missing_required_fields(request: pytest.FixtureRequest) -> None:
"""Test API response when required fields are missing."""
client = request.getfixturevalue("test_client")
form_data = {
"max_file_size": "243",
"max_file_size": "200",
"pattern_type": "exclude",
"pattern": "",
"token": "",
Expand All @@ -221,12 +221,11 @@ async def test_missing_required_fields(request: pytest.FixtureRequest) -> None:
assert response.status_code in (
status.HTTP_422_UNPROCESSABLE_ENTITY,
status.HTTP_429_TOO_MANY_REQUESTS,
status.HTTP_200_OK,
)

form_data = {
"input_text": "https://github.com/microsoft/vscode",
"max_file_size": "243",
"input_text": "https://github.com/pallets/flask",
"max_file_size": "200",
"pattern": "",
"token": "",
}
Expand All @@ -245,7 +244,7 @@ async def test_invalid_field_types(request: pytest.FixtureRequest) -> None:

form_data = {
"input_text": 12345,
"max_file_size": "243",
"max_file_size": "200",
"pattern_type": "exclude",
"pattern": "",
"token": "",
Expand All @@ -254,8 +253,8 @@ async def test_invalid_field_types(request: pytest.FixtureRequest) -> None:
assert response.status_code == status.HTTP_422_UNPROCESSABLE_ENTITY

form_data = {
"input_text": "https://github.com/microsoft/vscode",
"max_file_size": "243",
"input_text": "https://github.com/pallets/flask",
"max_file_size": "200",
"pattern_type": "exclude",
"pattern": ["*.md"],
"token": "",
Expand All @@ -269,8 +268,8 @@ async def test_unsupported_pattern_type(request: pytest.FixtureRequest) -> None:
"""Test API response for unsupported pattern_type."""
client = request.getfixturevalue("test_client")
form_data = {
"input_text": "https://github.com/microsoft/vscode",
"max_file_size": "243",
"input_text": "https://github.com/pallets/flask",
"max_file_size": "200",
"pattern_type": "invalid_type",
"pattern": "*.md",
"token": "",
Expand All @@ -286,17 +285,18 @@ async def test_invalid_token(request: pytest.FixtureRequest) -> None:
"""Test API response for an invalid or expired token."""
client = request.getfixturevalue("test_client")
form_data = {
"input_text": "https://github.com/microsoft/vscode",
"max_file_size": "243",
"input_text": "https://github.com/pallets/flask",
"max_file_size": "200",
"pattern_type": "exclude",
"pattern": "",
"token": "invalid_token_1234567890",
}
response = client.post("/api/ingest", json=form_data)
# Accept all likely error codes for invalid token
assert response.status_code in (
status.HTTP_401_UNAUTHORIZED,
status.HTTP_400_BAD_REQUEST,
status.HTTP_429_TOO_MANY_REQUESTS,
)
), f"Unexpected status code: {response.status_code}"
response_data = response.json()
assert "error" in response_data or "detail" in response_data