From 446445e6803755e1d4de71b9313fd1d48581f46d Mon Sep 17 00:00:00 2001 From: PhoenixTamaoki Date: Tue, 15 Feb 2022 17:37:12 -0500 Subject: [PATCH 1/2] semester and subsemester tests --- src/api/tests/test_semester.py | 12 ++++++++++++ src/api/tests/test_subsemester.py | 26 ++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/api/tests/test_semester.py create mode 100644 src/api/tests/test_subsemester.py diff --git a/src/api/tests/test_semester.py b/src/api/tests/test_semester.py new file mode 100644 index 000000000..51533011a --- /dev/null +++ b/src/api/tests/test_semester.py @@ -0,0 +1,12 @@ + +from .util import Client + + #semester should get all of the semesters in the upload + #in the case of our test data, we should be getting Summer and Spring semester of 2020 +def test_semester(upload, client): + 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..cdb475562 --- /dev/null +++ b/src/api/tests/test_subsemester.py @@ -0,0 +1,26 @@ +from .util import Client + + #when given an input such as Spring 2020 subsemester it should only return data for that subsemester +def test_subsemeseter_spring2020(client, upload): + 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" + + #when no subsemester is taken as input the API should return all of the subsemesters +def test_subsemester_nosemester(client, upload): + r = client.get("/api/subsemester") + assert r.status_code == 200 + data = r.json() + assert len(data) == 4 + + #invalid semester input should return no semesters +def test_subsemester_invalid_semester(client): + 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 From cc5029107de15519c76425c109dd5462a319263f Mon Sep 17 00:00:00 2001 From: PhoenixTamaoki Date: Fri, 18 Feb 2022 16:18:01 -0500 Subject: [PATCH 2/2] updated comments --- src/api/tests/test_semester.py | 6 ++++-- src/api/tests/test_subsemester.py | 19 ++++++++++++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/api/tests/test_semester.py b/src/api/tests/test_semester.py index 51533011a..72a0a29d9 100644 --- a/src/api/tests/test_semester.py +++ b/src/api/tests/test_semester.py @@ -1,9 +1,11 @@ from .util import Client - #semester should get all of the semesters in the upload - #in the case of our test data, we should be getting Summer and Spring semester of 2020 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() diff --git a/src/api/tests/test_subsemester.py b/src/api/tests/test_subsemester.py index cdb475562..dd6da2ad5 100644 --- a/src/api/tests/test_subsemester.py +++ b/src/api/tests/test_subsemester.py @@ -1,7 +1,12 @@ from .util import Client - #when given an input such as Spring 2020 subsemester it should only return data for that subsemester + 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 @@ -9,15 +14,23 @@ def test_subsemeseter_spring2020(client, upload): assert len(data) == 1 assert data[0]["parent_semester_name"] == "SPRING 2020" - #when no subsemester is taken as input the API should return all of the subsemesters 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 - #invalid semester input should return no semesters 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