Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,8 @@ def _endpoints_from_config(config: Config) -> list[dict[str, Any]]:
for name in config.get_services():
decorators = EnrouteCollector(name, config).get_rest_command_query()
endpoints += [
{"url": decorator.url, "method": decorator.method} | decorator.kwargs for decorator in
set(chain(*decorators.values()))
{"url": decorator.url, "method": decorator.method} | decorator.kwargs
for decorator in set(chain(*decorators.values()))
]

endpoints.sort(key=itemgetter("url", "method"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,54 @@ def test_rest_command(self):
self.assertEqual(RestCommandEnrouteDecorator("tickets/", "GET"), decorator)

def test_rest_command_kwargs(self):
decorator = enroute.rest.command(path="tickets/", method="GET", authorized=True,
allowed_groups=['super_admin', 'admin', ])
decorator = enroute.rest.command(
path="tickets/",
method="GET",
authorized=True,
allowed_groups=[
"super_admin",
"admin",
],
)
self.assertEqual(
RestCommandEnrouteDecorator("tickets/", "GET", authorized=True, allowed_groups=['super_admin', 'admin', ]),
decorator)
RestCommandEnrouteDecorator(
"tickets/",
"GET",
authorized=True,
allowed_groups=[
"super_admin",
"admin",
],
),
decorator,
)

def test_rest_query(self):
decorator = enroute.rest.query(path="tickets/", method="GET")
self.assertEqual(RestQueryEnrouteDecorator("tickets/", "GET"), decorator)

def test_rest_query_kwargs(self):
decorator = enroute.rest.query(path="tickets/", method="GET", authorized=True,
allowed_groups=['super_admin', 'admin', ])
self.assertEqual(RestQueryEnrouteDecorator("tickets/", "GET", authorized=True,
allowed_groups=['super_admin', 'admin', ]), decorator)
decorator = enroute.rest.query(
path="tickets/",
method="GET",
authorized=True,
allowed_groups=[
"super_admin",
"admin",
],
)
self.assertEqual(
RestQueryEnrouteDecorator(
"tickets/",
"GET",
authorized=True,
allowed_groups=[
"super_admin",
"admin",
],
),
decorator,
)

def test_rest_event_raises(self):
with self.assertRaises(AttributeError):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
)
from tests.utils import (
FakeService,
FakeServiceWithGetEnroute, FakeServiceWithKwargs,
FakeServiceWithGetEnroute,
FakeServiceWithKwargs,
)


Expand Down Expand Up @@ -62,8 +63,17 @@ def test_get_rest_command_query_kwargs(self):

observed = analyzer.get_rest_command_query()
expected = {
"get_tickets": {RestQueryEnrouteDecorator("tickets/", "GET", authorized=True,
allowed_groups=['super_admin', 'admin', ])},
"get_tickets": {
RestQueryEnrouteDecorator(
"tickets/",
"GET",
authorized=True,
allowed_groups=[
"super_admin",
"admin",
],
)
},
}

self.assertEqual(expected, observed)
Expand Down
11 changes: 10 additions & 1 deletion packages/core/minos-microservice-networks/tests/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,12 +174,21 @@ def bar(self, request: Request):
class FakeServiceWithKwargs:
"""For testing purposes."""

@enroute.rest.query(path="tickets/", method="GET", authorized=True, allowed_groups=['super_admin', 'admin', ])
@enroute.rest.query(
path="tickets/",
method="GET",
authorized=True,
allowed_groups=[
"super_admin",
"admin",
],
)
@enroute.broker.query(topic="GetTickets")
async def get_tickets(self, request: Request) -> Response:
"""For testing purposes."""
return Response(": ".join(("Get Tickets", await request.content())))


class FakeServiceWithGetEnroute:
"""For testing purposes."""

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,16 @@ def test_get_all_queries_with_kwargs(self):

expected = {
"get_order": {
GraphQlQueryEnrouteDecorator(name="order", argument=GraphQLField(GraphQLString), output=GraphQLString,
authorized=True,
allowed_groups=['super_admin', 'admin', ])
GraphQlQueryEnrouteDecorator(
name="order",
argument=GraphQLField(GraphQLString),
output=GraphQLString,
authorized=True,
allowed_groups=[
"super_admin",
"admin",
],
)
},
}

Expand Down
12 changes: 10 additions & 2 deletions packages/plugins/minos-router-graphql/tests/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,16 @@ class FakeQueryService2:
"""For testng purposes."""

# noinspection PyUnusedLocal
@enroute.graphql.query(name="order", argument=GraphQLField(GraphQLString), output=GraphQLString, authorized=True,
allowed_groups=['supèr_admin', 'admin', ])
@enroute.graphql.query(
name="order",
argument=GraphQLField(GraphQLString),
output=GraphQLString,
authorized=True,
allowed_groups=[
"supèr_admin",
"admin",
],
)
def get_order(self, request: Request):
"""For testng purposes."""

Expand Down