Skip to content

Commit b3f0f7d

Browse files
committed
Merge branch 'feature/supported-types-endpoint' into next
[SVCS-350] Closes: #267
2 parents 5a105ad + feb4bcb commit b3f0f7d

File tree

5 files changed

+78
-0
lines changed

5 files changed

+78
-0
lines changed

mfr/server/app.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
from mfr.server.handlers.export import ExportHandler
1616
from mfr.server.handlers.render import RenderHandler
1717
from mfr.server.handlers.status import StatusHandler
18+
from mfr.server.handlers.exporters import ExportersHandler
19+
from mfr.server.handlers.renderers import RenderersHandler
1820
from mfr.server.handlers.core import ExtensionsStaticFileHandler
1921

2022
logger = logging.getLogger(__name__)
@@ -37,7 +39,9 @@ def make_app(debug):
3739
(r'/static/(.*)', tornado.web.StaticFileHandler, {'path': server_settings.STATIC_PATH}),
3840
(r'/assets/(.*?)/(.*\..*)', ExtensionsStaticFileHandler),
3941
(r'/export', ExportHandler),
42+
(r'/exporters', ExportersHandler),
4043
(r'/render', RenderHandler),
44+
(r'/renderers', RenderersHandler),
4145
(r'/status', StatusHandler),
4246
],
4347
debug=debug,

mfr/server/handlers/exporters.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import pkg_resources
2+
import tornado.web
3+
4+
5+
class ExportersHandler(tornado.web.RequestHandler):
6+
7+
def get(self):
8+
"""List available exporters"""
9+
10+
exporters = {}
11+
for ep in pkg_resources.iter_entry_points(group='mfr.exporters'):
12+
exporters.update({ep.name: ep.load().__name__})
13+
14+
self.write({
15+
'exporters': exporters,
16+
})

mfr/server/handlers/renderers.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import pkg_resources
2+
import tornado.web
3+
4+
5+
class RenderersHandler(tornado.web.RequestHandler):
6+
7+
def get(self):
8+
"""List available renderers"""
9+
10+
renderers = {}
11+
for ep in pkg_resources.iter_entry_points(group='mfr.renderers'):
12+
renderers.update({ep.name: ep.load().__name__})
13+
14+
self.write({
15+
'renderers': renderers,
16+
})
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import json
2+
3+
import pkg_resources
4+
from tornado import testing
5+
6+
from tests import utils
7+
8+
9+
class TestExportersHandler(utils.HandlerTestCase):
10+
11+
@testing.gen_test
12+
def test_get_status(self):
13+
resp = yield self.http_client.fetch(self.get_url('/exporters'))
14+
15+
exporters = {}
16+
for ep in pkg_resources.iter_entry_points(group='mfr.exporters'):
17+
exporters.update({ep.name: ep.load().__name__})
18+
19+
data = json.loads(resp.body.decode('utf-8'))
20+
assert resp.code == 200
21+
assert data['exporters'] == exporters
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import json
2+
3+
import pkg_resources
4+
from tornado import testing
5+
6+
from tests import utils
7+
8+
9+
class TestRenderersHandler(utils.HandlerTestCase):
10+
11+
@testing.gen_test
12+
def test_get_status(self):
13+
resp = yield self.http_client.fetch(self.get_url('/renderers'))
14+
15+
renderers = {}
16+
for ep in pkg_resources.iter_entry_points(group='mfr.renderers'):
17+
renderers.update({ep.name: ep.load().__name__})
18+
19+
data = json.loads(resp.body.decode('utf-8'))
20+
assert resp.code == 200
21+
assert data['renderers'] == renderers

0 commit comments

Comments
 (0)