diff --git a/ordr3/__init__.py b/ordr3/__init__.py index df0f4c8..951a213 100644 --- a/ordr3/__init__.py +++ b/ordr3/__init__.py @@ -11,8 +11,7 @@ from pyramid.session import JSONSerializer, SignedCookieSessionFactory def main(global_config, **settings): - """ This function returns a Pyramid WSGI application. - """ + """This function returns a Pyramid WSGI application.""" with Configurator(settings=settings) as config: session_factory = SignedCookieSessionFactory( diff --git a/ordr3/events.py b/ordr3/events.py index a323c8e..97c3571 100644 --- a/ordr3/events.py +++ b/ordr3/events.py @@ -105,7 +105,7 @@ def emit(request, event): def includeme(config): - """ initializing Events sytem for the Pyramid app + """initializing Events sytem for the Pyramid app Activate this setup using ``config.include('ordr2.events')``. """ diff --git a/ordr3/routes.py b/ordr3/routes.py index c9987c6..a4ef405 100644 --- a/ordr3/routes.py +++ b/ordr3/routes.py @@ -1,5 +1,5 @@ def includeme(config): - """ Initialize routes in a Pyramid app. + """Initialize routes in a Pyramid app. Activate this setup using ``config.include('ordr3.routes')``. diff --git a/ordr3/schemas/__init__.py b/ordr3/schemas/__init__.py index 5028b0f..4315f54 100644 --- a/ordr3/schemas/__init__.py +++ b/ordr3/schemas/__init__.py @@ -5,7 +5,7 @@ from pkg_resources import resource_filename def includeme(config): - """ Defining form templates overrides + """Defining form templates overrides Activate this setup using ``config.include('ordr3.schemas')``. """ diff --git a/ordr3/schemas/orders.py b/ordr3/schemas/orders.py index 3142cbd..c1c3499 100644 --- a/ordr3/schemas/orders.py +++ b/ordr3/schemas/orders.py @@ -11,7 +11,7 @@ STATI = [(s.name, s.name.capitalize()) for s in OrderStatus] class OrderStatus(colander.Schema): - """ schema for editing order status + """schema for editing order status parital schema, used in EditOrderSchema """ @@ -28,7 +28,7 @@ class OrderStatus(colander.Schema): class OrderItem(colander.Schema): - """ schema for editing order information + """schema for editing order information parital schema, used in NewOrderSchema and EditOrderSchema """ @@ -116,7 +116,7 @@ class MoneyInputSchema(colander.Schema): class OrderPricing(colander.Schema): - """ schema for editing price information + """schema for editing price information parital schema, used in NewOrderSchema and EditOrderSchema """ @@ -140,7 +140,7 @@ class OrderPricing(colander.Schema): class OrderOptionals(colander.Schema): - """ schema for editing optional information + """schema for editing optional information parital schema, used in NewOrderSchema and EditOrderSchema """ diff --git a/ordr3/security.py b/ordr3/security.py index 861f190..dc51263 100644 --- a/ordr3/security.py +++ b/ordr3/security.py @@ -11,7 +11,7 @@ class AuthenticationPolicy(AuthTktAuthenticationPolicy): """ How to authenticate users """ def authenticated_userid(self, request): - """ returns the id of an authenticated user + """returns the id of an authenticated user heavy lifting done in get_user() attached to request """ @@ -50,7 +50,7 @@ def get_passlib_context(): def includeme(config): - """ initializing authentication and authorization for the Pyramid app + """initializing authentication and authorization for the Pyramid app Activate this setup using ``config.include('ordr2.security')``. """ diff --git a/ordr3/services.py b/ordr3/services.py index 236fbaa..f5f78c9 100644 --- a/ordr3/services.py +++ b/ordr3/services.py @@ -12,7 +12,7 @@ CONSUMABLE_STATI = {models.OrderStatus.ORDERED, models.OrderStatus.COMPLETED} MSG_SHORT_PASSWORD = events.FlashMessage.warning( - f"Your password is quite short.", + "Your password is quite short.", ( 'Have a look at ' "this comic strip why longer passwords are better." @@ -132,7 +132,7 @@ def set_new_password(user, password, event_queue): def check_have_i_been_pwned(password, event_queue): - """ public function for checking haveibeenpwned + """public function for checking haveibeenpwned this is just a small shim to eas testing""" password_hash = hashlib.sha1(password.encode()).hexdigest() @@ -140,7 +140,7 @@ def check_have_i_been_pwned(password, event_queue): def _check_have_i_been_pwned(password_hash, event_queue): - """ chech haveibeenpwned for password leak + """chech haveibeenpwned for password leak This function does the heavy lifting for check_have_i_been_pwned() """ diff --git a/ordr3/views/__init__.py b/ordr3/views/__init__.py index 5a24813..50c8b90 100644 --- a/ordr3/views/__init__.py +++ b/ordr3/views/__init__.py @@ -61,7 +61,7 @@ def jinja_nl2br(text, replacement="
"): def includeme(config): - """ adding request helpers + """adding request helpers Activate this setup using ``config.include('ordr3.views')``. """ diff --git a/tests/functional/conftest.py b/tests/functional/conftest.py index e6ae9e7..c276e60 100644 --- a/tests/functional/conftest.py +++ b/tests/functional/conftest.py @@ -41,6 +41,7 @@ def _pyramid_app(): @pytest.fixture def _sqlite_repo(_pyramid_app): from pyramid.scripting import prepare + from ordr3 import adapters with prepare() as env: @@ -52,9 +53,10 @@ def _sqlite_repo(_pyramid_app): @pytest.fixture def _example_data(_sqlite_repo): - from ordr3 import models, security from datetime import datetime, timedelta + from ordr3 import models, security + today = datetime.utcnow() crypt_context = security.get_passlib_context() diff --git a/tests/test_adapters.py b/tests/test_adapters.py index 0dc44b8..3fe7ae8 100644 --- a/tests/test_adapters.py +++ b/tests/test_adapters.py @@ -23,7 +23,7 @@ def order_sql(): def test_order_mapper(session, order_sql): - from ordr3.models import OrderItem, OrderCategory, OrderStatus + from ordr3.models import OrderItem, OrderStatus, OrderCategory session.execute(order_sql) expected = [ @@ -119,7 +119,7 @@ def test_user_mapper(session): def test_adapter_behaviour(session): - from ordr3.models import OrderItem, OrderCategory, OrderStatus, LogEntry + from ordr3.models import LogEntry, OrderItem, OrderStatus, OrderCategory order = OrderItem( None, diff --git a/tests/test_models.py b/tests/test_models.py index 9d135a2..e014c51 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -39,7 +39,7 @@ def test_orderitem_total_price(): def test_orderitem_add_to_log_empty_log(): - from ordr3.models import OrderItem, LogEntry + from ordr3.models import LogEntry, OrderItem order = OrderItem(*list("ABCDEFGHIJK")) log_entry = LogEntry(order, "critical", "me", "yesterday") @@ -51,7 +51,7 @@ def test_orderitem_add_to_log_empty_log(): def test_orderitem_add_to_log_non_empty_log(): - from ordr3.models import OrderItem, LogEntry + from ordr3.models import LogEntry, OrderItem order = OrderItem(*list("ABCDEFGHIJK")) log_entry_1 = LogEntry(order, "critical", "me", "yesterday") @@ -203,9 +203,10 @@ def test_password_reset_token_init(): def test_password_reset_token_init_auto_validity(): - from ordr3.models import PasswordResetToken from datetime import datetime, timedelta + from ordr3.models import PasswordResetToken + token = PasswordResetToken(*list("AB")) assert token.token == "A" @@ -222,9 +223,10 @@ def test_password_reset_token_is_valid_ok(): def test_password_reset_token_is_valid_not_ok(): - from ordr3.models import PasswordResetToken from datetime import datetime, timedelta + from ordr3.models import PasswordResetToken + invalid_time = datetime.utcnow() - timedelta(hours=1) token = PasswordResetToken(*list("AB"), invalid_time) @@ -240,9 +242,10 @@ def test_password_reset_token_is_valid_invalid_time_format(): def test_password_reset_token_repr(): - from ordr3.models import PasswordResetToken from datetime import datetime + from ordr3.models import PasswordResetToken + valid_until = datetime(2020, 4, 2, 10, 11, 12) token = PasswordResetToken(*list("AB"), valid_until) diff --git a/tests/test_repo.py b/tests/test_repo.py index e411c36..58688c4 100644 --- a/tests/test_repo.py +++ b/tests/test_repo.py @@ -4,7 +4,8 @@ import pytest @pytest.fixture() def example_order_data(): from datetime import datetime - from ordr3.models import OrderCategory, OrderStatus + + from ordr3.models import OrderStatus, OrderCategory return [ ( @@ -52,6 +53,7 @@ def example_orders(example_order_data): @pytest.fixture() def example_consumables(example_order_data): from datetime import datetime, timedelta + from ordr3.models import OrderItem consumables = [] @@ -77,9 +79,10 @@ def example_users(): @pytest.fixture() def example_tokens(): - from ordr3.models import PasswordResetToken from datetime import datetime, timedelta + from ordr3.models import PasswordResetToken + valid = datetime.utcnow() + timedelta(days=2) invalid = datetime.utcnow() - timedelta(days=2) @@ -116,8 +119,8 @@ def test_sql_repo_add_order(session, example_orders): def test_sql_repo_delete_order(session, example_orders): from ordr3.repo import SqlAlchemyRepository + from ordr3.models import User, LogEntry, OrderItem, OrderStatus from ordr3.services import create_log_entry - from ordr3.models import LogEntry, OrderStatus, User, OrderItem repo = SqlAlchemyRepository(session) repo.add_order(example_orders[0]) @@ -146,7 +149,7 @@ def test_sql_repo_get_order(session, example_orders): def test_sql_repo_get_order_raises_exception(session, example_orders): - from ordr3.repo import SqlAlchemyRepository, RepoItemNotFound + from ordr3.repo import RepoItemNotFound, SqlAlchemyRepository repo = SqlAlchemyRepository(session) repo.add_order(example_orders[0]) @@ -157,9 +160,10 @@ def test_sql_repo_get_order_raises_exception(session, example_orders): def test_sql_list_consumable_candidates(session, example_consumables): + from datetime import datetime, timedelta + from ordr3.repo import SqlAlchemyRepository from ordr3.models import OrderStatus - from datetime import datetime, timedelta repo = SqlAlchemyRepository(session) for example in example_consumables: @@ -215,7 +219,7 @@ def test_sql_repo_get_user(session, example_users): def test_sql_repo_get_user_raises_exception(session, example_users): - from ordr3.repo import SqlAlchemyRepository, RepoItemNotFound + from ordr3.repo import RepoItemNotFound, SqlAlchemyRepository repo = SqlAlchemyRepository(session) repo.add_user(example_users[0]) @@ -237,7 +241,7 @@ def test_sql_repo_get_user_by_username(session, example_users): def test_sql_repo_get_user_by_username_exception(session, example_users): - from ordr3.repo import SqlAlchemyRepository, RepoItemNotFound + from ordr3.repo import RepoItemNotFound, SqlAlchemyRepository repo = SqlAlchemyRepository(session) repo.add_user(example_users[0]) @@ -259,7 +263,7 @@ def test_sql_repo_get_user_by_email(session, example_users): def test_sql_repo_get_user_by_email_exception(session, example_users): - from ordr3.repo import SqlAlchemyRepository, RepoItemNotFound + from ordr3.repo import RepoItemNotFound, SqlAlchemyRepository repo = SqlAlchemyRepository(session) repo.add_user(example_users[0]) @@ -311,7 +315,7 @@ def test_sql_get_vendor_aggregates(session, example_vendors): def test_sql_get_vendor_aggregates_raises_error(session): - from ordr3.repo import SqlAlchemyRepository, RepoItemNotFound + from ordr3.repo import RepoItemNotFound, SqlAlchemyRepository repo = SqlAlchemyRepository(session) @@ -383,7 +387,7 @@ def test_sql_repo_get_reset_token(session, example_tokens): def test_sql_repo_get_reset_token_raises_exception(session, example_tokens): - from ordr3.repo import SqlAlchemyRepository, RepoItemNotFound + from ordr3.repo import RepoItemNotFound, SqlAlchemyRepository repo = SqlAlchemyRepository(session) repo.add_reset_token(example_tokens[0]) diff --git a/tests/test_services.py b/tests/test_services.py index 77ce8d1..bb6feee 100644 --- a/tests/test_services.py +++ b/tests/test_services.py @@ -116,7 +116,8 @@ class FakeEventQueue(list): @pytest.fixture def prefilled_repo(): from itertools import count - from ordr3.models import OrderItem, OrderStatus, Vendor + + from ordr3.models import Vendor, OrderItem, OrderStatus i = count() catalog = {1: "Ethanol", 2: "Aceton", 3: "NaOH", 4: "Coffee", 5: "Water"} @@ -165,8 +166,8 @@ def test_service_find_consumables(prefilled_repo): def test_create_log_entry_noteworthy(prefilled_repo): + from ordr3.models import User, OrderStatus from ordr3.services import create_log_entry - from ordr3.models import OrderStatus, User order = prefilled_repo.get_order(1) user_1 = User(*list("ABCDEFG")) @@ -190,8 +191,8 @@ def test_create_log_entry_noteworthy(prefilled_repo): def test_create_log_entry_not_noteworthy_same_user(prefilled_repo): + from ordr3.models import User, OrderStatus from ordr3.services import create_log_entry - from ordr3.models import OrderStatus, User order = prefilled_repo.get_order(1) user = User(*list("ABCDEFG")) @@ -203,8 +204,8 @@ def test_create_log_entry_not_noteworthy_same_user(prefilled_repo): def test_create_log_entry_not_noteworthy_same_status(prefilled_repo): + from ordr3.models import User, OrderStatus from ordr3.services import create_log_entry - from ordr3.models import OrderStatus, User order = prefilled_repo.get_order(1) user = User(*list("ABCDEFG")) @@ -398,7 +399,7 @@ def test_set_new_password_to_short_and_breached(monkeypatch): def test_get_user_from_reset_token_ok(): from ordr3 import services - from ordr3.models import PasswordResetToken, User + from ordr3.models import User, PasswordResetToken repo = FakeOrderRepository(None) user = User(*list("ABCDEFG")) @@ -413,7 +414,7 @@ def test_get_user_from_reset_token_ok(): def test_get_user_from_reset_token_wrong_token(): from ordr3 import services - from ordr3.models import PasswordResetToken, User + from ordr3.models import User, PasswordResetToken repo = FakeOrderRepository(None) user = User(*list("ABCDEFG")) @@ -427,10 +428,11 @@ def test_get_user_from_reset_token_wrong_token(): def test_get_user_from_reset_token_invalid_token(): - from ordr3 import services - from ordr3.models import PasswordResetToken, User from datetime import datetime, timedelta + from ordr3 import services + from ordr3.models import User, PasswordResetToken + repo = FakeOrderRepository(None) user = User(*list("ABCDEFG")) repo.add_user(user) @@ -445,7 +447,7 @@ def test_get_user_from_reset_token_invalid_token(): def test_get_user_from_reset_token_unknown_user(): from ordr3 import services - from ordr3.models import PasswordResetToken, User + from ordr3.models import User, PasswordResetToken repo = FakeOrderRepository(None) user = User(*list("ABCDEFG")) @@ -459,8 +461,8 @@ def test_get_user_from_reset_token_unknown_user(): def test_create_token_for_user(): + from ordr3.models import User, PasswordResetToken from ordr3.services import create_token_for_user - from ordr3.models import PasswordResetToken, User repo = FakeOrderRepository(None) user = User(*list("ABCDEFG"))