Job_Tracker_API / tests /test_applications.py
abdullah090809's picture
add pytest tests for users and applications
b4f32e7
Raw
History Blame Contribute Delete
3.25 kB
import pytest
from app.models.application import ApplicationStatus
def test_create_application(authorized_client):
response = authorized_client.post("/applications", json={
"company": "Google",
"role": "Backend Engineer",
"status": "applied",
"applied_date": "2026-06-01",
"jd_text": "We need a Python developer",
"notes": "Referred by a friend"
})
assert response.status_code == 201
data = response.json()
assert data["company"] == "Google"
assert data["role"] == "Backend Engineer"
assert data["status"] == "applied"
def test_create_application_unauthorized(client):
response = client.post("/applications", json={
"company": "Google",
"role": "Backend Engineer",
"status": "applied",
"applied_date": "2026-06-01"
})
assert response.status_code == 401
def test_get_all_applications(authorized_client, test_applications):
response = authorized_client.get("/applications")
assert response.status_code == 200
assert len(response.json()) == len(test_applications)
def test_get_all_applications_unauthorized(client):
response = client.get("/applications")
assert response.status_code == 401
def test_get_one_application(authorized_client, test_applications):
response = authorized_client.get(f"/applications/{test_applications[0].id}")
assert response.status_code == 200
data = response.json()
assert data["id"] == test_applications[0].id
assert data["company"] == test_applications[0].company
def test_get_one_application_not_found(authorized_client):
response = authorized_client.get("/applications/-99999")
assert response.status_code == 404
def test_get_one_application_unauthorized(client, test_applications):
response = client.get(f"/applications/{test_applications[0].id}")
assert response.status_code == 401
def test_update_application(authorized_client, test_applications):
response = authorized_client.put(f"/applications/{test_applications[0].id}", json={
"status": "interview",
"notes": "Got a call back"
})
assert response.status_code == 200
assert response.json()["status"] == "interview"
assert response.json()["notes"] == "Got a call back"
def test_update_application_not_found(authorized_client):
response = authorized_client.put("/applications/-99999", json={
"status": "interview"
})
assert response.status_code == 404
def test_update_application_unauthorized(client, test_applications):
response = client.put(f"/applications/{test_applications[0].id}", json={
"status": "interview"
})
assert response.status_code == 401
def test_delete_application(authorized_client, test_applications):
response = authorized_client.delete(f"/applications/{test_applications[0].id}")
assert response.status_code == 204
def test_delete_application_not_found(authorized_client):
response = authorized_client.delete("/applications/-99999")
assert response.status_code == 404
def test_delete_application_unauthorized(client, test_applications):
response = client.delete(f"/applications/{test_applications[0].id}")
assert response.status_code == 401