Skip to content
Snippets Groups Projects
Commit 0604b1cb authored by Josef Olsson's avatar Josef Olsson
Browse files

Confirm that all slides are in order

parent a0a14dd7
No related branches found
No related tags found
1 merge request!138Confirm that all slides are in order
Pipeline #44815 passed
...@@ -3,10 +3,41 @@ This file tests the database controller functions. ...@@ -3,10 +3,41 @@ This file tests the database controller functions.
""" """
import app.database.controller as dbc import app.database.controller as dbc
from app.database.models import City, Code, Competition, Media, MediaType, Role, User from app.database.models import City, Code, Competition, Media, MediaType, Role, Slide, User
from tests import app, client, db from tests import app, client, db
from tests.test_helpers import add_default_values, assert_exists, assert_insert_fail, assert_slide_order, delete from tests.test_helpers import add_default_values, assert_all_slide_orders, assert_should_fail, assert_slide_order
def test_default_values(client):
add_default_values()
# Basic funcs
def func(val):
assert val
# Testing assert_should_fail when it should and should not fail
assert_should_fail(func, False)
try:
assert_should_fail(func, True)
except:
pass
else:
assert False
# All slides should be in order
assert_all_slide_orders()
# Slides are moved so they are not in correct order
item_slides = dbc.get.all(Slide)
for item_slide in item_slides:
item_slide.order += 10
db.session.add(item_slide)
db.session.commit()
# The slides are not in order so the assert should fail
assert_should_fail(assert_all_slide_orders)
def test_user(client): def test_user(client):
...@@ -91,6 +122,8 @@ def test_copy(client): ...@@ -91,6 +122,8 @@ def test_copy(client):
dbc.delete.team(item_team_2) dbc.delete.team(item_team_2)
assert len(dbc.get.all(Code)) == 3 assert len(dbc.get.all(Code)) == 3
assert_all_slide_orders()
def check_slides_copy(item_slide_original, item_slide_copy, num_slides, order): def check_slides_copy(item_slide_original, item_slide_copy, num_slides, order):
""" Checks that two slides are correct copies of each other. Looks big but is quite fast. """ """ Checks that two slides are correct copies of each other. Looks big but is quite fast. """
...@@ -277,6 +310,7 @@ def test_question(client): ...@@ -277,6 +310,7 @@ def test_question(client):
) )
assert item_q1 == item_q2[0] assert item_q1 == item_q2[0]
assert_all_slide_orders()
def test_slide(client): def test_slide(client):
add_default_values() add_default_values()
......
...@@ -3,7 +3,7 @@ import json ...@@ -3,7 +3,7 @@ import json
import app.core.http_codes as codes import app.core.http_codes as codes
import app.database.controller as dbc import app.database.controller as dbc
from app.core import db from app.core import db
from app.database.models import City, Code, Role from app.database.models import City, Code, Role, Slide
def add_default_values(): def add_default_values():
...@@ -161,3 +161,31 @@ def assert_slide_order(item_comp, correct_order): ...@@ -161,3 +161,31 @@ def assert_slide_order(item_comp, correct_order):
""" """
for slide, order in zip(item_comp.slides, correct_order): for slide, order in zip(item_comp.slides, correct_order):
assert slide.order == order assert slide.order == order
def assert_all_slide_orders():
""" Checks that all slides are in order. """
# Get slides in competition order and slide order
item_slides = Slide.query.order_by(Slide.competition_id).order_by(Slide.order).all()
order = 0
competition_id = 1
for item_slide in item_slides:
if item_slide.competition_id != competition_id:
order = 0
competition_id = item_slide.competition_id
assert item_slide.order == order
order += 1
def assert_should_fail(func, *args):
""" Runs the function which should raise an exception. """
try:
func(*args)
except:
pass # Assert failed, as it should
else:
assert False # Assertion didn't fail
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment