Skip to content

Commit

Permalink
Merge f21fd9d into d3a9f79
Browse files Browse the repository at this point in the history
  • Loading branch information
josephmancuso committed Aug 30, 2018
2 parents d3a9f79 + f21fd9d commit 0e58a7c
Show file tree
Hide file tree
Showing 19 changed files with 89 additions and 36 deletions.
4 changes: 2 additions & 2 deletions masonite/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -191,12 +191,12 @@ def _find_annotated_parameter(self, parameter):
"""

for dummy, provider_class in self.providers.items():

if parameter.annotation == provider_class or parameter.annotation == provider_class.__class__:
obj = provider_class
self.fire_hook('resolve', parameter, obj)
return obj
elif inspect.isclass(provider_class) and issubclass(provider_class, parameter.annotation):
elif inspect.isclass(provider_class) and issubclass(provider_class, parameter.annotation) or issubclass(provider_class.__class__, parameter.annotation):
obj = provider_class
self.fire_hook('resolve', parameter, obj)
return obj
Expand Down
9 changes: 8 additions & 1 deletion masonite/contracts/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,11 @@
from .MailContract import MailContract
from .QueueContract import QueueContract
from .SessionContract import SessionContract
from .UploadContract import UploadContract
from .UploadContract import UploadContract

from .managers.BroadcastManagerContract import BroadcastManagerContract
from .managers.CacheManagerContract import CacheManagerContract
from .managers.MailManagerContract import MailManagerContract
from .managers.QueueManagerContract import QueueManagerContract
from .managers.SessionManagerContract import SessionManagerContract
from .managers.UploadManagerContract import UploadManagerContract
5 changes: 5 additions & 0 deletions masonite/contracts/managers/BroadcastManagerContract.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from abc import ABC


class BroadcastManagerContract(ABC):
pass
5 changes: 5 additions & 0 deletions masonite/contracts/managers/CacheManagerContract.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from abc import ABC


class CacheManagerContract(ABC):
pass
5 changes: 5 additions & 0 deletions masonite/contracts/managers/MailManagerContract.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from abc import ABC


class MailManagerContract(ABC):
pass
5 changes: 5 additions & 0 deletions masonite/contracts/managers/QueueManagerContract.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from abc import ABC


class QueueManagerContract(ABC):
pass
5 changes: 5 additions & 0 deletions masonite/contracts/managers/SessionManagerContract.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from abc import ABC


class SessionManagerContract(ABC):
pass
5 changes: 5 additions & 0 deletions masonite/contracts/managers/UploadManagerContract.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from abc import ABC


class UploadManagerContract(ABC):
pass
2 changes: 1 addition & 1 deletion masonite/info.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"""Module for specifying the Masonite version in a central location.
"""

VERSION = '2.0.17'
VERSION = '2.0.18'
3 changes: 2 additions & 1 deletion masonite/managers/BroadcastManager.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
""" Broadcast Manager Module """

from masonite.contracts import BroadcastManagerContract
from masonite.managers import Manager


class BroadcastManager(Manager):
class BroadcastManager(Manager, BroadcastManagerContract):
"""Manages all broadcast drivers.
Arguments:
Expand Down
5 changes: 3 additions & 2 deletions masonite/managers/CacheManager.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
""" Cache Manager """

from masonite.managers.Manager import Manager
from masonite.contracts import CacheManagerContract
from masonite.managers import Manager


class CacheManager(Manager):
class CacheManager(Manager, CacheManagerContract):
"""Manages all cache drivers.
Arguments:
Expand Down
5 changes: 3 additions & 2 deletions masonite/managers/MailManager.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
""" Mail Manager Module """

from masonite.managers.Manager import Manager
from masonite.contracts import MailManagerContract
from masonite.managers import Manager


class MailManager(Manager):
class MailManager(Manager, MailManagerContract):
"""Manages all mail drivers.
Arguments:
Expand Down
5 changes: 3 additions & 2 deletions masonite/managers/QueueManager.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
""" Queue Manager Module """

from masonite.managers.Manager import Manager
from masonite.contracts import QueueManagerContract
from masonite.managers import Manager


class QueueManager(Manager):
class QueueManager(Manager, QueueManagerContract):
"""Manages all queue drivers.
Arguments:
Expand Down
5 changes: 3 additions & 2 deletions masonite/managers/SessionManager.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
""" Session Manager Module """

from masonite.managers.Manager import Manager
from masonite.contracts import SessionManagerContract
from masonite.managers import Manager


class SessionManager(Manager):
class SessionManager(Manager, SessionManagerContract):
"""Manages all session drivers.
Arguments:
Expand Down
3 changes: 2 additions & 1 deletion masonite/managers/UploadManager.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
""" Upload Manager Module """

