generated from COSC381-2024Winter/myMiniCanvas
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2 from EvanMeyerEmich/test_files
test files
- Loading branch information
Showing
5 changed files
with
150 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# test_assignment.py | ||
import pytest | ||
from assignment import Assignment, Submission | ||
|
||
# Tests for Assignment | ||
class TestAssignment: | ||
def test_init(self): | ||
assignment = Assignment(1, "4-15-2024", 101) | ||
assert assignment.assignment_id == 1 | ||
assert assignment.due_date == "4-15-2024" | ||
assert assignment.course_id == 101 | ||
assert assignment.submission_list == [] | ||
|
||
def test_submit(self): | ||
assignment = Assignment(1, "4-15-2024", 101) | ||
submission = Submission(201, "Essay about Github") | ||
assignment.submit(submission) | ||
assert len(assignment.submission_list) == 1 | ||
assert assignment.submission_list[0].student_id == 201 | ||
|
||
class TestSubmission: | ||
def test_init(self): | ||
submission = Submission(301, "Project report") | ||
assert submission.student_id == 301 | ||
assert submission.submission == "Project report" | ||
assert submission.grade == -1.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# test_course.py | ||
import pytest | ||
from course import CourseManager, Course | ||
|
||
class TestCourseManager: | ||
def test_init(self): | ||
manager = CourseManager() | ||
assert manager.course_list == [] | ||
assert manager.counter == 0 | ||
|
||
def test_generate_id(self): | ||
manager = CourseManager() | ||
id1 = manager.generate_id() | ||
assert id1 == 1 | ||
id2 = manager.generate_id() | ||
assert id2 == 2 | ||
|
||
def test_create_a_course(self): | ||
manager = CourseManager() | ||
course_id = manager.create_a_course("COSC381", "Winter", [1, 2, 3]) | ||
assert course_id == 1 | ||
assert len(manager.course_list) == 1 | ||
course = manager.course_list[0] | ||
assert course.course_code == "COSC381" | ||
assert course.semester == "Winter" | ||
assert course.teacher_list == [1, 2, 3] | ||
|
||
def test_find_a_course(self): | ||
manager = CourseManager() | ||
manager.create_a_course("COSC311", "Fall", [4]) | ||
found_course = manager.find_a_course(1) | ||
assert found_course.course_code == "COSC311" | ||
assert not manager.find_a_course(2) # Should return None | ||
|
||
class TestCourse: | ||
def test_init(self): | ||
course = Course(1, "Math101", "Winter", [5]) | ||
assert course.course_id == 1 | ||
assert course.course_code == "Math101" | ||
assert course.semester == "Winter" | ||
assert course.teacher_list == [5] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
from fastapi.testclient import TestClient | ||
from main import app | ||
from unittest.mock import patch | ||
from course import Course | ||
|
||
client = TestClient(app) | ||
|
||
def test_welcome(): | ||
response = client.get("/") | ||
assert response.status_code == 200 | ||
assert response.text.strip('"') == "Welcome to our miniCanvas!" | ||
|
||
def test_create_a_course(): | ||
"""Test creating a course.""" | ||
course_data = { | ||
"teacher_id_list": [1, 2, 3], | ||
"semester": "Winter" | ||
} | ||
response = client.post("/courses/COSC381", json=course_data) | ||
assert response.status_code == 200, f"Course should be created successfully, got: {response.text}" | ||
assert "course_id" in response.json(), "Response should include a 'course_id'" | ||
|
||
def test_import_students(): | ||
with patch('main.coursemanager.find_a_course') as mock_find: | ||
mock_course = Course(course_id=1, course_code='COSC381', semester='Winter', teacher_list=[]) | ||
mock_course.import_students = lambda x: None # Mock the method to do nothing | ||
mock_find.return_value = mock_course | ||
|
||
student_data = [101, 102, 103] | ||
response = client.put("/courses/1/students", json=student_data) | ||
assert response.status_code == 200, f"Students should be imported successfully, got: {response.text}" | ||
assert mock_course.student_list == [], "Check that no students were actually added in the mock" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
import pytest | ||
from user import UserManager, User | ||
|
||
class TestUserManager: | ||
def test_init(self): | ||
manager = UserManager() | ||
assert manager.user_list == [] | ||
assert manager.counter == 0 | ||
|
||
def test_generate_id(self): | ||
manager = UserManager() | ||
assert manager.generate_id() == 1 | ||
assert manager.generate_id() == 2 | ||
|
||
def test_create_a_user(self): | ||
manager = UserManager() | ||
manager.create_a_user("Alice", "secure123", "student") | ||
assert len(manager.user_list) == 1 | ||
assert manager.user_list[0].name == "Alice" | ||
assert manager.user_list[0].password == "secure123" | ||
assert manager.user_list[0].type == "student" | ||
|
||
def test_find_users(self): | ||
manager = UserManager() | ||
manager.create_a_user("Bob", "password", "teacher") | ||
manager.create_a_user("Charlie", "12345", "admin") | ||
users = manager.find_users([1, 3]) | ||
assert len(users) == 1 | ||
assert users[0].name == "Bob" | ||
|
||
class TestUser: | ||
def test_init(self): | ||
user = User(1, "Dave", "passwd", "admin") | ||
assert user.user_id == 1 | ||
assert user.name == "Dave" | ||
assert user.password == "passwd" | ||
assert user.type == "admin" | ||
|
||
def test_str(self): | ||
user = User(2, "Eve", "pass123", "teacher") | ||
assert str(user) == "ID: 2, name: Eve, type: teacher" | ||
|