Skip to content
Snippets Groups Projects
Commit d9fb66c0 authored by Carl Schönfelder's avatar Carl Schönfelder
Browse files

Resolve "Fix python warnings"

parent 3f9f8326
No related branches found
No related tags found
1 merge request!28Resolve "Fix python warnings"
Pipeline #36371 passed
...@@ -4,4 +4,5 @@ __pycache__ ...@@ -4,4 +4,5 @@ __pycache__
*.coverage *.coverage
*/coverage */coverage
htmlcov htmlcov
.pytest_cache .pytest_cache
\ No newline at end of file /.idea
\ No newline at end of file
...@@ -38,4 +38,4 @@ def identity(payload): ...@@ -38,4 +38,4 @@ def identity(payload):
def check_if_token_in_blacklist(decrypted_token): def check_if_token_in_blacklist(decrypted_token):
jti = decrypted_token["jti"] jti = decrypted_token["jti"]
return models.Blacklist.query.filter_by(jti=jti).first() != None return models.Blacklist.query.filter_by(jti=jti).first() is not None
### ###
# Admin stuff placed here for later use # Admin stuff placed here for later use
# No need to implement this before the application is somewhat done # No need to implement this before the application is somewhat done
# Only adding basic thigns like addning countries
### ###
from flask import Blueprint from flask import Blueprint
......
import datetime import datetime
import app.database.controller as dbc
from app import db from app import db
from app.api import api_blueprint from app.api import api_blueprint
from app.database.controller import add_user
from app.database.models import Blacklist, User from app.database.models import Blacklist, User
from app.utils.validator import edit_user_schema, login_schema, register_schema, validateObject from app.utils.validator import edit_user_schema, login_schema, register_schema, validate_object
from flask import request from flask import request
from flask.globals import session
from flask_jwt_extended import ( from flask_jwt_extended import (
create_access_token, create_access_token,
create_refresh_token, create_refresh_token,
...@@ -36,15 +35,15 @@ def test_auth(): ...@@ -36,15 +35,15 @@ def test_auth():
def login(): def login():
json_dict = request.get_json(force=True) json_dict = request.get_json(force=True)
validate_msg = validateObject(login_schema, json_dict) validate_msg = validate_object(login_schema, json_dict)
if validate_msg != None: if validate_msg is not None:
return {"message": validate_msg}, 400 return {"message": validate_msg}, 400
email = json_dict["email"] email = json_dict["email"]
password = json_dict["password"] password = json_dict["password"]
user = User.query.filter_by(email=email).first() user = User.query.filter_by(email=email).first()
# Dont show the user that the email was correct unless the password was also correct # Don't show the user that the email was correct unless the password was also correct
if not user: if not user:
return {"message": "The email or password you entered is incorrect."}, 401 return {"message": "The email or password you entered is incorrect."}, 401
...@@ -82,17 +81,16 @@ def refresh(): ...@@ -82,17 +81,16 @@ def refresh():
def create(): def create():
json_dict = request.get_json(force=True) json_dict = request.get_json(force=True)
validate_msg = validateObject(register_schema, json_dict) validate_msg = validate_object(register_schema, json_dict)
if validate_msg != None: if validate_msg is not None:
return {"message": validate_msg}, 400 return {"message": validate_msg}, 400
existing_user = User.query.filter_by(email=json_dict["email"]).first() existing_user = User.query.filter_by(email=json_dict["email"]).first()
if existing_user != None: if existing_user is not None:
return {"message": "User already exists"}, 400 return {"message": "User already exists"}, 400
add_user(json_dict["email"], json_dict["password"], json_dict["role"], json_dict["city"]) dbc.add.user(json_dict["email"], json_dict["password"], json_dict["role"], json_dict["city"])
db.session.commit()
item_user = User.query.filter_by(email=json_dict["email"]).first() item_user = User.query.filter_by(email=json_dict["email"]).first()
...@@ -104,8 +102,8 @@ def create(): ...@@ -104,8 +102,8 @@ def create():
def edit(): def edit():
json_dict = request.get_json(force=True) json_dict = request.get_json(force=True)
validate_msg = validateObject(edit_user_schema, json_dict) validate_msg = validate_object(edit_user_schema, json_dict)
if validate_msg != None: if validate_msg is not None:
return {"message": validate_msg}, 400 return {"message": validate_msg}, 400
user = get_current_user() user = get_current_user()
......
import sqlalchemy as sa import sqlalchemy as sa
from flask_sqlalchemy.model import Model from flask_sqlalchemy.model import Model
from sqlalchemy.ext.declarative import declared_attr
from sqlalchemy.sql import func from sqlalchemy.sql import func
......
from app import db
from app.database.models import City, Role, User
def add_user(email, plaintext_password, role, city):
item_role = Role.query.filter_by(name=role).first()
item_city = City.query.filter_by(name=city).first()
user = User(email, plaintext_password, item_role.id, item_city.id)
db.session.add(user)
# import add, get
from app.database.controller import add, get
from app import db
from app.database.models import City, Competition, Role, Slide, Style, User
def user(email, plaintext_password, role, city):
item_role = Role.query.filter(Role.name == role).first()
item_city = City.query.filter(City.name == city).first()
new_user = User(email, plaintext_password, item_role.id, item_city.id)
db.session.add(new_user)
db.session.commit()
return User.query.filter(User.email == email).first()
def competition(name, style_id, city_id):
db.session.add(Competition(name, style_id, city_id))
db.session.commit()
filters = (Competition.name == name) & (Competition.city_id == city_id)
return Competition.query.filter(filters).first()
def slide(competition_id):
# item_slides = Slide.query.filter(Slide.competition_id == competition_id).order_by(Slide.order).all()
order = Slide.query.filter(Slide.competition_id == competition_id).count()
db.session.add(Slide(order, competition_id))
db.session.commit()
filters = (Slide.order == order) & (Competition.competition_id == competition_id)
return Slide.query.filter(filters).first()
from app import db
from app.database.models import City, Competition, Role, Slide, Style, User
from sqlalchemy import and_, or_
def user():
return
from enum import unique
from app import bcrypt, db from app import bcrypt, db
from sqlalchemy.ext.declarative import declared_attr
from sqlalchemy.ext.hybrid import hybrid_method, hybrid_property from sqlalchemy.ext.hybrid import hybrid_method, hybrid_property
STRING_SIZE = 254 STRING_SIZE = 254
...@@ -45,10 +42,9 @@ class User(db.Model): ...@@ -45,10 +42,9 @@ class User(db.Model):
_password = db.Column(db.LargeBinary(60), nullable=False) _password = db.Column(db.LargeBinary(60), nullable=False)
# Change to false for Two factor authen
authenticated = db.Column(db.Boolean, default=False) authenticated = db.Column(db.Boolean, default=False)
twoAuthConfirmed = db.Column(db.Boolean, default=True) # twoAuthConfirmed = db.Column(db.Boolean, default=True)
twoAuthCode = db.Column(db.String(STRING_SIZE), nullable=True) # twoAuthCode = db.Column(db.String(STRING_SIZE), nullable=True)
role_id = db.Column(db.Integer, db.ForeignKey("role.id"), nullable=False) role_id = db.Column(db.Integer, db.ForeignKey("role.id"), nullable=False)
city_id = db.Column(db.Integer, db.ForeignKey("city.id"), nullable=False) city_id = db.Column(db.Integer, db.ForeignKey("city.id"), nullable=False)
......
import app.database.controller as dbc
from app import db from app import db
from app.database.controller import add_user
from app.database.models import City, MediaType, QuestionType, Role from app.database.models import City, MediaType, QuestionType, Role
media_types = ["Image", "Video"] media_types = ["Image", "Video"]
...@@ -11,24 +11,23 @@ cities = ["Linköping"] ...@@ -11,24 +11,23 @@ cities = ["Linköping"]
def add_default_values(): def add_default_values():
# Add media types # Add media types
for type in media_types: for item in media_types:
db.session.add(MediaType(type)) db.session.add(MediaType(item))
# Add question types # Add question types
for type in question_types: for item in question_types:
db.session.add(QuestionType(type)) db.session.add(QuestionType(item))
# Add roles # Add roles
for role in roles: for item in roles:
db.session.add(Role(role)) db.session.add(Role(item))
# Add cities # Add cities
for city in cities: for item in cities:
db.session.add(City(city)) db.session.add(City(item))
# Commit changes to db # Commit changes to db
db.session.commit() db.session.commit()
# Add user with role and city # Add user with role and city
add_user("test@test.se", "password", "Admin", "Linköping") dbc.add.user("test@test.se", "password", "Admin", "Linköping")
db.session.commit()
...@@ -2,21 +2,21 @@ from app import db ...@@ -2,21 +2,21 @@ from app import db
# Try insert invalid row. If it fails then the test is passed # Try insert invalid row. If it fails then the test is passed
def assert_insert_fail(type, *args): def assert_insert_fail(db_type, *args):
try: try:
db.session.add(type(*args)) db.session.add(db_type(*args))
db.session.commit() db.session.commit()
assert False assert False
except: except:
db.session.rollback() db.session.rollback()
def assert_exists(type, length, **kwargs): def assert_exists(db_type, length, **kwargs):
items = type.query.filter_by(**kwargs).all() items = db_type.query.filter_by(**kwargs).all()
assert len(items) == length assert len(items) == length
return items[0] return items[0]
def assert_object_values(object, dict): def assert_object_values(obj, values):
for k, v in dict.items(): for k, v in values.items():
assert getattr(object, k) == v assert getattr(obj, k) == v
from cerberus import Validator from cerberus import Validator
def validateObject(schema, obj, allow_unknown=False): def validate_object(schema, obj, allow_unknown=False):
v = Validator(schema, allow_unknown) v = Validator(schema, allow_unknown)
if not v.validate(obj): if not v.validate(obj):
return v.errors return v.errors
......
import pytest import pytest
from app.database.controller import add_user
from app.database.models import ( from app.database.models import (
City, City,
Competition, Competition,
...@@ -14,6 +13,7 @@ from app.database.models import ( ...@@ -14,6 +13,7 @@ from app.database.models import (
Team, Team,
User, User,
) )
import app.database.controller as dbc
from app.database.populate import add_default_values from app.database.populate import add_default_values
from app.utils.test_helpers import * from app.utils.test_helpers import *
...@@ -27,7 +27,7 @@ def test_user(client): ...@@ -27,7 +27,7 @@ def test_user(client):
item_user = User.query.filter_by(email="test@test.se").first() item_user = User.query.filter_by(email="test@test.se").first()
# Assert user # Assert user
assert item_user != None assert item_user is not None
assert item_user.city.name == "Linköping" assert item_user.city.name == "Linköping"
assert item_user.role.name == "Admin" assert item_user.role.name == "Admin"
...@@ -52,7 +52,7 @@ def test_media_style(client): ...@@ -52,7 +52,7 @@ def test_media_style(client):
# Assert image # Assert image
item_media = Media.query.filter_by(filename="bild.png").first() item_media = Media.query.filter_by(filename="bild.png").first()
assert item_media != None assert item_media is not None
assert len(item_user.media) == 1 assert len(item_user.media) == 1
assert item_media.upload_by.email == "test@test.se" assert item_media.upload_by.email == "test@test.se"
...@@ -62,7 +62,7 @@ def test_media_style(client): ...@@ -62,7 +62,7 @@ def test_media_style(client):
# Assert style # Assert style
item_style = Style.query.filter_by(name="template").first() item_style = Style.query.filter_by(name="template").first()
assert item_style != None assert item_style is not None
assert len(item_media.styles) == 1 assert len(item_media.styles) == 1
assert item_style.bg_image.filename == "bild.png" assert item_style.bg_image.filename == "bild.png"
...@@ -95,7 +95,7 @@ def test_question(client): ...@@ -95,7 +95,7 @@ def test_question(client):
item_competition = Competition.query.filter_by(name="teknik8").first() item_competition = Competition.query.filter_by(name="teknik8").first()
item_competition_2 = Competition.query.filter_by(name="teknik9").first() item_competition_2 = Competition.query.filter_by(name="teknik9").first()
assert item_competition != None assert item_competition is not None
assert item_competition.id == 1 assert item_competition.id == 1
assert item_competition.style.name == "template" assert item_competition.style.name == "template"
assert item_competition.city.name == "Linköping" assert item_competition.city.name == "Linköping"
...@@ -131,9 +131,9 @@ def test_question(client): ...@@ -131,9 +131,9 @@ def test_question(client):
item_slide2 = Slide.query.filter_by(order=2).first() item_slide2 = Slide.query.filter_by(order=2).first()
item_slide3 = Slide.query.filter_by(order=3).first() item_slide3 = Slide.query.filter_by(order=3).first()
assert item_slide1 != None assert item_slide1 is not None
assert item_slide2 != None assert item_slide2 is not None
assert item_slide3 != None assert item_slide3 is not None
# Add questions # Add questions
question_type_bool = QuestionType.query.filter_by(name="Boolean").first() question_type_bool = QuestionType.query.filter_by(name="Boolean").first()
...@@ -143,8 +143,8 @@ def test_question(client): ...@@ -143,8 +143,8 @@ def test_question(client):
db.session.add(Question("Fråga2", 1, question_type_multiple.id, item_slide3.id)) db.session.add(Question("Fråga2", 1, question_type_multiple.id, item_slide3.id))
db.session.commit() db.session.commit()
assert question_type_bool != None assert question_type_bool is not None
assert question_type_multiple != None assert question_type_multiple is not None
item_q1 = Question.query.filter_by(name="Fråga1").first() item_q1 = Question.query.filter_by(name="Fråga1").first()
item_q2 = Question.query.filter_by(name="Fråga2").first() item_q2 = Question.query.filter_by(name="Fråga2").first()
......
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