diff --git a/src/api/tests/test_semester.py b/src/api/tests/test_semester.py new file mode 100644 index 000000000..72a0a29d9 --- /dev/null +++ b/src/api/tests/test_semester.py @@ -0,0 +1,14 @@ + +from .util import Client + +def test_semester(upload, client): + """ + semester endpoint should get all of the semesters in the upload + in the case of our test data, we should be getting get 2 semesters: "SUMMER 2020" and "SPRING 2020" + """ + r = client.get("/api/semester") + print(r.text) + data = r.json() + assert len(data) == 2 + assert data[0]["semester"] == "SUMMER 2020" + assert data[1]["semester"] == "SPRING 2020" \ No newline at end of file diff --git a/src/api/tests/test_subsemester.py b/src/api/tests/test_subsemester.py new file mode 100644 index 000000000..dd6da2ad5 --- /dev/null +++ b/src/api/tests/test_subsemester.py @@ -0,0 +1,39 @@ +from .util import Client + + +def test_subsemeseter_spring2020(client, upload): + """ + when subsemester endpoint is given an input such as Spring 2020 + it should only return data for that subsemester i.e. data where the parent semester name + is "SPRING 2020". + """ + r = client.get("/api/subsemester", + params={"semester":"SPRING 2020"}) + assert r.status_code == 200 + data = r.json() + assert len(data) == 1 + assert data[0]["parent_semester_name"] == "SPRING 2020" + +def test_subsemester_nosemester(client, upload): + """ + when no subsemester is taken as input the subsemester endpoint should return all of the subsemesters + contained in the upload data. + Specifically there should be 4 total returned semesters + """ + r = client.get("/api/subsemester") + assert r.status_code == 200 + data = r.json() + assert len(data) == 4 + +def test_subsemester_invalid_semester(client): + """ + invalid input to subsemester to subsemester endpoint such as "moon 2050" + should result in an empty list of semester data being returned. + The status should still be success, and size of the data should be 0. + """ + r = client.get("/api/subsemester", params={"semester":"moon 2050"}) + print(r.text) + assert r.status_code == 200 + data = r.json() + assert len(data) == 0 + \ No newline at end of file