Fixed all pep8 warnings

This commit is contained in:
Luke Else 2024-01-21 22:22:29 +00:00
parent 44c1ee03ba
commit bca3b0a663
14 changed files with 64 additions and 43 deletions

2
app.py
View File

@ -14,7 +14,7 @@ def main():
# Set app secret key to sign session cookies
secret_key = environ.get("APPSECRET")
if secret_key == None:
if secret_key is None:
# NO Secret Key set!
print("No app secret set, please set one before deploying in production")
app.secret_key = "DEFAULTKEY"

View File

@ -30,7 +30,7 @@ class CategoryController(DatabaseController):
)
row = cursor.fetchone()
if row == None:
if row is None:
return None
params = dict(zip(self.FIELDS, row))
@ -44,7 +44,7 @@ class CategoryController(DatabaseController):
)
rows = cursor.fetchall()
if rows == None:
if rows is None:
return None
categories = list()

View File

@ -17,8 +17,8 @@ class DatabaseController(ABC):
def __init__(self):
self._conn = None
try:
# Creates a connection and specifies a flag to parse all types back down into
# Python declared types e.g. date & time
# Creates a connection and specifies a flag to parse all types
# back down into Python declared types e.g. date & time
self._conn = sqlite3.connect(
self.__sqlitefile, detect_types=sqlite3.PARSE_DECLTYPES)
except sqlite3.Error as e:
@ -28,7 +28,7 @@ class DatabaseController(ABC):
print(e)
def __del__(self):
if self._conn != None:
if self._conn is not None:
self._conn.close()
""" Takes a dictionary of fields and returns the object

View File

@ -22,7 +22,11 @@ class ProductController(DatabaseController):
]
self._conn.execute(
"INSERT INTO Products (name, image, description, cost, categoryID, sellerID, postedDate, quantityAvailable) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",
"""
INSERT INTO Products
(name, image, description, cost, categoryID,
sellerID, postedDate, quantityAvailable)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)""",
params
)
self._conn.commit()
@ -38,7 +42,7 @@ class ProductController(DatabaseController):
)
rows = cursor.fetchmany()
if rows == None:
if rows is None:
return None
products = list()
@ -51,7 +55,8 @@ class ProductController(DatabaseController):
return products
def read_all(self, category: str = "", search_term: str = "") -> list[Product] | None:
def read_all(self, category: str = "",
search_term: str = "") -> list[Product] | None:
params = [
"%" + category + "%",
"%" + search_term + "%"

View File

@ -23,7 +23,9 @@ class UserController(DatabaseController):
]
self._conn.execute(
"INSERT INTO Users (username, password, first_name, last_name, email, phone, role) VALUES (?, ?, ?, ?, ?, ?, ?)",
"""INSERT INTO Users
(username, password, first_name, last_name, email, phone, role)
VALUES (?, ?, ?, ?, ?, ?, ?)""",
params
)
self._conn.commit()
@ -39,7 +41,7 @@ class UserController(DatabaseController):
)
row = cursor.fetchone()
if row != None:
if row is not None:
params = dict(zip(self.FIELDS, row))
# Is user a seller
@ -63,7 +65,7 @@ class UserController(DatabaseController):
)
row = cursor.fetchone()
if row != None:
if row is not None:
params = dict(zip(self.FIELDS, row))
# Is user a seller

View File

@ -12,7 +12,7 @@ blueprint.register_blueprint(user.blueprint)
blueprint.register_blueprint(product.blueprint)
### CONTEXTS ###
# CONTEXTS #
# Function that returns a given user class based on the ID in the session
@blueprint.context_processor
@ -21,7 +21,7 @@ def get_user() -> dict[User | None]:
user_id = session.get('user_id')
user = None
if user_id != None:
if user_id is not None:
db = UserController()
user = db.read_id(user_id)

View File

@ -42,10 +42,13 @@ def index():
products = database.read_all()
# No Products visible
if products == None:
if products is None:
flash("No Products available")
return render_template('index.html', content="content.html", products=products)
return render_template('index.html',
content="content.html",
products=products
)
# Loads a given product category page
@ -56,17 +59,21 @@ def category(category: str):
# Check to see if there is a custome search term
search_term = request.args.get("search", type=str)
if search_term != None:
if search_term is not None:
print(f"Search Term {search_term}")
products = database.read_all(category, search_term)
else:
products = database.read_all(category)
# No Products visible
if products == None:
if products is None:
flash(f"No Products available in {category}")
return render_template('index.html', content="content.html", products=products, category=category)
return render_template('index.html',
content="content.html",
products=products,
category=category
)
# Loads a given product based on ID
@ -82,13 +89,13 @@ def display_add_product():
user_id = session.get('user_id')
# User must be logged in to view this page
if user_id == None:
if user_id is None:
flash("Please Login to view this page")
return redirect('/login')
db = UserController()
user = db.read_id(user_id)
if user == None or user.role != "Seller":
if user is None or user.role != "Seller":
flash("You must be logged in as a Seller to view this page")
return redirect('/')
@ -101,20 +108,20 @@ def add_product():
user_id = session.get('user_id')
# User must be logged in to view this page
if user_id == None:
if user_id is None:
flash("Please Login to view this page")
return redirect('/login', code=302)
db = UserController()
user = db.read_id(user_id)
if user == None or user.role != "Seller":
if user is None or user.role != "Seller":
flash("You must be logged in as a Seller to perform this action")
return redirect('/', code=302)
file = request.files.get('image')
# Ensure that the correct file type is uploaded
if file == None or not allowed_file(file.filename):
if file is None or not allowed_file(file.filename):
flash("Invalid File Uploaded")
return redirect("/add")

View File

@ -28,7 +28,7 @@ def login():
error = None
# No user found
if user == None:
if user is None:
error = "No user found with the username " + request.form['username']
flash(error)
return redirect("/login")
@ -57,7 +57,7 @@ def signup():
database = UserController()
# User already exists
if database.read(request.form['username']) != None:
if database.read(request.form['username']) is not None:
error = "User, " + request.form['username'] + " already exists"
flash(error)
return redirect("/signup")

View File

@ -23,8 +23,10 @@ class Product:
No additional properties are assigned to the customer
'''
def __init__(self, name: str, image: str, description: str, cost: float, category: int,
seller_id: int, posted_date: datetime, quantity_available: int):
def __init__(self, name: str, image: str, description: str,
cost: float, category: int, seller_id: int,
posted_date: datetime, quantity_available: int
):
self.id = 0
self.name = name
self.image = image

View File

@ -2,11 +2,14 @@ from abc import ABC
class User(ABC):
""" Functional Class constructor to initialise all properties in the base object
with a value """
""" Functional Class constructor to initialise all properties in
the base object with a value
"""
def __init__(self, username: str, password: str, firstname: str,
lastname: str, email: str, phone: str, role: str):
def __init__(self, username: str, password: str,
firstname: str, lastname: str,
email: str, phone: str, role: str
):
self.id = 0
self.username = username
self.password = password

View File

@ -1,7 +1,7 @@
<link rel="stylesheet" href="{{ url_for('static', filename='css/products.css') }}">
<div class="product-container">
{% if products != None %}
{% if products is not None %}
{% for product in products %}
<a href="/products/{{product.id}}" class="product product-link">
<div class="product-title">{{product.name}}</div>

View File

@ -5,7 +5,7 @@
<input type="text" name="search" placeholder="Find your favourite products" class="search-bar">
<input type="submit" class="search-button">
</form>
{% if user != None: %}
{% if user is not None: %}
<a href="/logout">Welcome, {{ user.username }}</a>
{% else %}
<a href="/login">Login/Signup</a>
@ -13,7 +13,7 @@
</nav>
<centre>
{% if user != None and user.role == "Seller" %}
{% if user is not None and user.role == "Seller" %}
<div class="categories">
{# List all available seller tools #}
<a href="/products/add" class="category">Create Products</a>

View File

@ -22,7 +22,8 @@ def test_create_product():
db = ProductController()
db.create(product)
# Tests the database maintains integrity when we try and add a product with the same details
# Tests the database maintains integrity when we try
# and add a product with the same details
@pytest.mark.skip
@ -40,7 +41,7 @@ def test_search_category():
# Check each category for correct amount of test products
assert len(db.read_all("Car Parts")) == 9 + 1 # Added in previous test
assert len(db.read_all("Books")) == 9
assert db.read_all("Phones") == None
assert db.read_all("Phones") is None
# Tests that products can be refined by search term
@ -51,7 +52,7 @@ def test_search_term():
assert len(db.read_all(search_term="test")) == 33
assert len(db.read_all("Car Parts", "test")) == 9
assert len(db.read_all(search_term="product")) == 1
assert db.read_all(search_term="not_test") == None
assert db.read_all(search_term="not_test") is None
# Test we the same product details get returned from the database

View File

@ -29,7 +29,8 @@ def test_create_user():
db = UserController()
db.create(customer)
# Tests the database maintains integrity when we try and add a user with the same details
# Tests the database maintains integrity when we try
# and add a user with the same details
def test_duplicate_user():