Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #22 #23

Merged
merged 9 commits into from
Feb 24, 2024
2 changes: 1 addition & 1 deletion backend/project/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from .endpoints.index import index_bp
from .endpoints.index.index import index_bp

db = SQLAlchemy()

Expand Down
23 changes: 0 additions & 23 deletions backend/project/endpoints/index.py

This file was deleted.

45 changes: 45 additions & 0 deletions backend/project/endpoints/index/OpenAPI_Object.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"openapi": "3.1.0",
"info": {
"title": "Pigeonhole API",
"summary": "A project submission and grading API for University Ghent students and professors.",
"description": "The API built for the Pigeonhole application. It serves as an interface for student of University Ghent. They can submit solutions to projects created by their professors. Professors and their assistents can then review these submitions, grade them and define custom tests that automatically run on every submition. The API is built using the OpenAPI 3.1.0 specification.",
"version": "1.0.0",
"contact": {
"name": "Project discussion forum",
"url": "https://github.com/SELab-2/UGent-opgave/discussions",
"email": "Bart.Coppens@UGent.be"
},
"x-authors": [
{
"name": "Aron Buzogany",
"github": "https://github.com/AronBuzogany"
},
{
"name": "Gerwoud Van den Eynden",
"github": "https://github.com/Gerwoud"
},
{
"name": "Jarne Clauw",
"github": "https://github.com/JarneClauw"
},
{
"name": "Siebe Vlietinck",
"github": "https://github.com/Vucis"
},
{
"name": "Warre Provoost",
"github": "https://github.com/warreprovoost"
},
{
"name": "Cedric Mekeirle",
"github": "https://github.com/JibrilExe"
},
{
"name": "Matisse Sulzer",
"github": "https://github.com/Matisse-Sulzer"
}
]
},
"paths": []
}
21 changes: 21 additions & 0 deletions backend/project/endpoints/index/index.py
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Last """ of docstring shouldn't contain text

Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
"""Index api point"""
import os
from flask import Blueprint, send_from_directory
from flask_restful import Resource, Api

index_bp = Blueprint("index", __name__)
index_endpoint = Api(index_bp)

class Index(Resource):
"""Api endpoint for the / route"""

def get(self):
"""
Example of an api endpoint function that will respond to get requests made to
return a json data structure with key Message and value Hello World!
"""
dir_path = os.path.dirname(os.path.realpath(__file__))
return send_from_directory(dir_path, "OpenAPI_Object.json")


index_bp.add_url_rule("/", view_func=Index.as_view("index"))
Empty file.
File renamed without changes.
13 changes: 13 additions & 0 deletions backend/tests/endpoints/index_test.py
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docstring of test_openapi_spec only contains 1 " instead of 3 "

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
"""Test the base routes of the application"""

def test_home(client):
"""Test whether the index page is accesible"""
response = client.get("/")
assert response.status_code == 200

def test_openapi_spec(client):
"""Test whether the required fields of the openapi spec are present"""
response = client.get("/")
response_json = response.json
assert response_json["openapi"] is not None
assert response_json["info"] is not None
6 changes: 0 additions & 6 deletions backend/tests/test_base.py

This file was deleted.