from masonite.managers.Manager import Manager
from masonite.contracts import UploadManagerContract
from masonite.managers import Manager


class UploadManager(Manager):
Expand Down
16 changes: 10 additions & 6 deletions masonite/routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ class BaseHttpRoute:
named_route = None
required_domain = None
module_location = 'app.http.controllers'
list_middleware = []
list_middleware = None

def route(self, route, output):
"""Loads the route into the class. This also looks for the controller and attaches it to the route.
Expand Down Expand Up @@ -323,7 +323,10 @@ def middleware(self, *args):
self
"""

self.list_middleware = args
for arg in args:
if arg not in self.list_middleware:
self.list_middleware.append(arg)

return self

def run_middleware(self, type_of_middleware):
Expand Down Expand Up @@ -366,6 +369,7 @@ def __init__(self):
"""

self.method_type = 'GET'
self.list_middleware = []


class Post(BaseHttpRoute):
Expand All @@ -377,6 +381,7 @@ def __init__(self):
"""

self.method_type = 'POST'
self.list_middleware = []


class Put(BaseHttpRoute):
Expand All @@ -388,7 +393,7 @@ def __init__(self):
"""

self.method_type = 'PUT'

self.list_middleware = []

class Patch(BaseHttpRoute):
"""Class for specifying Patch requests
Expand All @@ -399,7 +404,7 @@ def __init__(self):
"""

self.method_type = 'PATCH'

self.list_middleware = []

class Delete(BaseHttpRoute):
"""Class for specifying Delete requests
Expand All @@ -410,7 +415,7 @@ def __init__(self):
"""

self.method_type = 'DELETE'

self.list_middleware = []

class RouteGroup():
"""Class for specifying Route Groups
Expand All @@ -431,7 +436,6 @@ def __new__(self, routes=[], middleware=[], domain=[], prefix='', name=''):
"""

from masonite.helpers.routes import flatten_routes

self.routes = flatten_routes(routes)

if middleware:
Expand Down
14 changes: 11 additions & 3 deletions tests/test_managers_mail_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@

from masonite.app import App
from masonite.exceptions import DriverNotFound
from masonite.managers.MailManager import MailManager
from masonite.drivers.MailSmtpDriver import MailSmtpDriver as MailDriver
from masonite.drivers.MailMailgunDriver import MailMailgunDriver as Mailgun
from masonite.managers import MailManager
from masonite.drivers import MailSmtpDriver as MailDriver
from masonite.drivers import MailMailgunDriver as Mailgun
from masonite.contracts import MailManagerContract
from masonite.view import View


Expand Down Expand Up @@ -34,6 +35,13 @@ def test_mail_manager_loads_container(self):
mailManager = MailManager()
assert mailManager.load_container(self.app)

def test_mail_manager_resolves_from_contract(self):
self.app.bind('MailManager', MailManager())
assert self.app.resolve(self._test_resolve) == self.app.make('MailManager')

def _test_resolve(self, mail: MailManagerContract):
return mail

def test_creates_driver(self):
mailManager = MailManager()

Expand Down
2 changes: 1 addition & 1 deletion tests/test_request_routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ def test_loads_request(self):
def test_loads_middleware(self):
get = Get().route('test', None).middleware('auth', 'middleware')

assert get.list_middleware == ('auth', 'middleware')
assert get.list_middleware == ['auth', 'middleware']


def test_method_type(self):
Expand Down
22 changes: 10 additions & 12 deletions tests/test_routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,21 +75,19 @@ def test_group_route(self):
assert routes[1].route_url == '/example/test/2'

def test_group_route_sets_middleware(self):
routes = group('/example', [
Get().route('/test/1', 'TestController@show'),
Get().route('/test/2', 'TestController@show')
])

assert routes[0].route_url == '/example/test/1'

routes = RouteGroup([
Get().route('/test/1', 'TestController@show'),
Get().route('/test/2', 'TestController@show')
], middleware=['auth', 'user'])
Get().route('/test/1', 'TestController@show').middleware('another'),
Get().route('/test/2', 'TestController@show'),
RouteGroup([
Get().route('/test/3', 'TestController@show'),
Get().route('/test/4', 'TestController@show')
], middleware=('test', 'test2'))
], middleware=('auth', 'user'))

assert isinstance(routes, list)

assert routes[0].list_middleware == ('auth', 'user')
assert ['another', 'auth', 'user'] == routes[0].list_middleware
assert ['auth', 'user'] == routes[1].list_middleware
assert ['test', 'test2', 'auth', 'user'] == routes[2].list_middleware

def test_group_route_sets_domain(self):
routes = RouteGroup([
Expand Down

0 comments on commit 0e58a7c

Please sign in to comment.