mirror of
https://github.com/shouptech/humulus.git
synced 2026-02-03 19:39:43 +00:00
Compare commits
11 commits
e1bb6184ab
...
cc4ed2bef9
| Author | SHA1 | Date | |
|---|---|---|---|
| cc4ed2bef9 | |||
| 17bf2ff722 | |||
| 792761e801 | |||
| 8813fb766a | |||
| a81562f379 | |||
| 243b8d839b | |||
| 88644894f9 | |||
| 5d8f536cb6 | |||
| 7f28223deb | |||
| 4c81a8580c | |||
| 5794922546 |
6 changed files with 55 additions and 3 deletions
20
.drone.yml
20
.drone.yml
|
|
@ -1,11 +1,29 @@
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
name: default
|
name: default
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: couchdb
|
||||||
|
image: couchdb:2.3
|
||||||
|
environment:
|
||||||
|
COUCHDB_USER: admin
|
||||||
|
COUCHDB_PASSWORD: password
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- test
|
- name: test
|
||||||
image: python:3.6
|
image: python:3.6
|
||||||
|
environment:
|
||||||
|
COUCH_URL: 'http://couchdb:5984'
|
||||||
|
CODECOV_TOKEN:
|
||||||
|
from_secret: CODECOV_TOKEN
|
||||||
commands:
|
commands:
|
||||||
|
# Install pre-requisites
|
||||||
- pip install coverage pytest
|
- pip install coverage pytest
|
||||||
- pip install -e .
|
- pip install -e .
|
||||||
|
# Wait for couch
|
||||||
|
- until curl "$COUCH_URL" ; do sleep 1 ; done
|
||||||
|
# Run tests
|
||||||
- coverage run -m pytest
|
- coverage run -m pytest
|
||||||
- coverage report -m
|
- coverage report -m
|
||||||
|
# Upload coverage report
|
||||||
|
- pip install codecov
|
||||||
|
- codecov
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,11 @@
|
||||||
|
.. image:: https://drone.shoup.io/api/badges/shouptech/humulus/status.svg
|
||||||
|
:target: https://drone.shoup.io/shouptech/humulus
|
||||||
|
:alt: Drone build status
|
||||||
|
|
||||||
|
.. image:: https://codecov.io/gh/shouptech/humulus/branch/master/graph/badge.svg
|
||||||
|
:target: https://codecov.io/gh/shouptech/humulus
|
||||||
|
:alt: Code Coverage
|
||||||
|
|
||||||
Humulus is an open-source homebrew beer recipe app built using Flask.
|
Humulus is an open-source homebrew beer recipe app built using Flask.
|
||||||
|
|
||||||
Humulus is currently very much WIP and probably doesn't actually work.
|
Humulus is currently very much WIP and probably doesn't actually work.
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
import json
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
import click
|
import click
|
||||||
|
|
@ -118,3 +119,13 @@ def get_doc_or_404(id):
|
||||||
except KeyError:
|
except KeyError:
|
||||||
abort(404)
|
abort(404)
|
||||||
return doc
|
return doc
|
||||||
|
|
||||||
|
|
||||||
|
def put_doc_from_file(filename):
|
||||||
|
"""Loads filename and stores it in couch.
|
||||||
|
|
||||||
|
The file must be valid JSON.
|
||||||
|
"""
|
||||||
|
with open(filename, 'r') as doc:
|
||||||
|
response = put_doc(json.load(doc))
|
||||||
|
return response
|
||||||
|
|
|
||||||
4
tests/assets/test_doc.json
Normal file
4
tests/assets/test_doc.json
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"_id": "testfile",
|
||||||
|
"foo": "bar"
|
||||||
|
}
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
import os
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
@ -22,8 +23,9 @@ from humulus.couch import build_couch, get_couch, put_doc
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def app():
|
def app():
|
||||||
dbname = 'test_{}'.format(str(uuid.uuid4()))
|
dbname = 'test_{}'.format(str(uuid.uuid4()))
|
||||||
|
couchurl = os.environ.get('COUCH_URL', 'http://127.0.0.1:5984')
|
||||||
app = create_app({
|
app = create_app({
|
||||||
'COUCH_URL': 'http://127.0.0.1:5984',
|
'COUCH_URL': couchurl,
|
||||||
'COUCH_USERNAME': 'admin',
|
'COUCH_USERNAME': 'admin',
|
||||||
'COUCH_PASSWORD': 'password',
|
'COUCH_PASSWORD': 'password',
|
||||||
'COUCH_DATABASE': dbname,
|
'COUCH_DATABASE': dbname,
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,10 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
import pathlib
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
from humulus.couch import get_doc, put_doc, update_doc
|
from humulus.couch import get_doc, put_doc, update_doc, put_doc_from_file
|
||||||
|
|
||||||
|
|
||||||
def test_put_doc(app):
|
def test_put_doc(app):
|
||||||
|
|
@ -64,3 +65,11 @@ def test_build_couch_command(runner, monkeypatch):
|
||||||
def test_get_doc(app):
|
def test_get_doc(app):
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
assert get_doc('foobar')['data'] == 'test'
|
assert get_doc('foobar')['data'] == 'test'
|
||||||
|
|
||||||
|
|
||||||
|
def test_put_doc_from_file(app):
|
||||||
|
here = pathlib.Path(__file__).parent
|
||||||
|
with app.app_context():
|
||||||
|
response = put_doc_from_file(here/'assets'/'test_doc.json')
|
||||||
|
assert response['_id'] == 'testfile'
|
||||||
|
assert response['foo'] == 'bar'
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue