aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/pydrilla/pydrilla.py17
-rw-r--r--src/pydrilla/templates/index.html2
-rw-r--r--src/test/test_pydrilla.py23
3 files changed, 26 insertions, 16 deletions
diff --git a/src/pydrilla/pydrilla.py b/src/pydrilla/pydrilla.py
index 7300198..239267e 100644
--- a/src/pydrilla/pydrilla.py
+++ b/src/pydrilla/pydrilla.py
@@ -634,10 +634,10 @@ j2env = MyEnvironment(loader=PackageLoader(__package__), autoescape=False)
indexpage = j2env.get_template('index.html')
@bp.route('/')
def index():
- return indexpage.render(content=current_app._pydrilla_resources_map)
+ return indexpage.render()
-for item_type in ['resource', 'mapping']:
- def item(identifier):
+for item_type in ['mapping', 'resource']:
+ def item(identifier, item_type=item_type):
ver = request.args.get('ver')
if ver is not None:
try:
@@ -645,12 +645,11 @@ for item_type in ['resource', 'mapping']:
except:
abort(400)
- item = current_app._pydrilla_content\
- .find_item(item_type, identifier, ver)
- if item is None:
+ definition = current_app._pydrilla_content\
+ .find_item(item_type, identifier, ver)
+ if definition is None:
abort(404)
- return json.dumps(item)
+ return json.dumps(definition)
- item.__name__ = item_type + 's'
- bp.route(f'/{item_type}s/<string:identifier>')(item)
+ bp.add_url_rule(f'/{item_type}s/<string:identifier>', item_type, item)
diff --git a/src/pydrilla/templates/index.html b/src/pydrilla/templates/index.html
index 71de8ba..5f5b319 100644
--- a/src/pydrilla/templates/index.html
+++ b/src/pydrilla/templates/index.html
@@ -27,6 +27,4 @@ in a proprietary program, I am not going to enforce this in court.
{% block body %}
{{ super() }}
<h2>{{ _('hydrilla_welcome') }}</h2>
- <h4>content</h4>
- {{ content }}
{% endblock %}
diff --git a/src/test/test_pydrilla.py b/src/test/test_pydrilla.py
index 5937db9..07c580a 100644
--- a/src/test/test_pydrilla.py
+++ b/src/test/test_pydrilla.py
@@ -31,23 +31,36 @@ from pathlib import Path
from os import mkdir, unlink, environ
import json
-import pydrilla
+from pydrilla import pydrilla, create_app
test_dir = Path(__file__).resolve().parent
-pydrilla_dir = Path(hydrilla.__file__).resolve().parent
-test_config_path = test_dir / 'config.json'
+pydrilla_dir = Path(pydrilla.__file__).resolve().parent
+test_config_path = pydrilla_dir / 'development_config.json'
@pytest.fixture
def client():
- app = pydrilla.create_app(test_config_path, flask_config={'TESTING': True})
+ app = create_app(test_config_path, flask_config={'TESTING': True})
with app.test_client() as client:
yield client
-def test_basic(client):
+def test_api_basic(client):
response = client.get('/')
assert b'html' in response.data
+ for item_type in ['mapping', 'resource']:
+ response = client.get(f'/{item_type}s/helloapple')
+ definition = json.loads(response.data.decode())
+ assert definition['type'] == item_type
+ assert definition['source_name'] == 'hello'
+ assert definition['version'] == [2021, 11, 10]
+
+ response = client.get(f'/{item_type}s/helloapple?ver=2021.11.10.0')
+ assert definition == json.loads(response.data.decode())
+
+ response = client.get(f'/{item_type}s/helloapple?ver=2021.11.10.999')
+ assert response.status_code == 404
+
def test_normalize_version():
assert pydrilla.normalize_version([4, 5, 3, 0, 0]) == [4, 5, 3]
assert pydrilla.normalize_version([1, 0, 5, 0]) == [1, 0, 5]