Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 21 additions & 1 deletion tests/test_basic.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,25 @@ def test_score_single_project_no_match():
assert score == 0, f"Expected 0 but got {score}"


def test_score_single_project_alias_matching():
"""Project skills should be alias-resolved so 'JS' in a project matches 'javascript' from the user."""
project = {
"skills": ["JS"],
"level": "Beginner",
"interest": "Web",
"time": "Low"
}
score = score_single_project(
project,
user_skills=["javascript"],
level="Beginner",
interest="Web",
time_availability="Low"
)
# 1 skill match (3) + level (2) + interest (2) + time (1) = 8
assert score == 8, f"Expected 8 but got {score}"


def test_get_recommendations_returns_results():
"""Python + Beginner + Data + Low should always return at least one result."""
results = get_recommendations("Python", "Beginner", "Data", "Low")
Expand Down Expand Up @@ -280,7 +299,8 @@ def test_download_code_found():
response = client.get("/project/1/download")
assert response.status_code == 200

def test_health_check(client):
def test_health_check():
client = get_client()
response = client.get("/health")
assert response.status_code == 200
data = response.get_json()
Expand Down
2 changes: 1 addition & 1 deletion utils/recommender.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ def score_single_project(
score = 0

# Compare user's skills against the project's required skills
project_skills = [s.lower() for s in project.get("skills", [])]
project_skills = [SKILL_ALIASES.get(s.lower(), s.lower()) for s in project.get("skills", [])]
# Count how many user skills overlap with the
# skills required by the current project.
matched_skills = sum(1 for skill in user_skills if skill in project_skills)
Expand Down
Loading