Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • tddd96-grupp11/teknikattan-scoring-system
1 result
Show changes
......@@ -140,7 +140,6 @@ class Slide(db.Model):
class Question(db.Model):
__table_args__ = (db.UniqueConstraint("slide_id", "name"),)
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(STRING_SIZE), nullable=False)
total_score = db.Column(db.Integer, nullable=False, default=1)
......
......@@ -21,6 +21,7 @@ class Config:
class DevelopmentConfig(Config):
DEBUG = True
SQLALCHEMY_ECHO = False
# HOST = "localhost"
# PORT = 5432
# USER = "postgres"
......@@ -28,7 +29,6 @@ class DevelopmentConfig(Config):
# DATABASE = "teknik8"
# SQLALCHEMY_DATABASE_URI = "sqlite:///database.db"
# SQLALCHEMY_DATABASE_URI = "postgresql://" + USER + ":" + PASSWORD + "@" + HOST + ":" + str(PORT) + "/" + DATABASE
SQLALCHEMY_ECHO = False
class TestingConfig(Config):
......@@ -38,9 +38,10 @@ class TestingConfig(Config):
class ProductionConfig(Config):
SQLALCHEMY_DATABASE_URI = "sqlite:///database.db"
# HOST = 'postgresql'
# HOST = "localhost"
# PORT = 5432
# USER = 'postgres'
# PASSWORD = 'password'
# DATABASE = 'teknik8'
# SQLALCHEMY_DATABASE_URI = 'postgresql://'+USER+":"+PASSWORD+"@"+HOST+":"+str(PORT)+"/"+DATABASE
# USER = "postgres"
# PASSWORD = "password"
# DATABASE = "teknik8"
# SQLALCHEMY_DATABASE_URI = "sqlite:///database.db"
# SQLALCHEMY_DATABASE_URI = "postgresql://" + USER + ":" + PASSWORD + "@" + HOST + ":" + str(PORT) + "/" + DATABASE
......@@ -47,11 +47,11 @@ def _add_items():
# Add competitions
for i in range(len(question_types_items)):
item_comp = dbc.add.competition(f"Tävling {i}", 2000 + i, city_id)
dbc.edit.slide(item_comp.slides[0], timer=5, title="test-slide-title")
dbc.edit.default(item_comp.slides[0], timer=5, title="test-slide-title")
# Add two more slides to competition
dbc.add.slide(item_comp)
dbc.add.slide(item_comp)
dbc.add.slide(item_comp.id)
dbc.add.slide(item_comp.id)
# Add slides
for j, item_slide in enumerate(item_comp.slides):
......@@ -63,15 +63,17 @@ def _add_items():
dbc.utils.commit_and_refresh(item_slide)
# Add question to competition
"""
item_question = dbc.add.question(
name=f"Question {j}: {question_types_items[j].name}",
total_score=j,
type_id=question_types_items[j].id,
item_slide=item_slide,
slide_id=item_slide.id,
)
"""
for i in range(3):
dbc.add.question_alternative(f"Alternative {i}", 0, item_question.id)
dbc.add.question_alternative(f"Alternative {i}", 0, item_slide.questions[0].id)
# Add text components
# TODO: Add images as components
......@@ -80,19 +82,18 @@ def _add_items():
y = random.randrange(1, 500)
w = random.randrange(150, 400)
h = random.randrange(150, 400)
dbc.add.component(1, item_slide, {"text": f"hej{k}"}, x, y, w, h)
dbc.add.component(1, item_slide.id, {"text": f"hej{k}"}, x, y, w, h)
# TODO: Remove comments when slide without questions is fixed
# item_slide = dbc.add.slide(item_comp)
# item_slide.title = f"Slide {len(item_comp.slides)}"
# item_slide.body = f"Body {len(item_comp.slides)}"
# item_slide.timer = 100 + j
# # item_slide.settings = "{}"
# item_slide.settings = "{}"
# dbc.utils.commit_and_refresh(item_slide)
# Add teams
for name in teams:
dbc.add.team(f"{name}{i}", item_comp)
dbc.add.team(f"{name}{i}", item_comp.id)
if __name__ == "__main__":
......
......@@ -82,10 +82,12 @@ def test_competition_api(client):
response, body = get(client, f"/api/competitions/{competition_id}/slides", headers=headers)
assert response.status_code == codes.OK
assert len(body["items"]) == 3
assert len(body["items"]) == 2
"""
response, body = put(client, f"/api/competitions/{competition_id}/slides/{2}/order", {"order": 1}, headers=headers)
assert response.status_code == codes.OK
"""
response, body = post(client, f"/api/competitions/{competition_id}/teams", {"name": "t1"}, headers=headers)
assert response.status_code == codes.OK
......@@ -256,28 +258,25 @@ def test_slide_api(client):
# Add slide
response, body = post(client, f"/api/competitions/{CID}/slides", headers=headers)
assert response.status_code == codes.OK
response, body = get(client, f"/api/competitions/{CID}/slides", headers=headers)
assert body["count"] == 4
# Add another slide
response, body = post(client, f"/api/competitions/{CID}/slides", headers=headers)
# Get slide
slide_order = 1
response, item_slide = get(client, f"/api/competitions/{CID}/slides/{slide_order}", headers=headers)
slide_id = 2
response, item_slide = get(client, f"/api/competitions/{CID}/slides/{slide_id}", headers=headers)
assert response.status_code == codes.OK
assert item_slide["order"] == slide_order
# Edit slide
order = 6
title = "Ny titel"
body = "Ny body"
timer = 43
assert item_slide["order"] != order
assert item_slide["title"] != title
# assert item_slide["body"] != body
assert item_slide["timer"] != timer
response, item_slide = put(
client,
f"/api/competitions/{CID}/slides/{slide_order}",
f"/api/competitions/{CID}/slides/{slide_id}",
# TODO: Implement so these commented lines can be edited
# {"order": order, "title": title, "body": body, "timer": timer},
{"title": title, "timer": timer},
......@@ -290,31 +289,40 @@ def test_slide_api(client):
assert item_slide["timer"] == timer
# Delete slide
response, _ = delete(client, f"/api/competitions/{CID}/slides/{slide_order}", headers=headers)
response, _ = delete(client, f"/api/competitions/{CID}/slides/{slide_id}", headers=headers)
assert response.status_code == codes.NO_CONTENT
# Checks that there are fewer slides
response, body = get(client, f"/api/competitions/{CID}/slides", headers=headers)
assert response.status_code == codes.OK
assert body["count"] == 4
assert body["count"] == 3
# Tries to delete slide again, should work since the order is now changed
response, _ = delete(client, f"/api/competitions/{CID}/slides/{slide_order}", headers=headers)
assert response.status_code == codes.NO_CONTENT
# Tries to delete slide again, which will fail
response, _ = delete(client, f"/api/competitions/{CID}/slides/{slide_id}", headers=headers)
assert response.status_code != codes.OK
# Get all slides
response, body = get(client, f"/api/competitions/{CID}/slides", headers=headers)
assert response.status_code == codes.OK
assert body["count"] == 3
assert body["items"][0]["id"] == 3
assert body["items"][0]["order"] == 0
slide_id = 3
"""
# Changes the order to the same order
slide_order = body["items"][0]["order"]
response, _ = put(
client, f"/api/competitions/{CID}/slides/{slide_order}/order", {"order": slide_order}, headers=headers
client, f"/api/competitions/{CID}/slides/{slide_id}/order", {"order": 0}, headers=headers
)
assert response.status_code == codes.OK
# Changes the order
change_order_test(client, CID, slide_order, slide_order + 1, headers)
change_order_test(client, CID, slide_id, slide_id + 1, headers)
# Copies slide
for _ in range(10):
response, _ = post(client, f"/api/competitions/{CID}/slides/{slide_order}/copy", headers=headers)
response, _ = post(client, f"/api/competitions/{CID}/slides/{slide_id}/copy", headers=headers)
assert response.status_code == codes.OK
"""
def test_question_api(client):
......@@ -330,7 +338,7 @@ def test_question_api(client):
slide_order = 1
response, body = get(client, f"/api/competitions/{CID}/questions", headers=headers)
assert response.status_code == codes.OK
assert body["count"] == 0
assert body["count"] == 1
# Get questions from another competition that should have some questions
CID = 3
......@@ -342,7 +350,7 @@ def test_question_api(client):
# Add question
name = "Nytt namn"
type_id = 2
slide_order = 1
slide_order = 6
response, item_question = post(
client,
f"/api/competitions/{CID}/slides/{slide_order}/questions",
......
......@@ -43,8 +43,8 @@ def add_default_values():
for j in range(2):
item_comp = dbc.add.competition(f"Tävling {j}", 2012, item_city.id)
# Add two more slides to competition
dbc.add.slide(item_comp)
dbc.add.slide(item_comp)
dbc.add.slide(item_comp.id)
dbc.add.slide(item_comp.id)
# Add slides
for i, item_slide in enumerate(item_comp.slides):
......@@ -56,10 +56,10 @@ def add_default_values():
dbc.utils.commit_and_refresh(item_slide)
# Add question to competition
dbc.add.question(name=f"Q{i+1}", total_score=i + 1, type_id=1, item_slide=item_slide)
# dbc.add.question(name=f"Q{i+1}", total_score=i + 1, type_id=1, slide_id=item_slide.id)
# Add text component
dbc.add.component(1, item_slide, {"text": "Text"}, i, 2 * i, 3 * i, 4 * i)
dbc.add.component(1, item_slide.id, {"text": "Text"}, i, 2 * i, 3 * i, 4 * i)
def get_body(response):
......@@ -128,12 +128,14 @@ def assert_object_values(obj, values):
# Changes order of slides
def change_order_test(client, cid, order, new_order, h):
response, new_order_body = get(client, f"/api/competitions/{cid}/slides/{new_order}", headers=h)
def change_order_test(client, cid, slide_id, new_slide_id, h):
response, new_order_body = get(client, f"/api/competitions/{cid}/slides/{new_slide_id}", headers=h)
assert response.status_code == codes.OK
response, order_body = get(client, f"/api/competitions/{cid}/slides/{order}", headers=h)
response, order_body = get(client, f"/api/competitions/{cid}/slides/{slide_id}", headers=h)
assert response.status_code == codes.OK
new_order = new_order_body["order"]
# Changes order
response, _ = put(client, f"/api/competitions/{cid}/slides/{order}/order", {"order": new_order}, headers=h)
response, _ = put(client, f"/api/competitions/{cid}/slides/{slide_id}/order", {"order": new_order}, headers=h)
assert response.status_code == codes.OK