From 2afbbd6423439f1f42d399ab01a5d2050af7f71c Mon Sep 17 00:00:00 2001 From: Rebecca Law Date: Thu, 21 Apr 2016 09:11:00 +0100 Subject: [PATCH 1/3] Removed unused requirements and modules. --- README.md | 4 ++++ app/main/encryption.py | 10 ---------- app/main/validators.py | 2 -- requirements.txt | 6 ------ tests/app/main/test_encyption.py | 17 ----------------- 5 files changed, 4 insertions(+), 35 deletions(-) delete mode 100644 app/main/encryption.py delete mode 100644 tests/app/main/test_encyption.py diff --git a/README.md b/README.md index 450fee072..e5b74e5bb 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,10 @@ export ADMIN_CLIENT_USER_NAME='dev-notify-admin' export API_HOST_NAME='http://localhost:6011' export DANGEROUS_SALT='dev-notify-salt' export SECRET_KEY='dev-notify-secret-key' +export DESKPRO_API_HOST="" +export DESKPRO_API_KEY="" +export DESKPRO_PERSON_EMAIL="" +export DESKPRO_TEAM_ID="" "> environment.sh ``` diff --git a/app/main/encryption.py b/app/main/encryption.py deleted file mode 100644 index 51caaab72..000000000 --- a/app/main/encryption.py +++ /dev/null @@ -1,10 +0,0 @@ -from flask.ext.bcrypt import generate_password_hash, check_password_hash - - -def hashpw(password): - return generate_password_hash(password.encode('UTF-8'), 10) - - -def check_hash(password, hashed_password): - # If salt is invalid throws a 500 should add try/catch here - return check_password_hash(hashed_password, password) diff --git a/app/main/validators.py b/app/main/validators.py index 3ae4f500d..533ef0cab 100644 --- a/app/main/validators.py +++ b/app/main/validators.py @@ -1,7 +1,5 @@ import re from wtforms import ValidationError -from datetime import datetime -from app.main.encryption import check_hash from notifications_utils.template import Template diff --git a/requirements.txt b/requirements.txt index baee19ae2..11cc7ae58 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,13 +1,7 @@ Flask==0.10.1 Flask-Script==2.0.5 -Flask-Migrate==1.3.1 -Flask-SQLAlchemy==2.0 -psycopg2==2.6.1 -SQLAlchemy==1.0.5 -SQLAlchemy-Utils==0.30.5 Flask-WTF==0.11 Flask-Login==0.2.11 -Flask-Bcrypt==0.6.2 credstash==1.8.0 boto3==1.2.3 Pygments==2.0.2 diff --git a/tests/app/main/test_encyption.py b/tests/app/main/test_encyption.py deleted file mode 100644 index cb5ef608a..000000000 --- a/tests/app/main/test_encyption.py +++ /dev/null @@ -1,17 +0,0 @@ -from app.main.encryption import hashpw, check_hash - - -def test_should_hash_password(): - password = 'passwordToHash' - assert password != hashpw(password) - - -def test_should_check_password(): - value = 's3curePassword!' - encrypted = hashpw(value) - assert check_hash(value, encrypted) is True - - -def test_checkpw_should_fail_when_pw_does_not_match(): - value = hashpw('somePassword') - assert check_hash('somethingDifferent', value) is False From 009c1174522d3f06747aa54ddc584bfcd60de309 Mon Sep 17 00:00:00 2001 From: Rebecca Law Date: Thu, 21 Apr 2016 09:30:33 +0100 Subject: [PATCH 2/3] Upgrade requirements. With the upgrade of pep8 to 1.7.0 module imports are required to be at the top of the file, meaning I had to add a noqa line to some of the init files. Are those init files wrong or is pep8 too strict. --- app/__init__.py | 30 ++++++++++++++---------------- app/main/__init__.py | 2 +- app/status/__init__.py | 2 +- requirements.txt | 2 +- requirements_for_test.txt | 10 +++++----- wsgi.py | 11 +++++------ 6 files changed, 27 insertions(+), 30 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index 2b4f8416f..773bc01b5 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -1,8 +1,8 @@ import os import re - -import dateutil import urllib +import dateutil + from flask import ( Flask, session, @@ -13,34 +13,31 @@ from flask import ( current_app, request) from flask._compat import string_types +from flask.globals import _lookup_req_object from flask_login import LoginManager from flask_wtf import CsrfProtect +from functools import partial from notifications_python_client.errors import HTTPError +from notifications_utils import logging +from notifications_utils.recipients import validate_phone_number, InvalidPhoneError from pygments import highlight from pygments.formatters.html import HtmlFormatter from pygments.lexers.javascript import JavascriptLexer from werkzeug.exceptions import abort +from werkzeug.local import LocalProxy +import app.proxy_fix +from app.asset_fingerprinter import AssetFingerprinter +from app.its_dangerous_session import ItsdangerousSessionInterface from app.notify_client.api_client import ServiceAPIClient from app.notify_client.api_key_api_client import ApiKeyApiClient -from app.notify_client.user_api_client import UserApiClient +from app.notify_client.invite_api_client import InviteApiClient from app.notify_client.job_api_client import JobApiClient from app.notify_client.notification_api_client import NotificationApiClient -from app.notify_client.status_api_client import StatusApiClient -from app.notify_client.invite_api_client import InviteApiClient from app.notify_client.statistics_api_client import StatisticsApiClient +from app.notify_client.status_api_client import StatusApiClient from app.notify_client.template_statistics_api_client import TemplateStatisticsApiClient - -from app.its_dangerous_session import ItsdangerousSessionInterface -from app.asset_fingerprinter import AssetFingerprinter -from notifications_utils.recipients import validate_phone_number, InvalidPhoneError -import app.proxy_fix -from config import configs -from notifications_utils import logging -from werkzeug.local import LocalStack, LocalProxy -from flask.globals import _lookup_req_object -from functools import partial - +from app.notify_client.user_api_client import UserApiClient login_manager = LoginManager() csrf = CsrfProtect() @@ -108,6 +105,7 @@ def create_app(): def _attach_current_service(): return {'current_service': current_service} + application.context_processor(_attach_current_service) register_errorhandlers(application) diff --git a/app/main/__init__.py b/app/main/__init__.py index 0d4d793ae..4475482c1 100644 --- a/app/main/__init__.py +++ b/app/main/__init__.py @@ -1,6 +1,6 @@ from flask import Blueprint -main = Blueprint('main', __name__) +main = Blueprint('main', __name__) # noqa from app.main.views import ( index, diff --git a/app/status/__init__.py b/app/status/__init__.py index fcbc7cece..5bfd07300 100644 --- a/app/status/__init__.py +++ b/app/status/__init__.py @@ -2,4 +2,4 @@ from flask import Blueprint status = Blueprint('status', __name__) -from app.status.views import healthcheck +from app.status.views import healthcheck # noqa diff --git a/requirements.txt b/requirements.txt index 11cc7ae58..6c761f771 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,7 @@ Flask-Script==2.0.5 Flask-WTF==0.11 Flask-Login==0.2.11 credstash==1.8.0 -boto3==1.2.3 +boto3==1.3.0 Pygments==2.0.2 py-gfm==0.1.2 diff --git a/requirements_for_test.txt b/requirements_for_test.txt index 0cefcfa0e..67db532df 100644 --- a/requirements_for_test.txt +++ b/requirements_for_test.txt @@ -1,9 +1,9 @@ -r requirements.txt -pep8==1.5.7 -pytest==2.8.1 -pytest-mock==0.8.1 +pep8==1.7.0 +pytest==2.9.1 +pytest-mock==0.11.0 pytest-cov==2.2.1 coveralls==1.1 -moto==0.4.19 -httpretty==0.8.10 +moto==0.4.23 +httpretty==0.8.14 beautifulsoup4==4.4.1 diff --git a/wsgi.py b/wsgi.py index dd2db3d10..eb948e571 100644 --- a/wsgi.py +++ b/wsgi.py @@ -1,6 +1,10 @@ -from credstash import getAllSecrets import os +from credstash import getAllSecrets + +from app import create_app +from config import configs + default_env_file = '/home/ubuntu/environment' environment = 'live' @@ -8,16 +12,11 @@ if os.path.isfile(default_env_file): with open(default_env_file, 'r') as environment_file: environment = environment_file.readline().strip() - # on aws get secrets and export to env os.environ.update(getAllSecrets(region="eu-west-1")) -from config import configs - os.environ['NOTIFY_ADMIN_ENVIRONMENT'] = configs[environment] -from app import create_app - application = create_app() if __name__ == "__main__": From 87704c3166209c655b3fd4c2425cbb51b743fdb6 Mon Sep 17 00:00:00 2001 From: Rebecca Law Date: Thu, 21 Apr 2016 10:07:58 +0100 Subject: [PATCH 3/3] Remove Procfile, we don't deploy to heroku --- Procfile | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Procfile diff --git a/Procfile b/Procfile deleted file mode 100644 index bd846ba9a..000000000 --- a/Procfile +++ /dev/null @@ -1 +0,0 @@ -web: python app.py runserver