Browse Source

Get dummy test suite in place.

At least isort/pylava are passing.
ansible-setup-and-deploy
Luke Murphy 6 years ago
parent
commit
0f76d1acad
No known key found for this signature in database GPG Key ID: 5E2EF5A63E3718CC
  1. 1
      .gitignore
  2. 1
      Pipfile
  3. 31
      Pipfile.lock
  4. 8
      README.md
  5. 0
      tests/__init__.py
  6. 1
      tests/conftest.py
  7. 24
      tox.ini
  8. 1
      xppl/forms.py
  9. 1
      xppl/getannot.py
  10. 2
      xppl/models.py
  11. 34
      xppl/views.py

1
.gitignore

@ -3,3 +3,4 @@ __pycache__/
rqlite* rqlite*
xppl/cover/** xppl/cover/**
xppl/uploads/** xppl/uploads/**
.tox

1
Pipfile

@ -26,6 +26,7 @@ isort = "*"
molecule = "*" molecule = "*"
pylava = "*" pylava = "*"
pytest = "*" pytest = "*"
tox = "*"
[scripts] [scripts]
dev = "python dev.py" dev = "python dev.py"

31
Pipfile.lock

@ -1,7 +1,7 @@
{ {
"_meta": { "_meta": {
"hash": { "hash": {
"sha256": "ff23b231918be30a5c0e107881b3ba4d1c80fa32b8c23c111a7c5de2bc9b067a" "sha256": "fbaf222a7097845663946321f6cfa0b2d6ddae146ffbdb0d4ce8890dfc637d64"
}, },
"pipfile-spec": 6, "pipfile-spec": 6,
"requires": {}, "requires": {},
@ -652,6 +652,13 @@
], ],
"version": "==0.14.1" "version": "==0.14.1"
}, },
"filelock": {
"hashes": [
"sha256:b8d5ca5ca1c815e1574aee746650ea7301de63d87935b3463d26368b76e31633",
"sha256:d610c1bb404daf85976d7a82eb2ada120f04671007266b708606565dd03b5be6"
],
"version": "==3.0.10"
},
"flake8": { "flake8": {
"hashes": [ "hashes": [
"sha256:7253265f7abd8b313e3892944044a365e3f4ac3fcdcfb4298f55ee9ddf188ba0", "sha256:7253265f7abd8b313e3892944044a365e3f4ac3fcdcfb4298f55ee9ddf188ba0",
@ -1046,6 +1053,21 @@
], ],
"version": "==1.16.0" "version": "==1.16.0"
}, },
"toml": {
"hashes": [
"sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c",
"sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e"
],
"version": "==0.10.0"
},
"tox": {
"hashes": [
"sha256:513e32fdf2f9e2d583c2f248f47ba9886428c949f068ac54a0469cac55df5862",
"sha256:75fa30e8329b41b664585f5fb837e23ce1d7e6fa1f7811f2be571c990f9d911b"
],
"index": "pypi",
"version": "==3.5.3"
},
"traitlets": { "traitlets": {
"hashes": [ "hashes": [
"sha256:9c4bd2d267b7153df9152698efb1050a5d84982d3384a37b2c1f7723ba3e7835", "sha256:9c4bd2d267b7153df9152698efb1050a5d84982d3384a37b2c1f7723ba3e7835",
@ -1067,6 +1089,13 @@
], ],
"version": "==1.24.1" "version": "==1.24.1"
}, },
"virtualenv": {
"hashes": [
"sha256:686176c23a538ecc56d27ed9d5217abd34644823d6391cbeb232f42bf722baad",
"sha256:f899fafcd92e1150f40c8215328be38ff24b519cd95357fa6e78e006c7638208"
],
"version": "==16.1.0"
},
"wcwidth": { "wcwidth": {
"hashes": [ "hashes": [
"sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e", "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e",

8
README.md

@ -26,6 +26,14 @@ $ pipenv run dev
[Pipenv]: https://pipenv.readthedocs.io/en/latest/install/#pragmatic-installation-of-pipenv [Pipenv]: https://pipenv.readthedocs.io/en/latest/install/#pragmatic-installation-of-pipenv
[RQLite]: https://github.com/rqlite/rqlite [RQLite]: https://github.com/rqlite/rqlite
# Test It
```bash
$ pipenv run tox
```
Refer to the [tox.ini](tox.ini) for configuration options.
# Deploy It # Deploy It
See [ansible/README.md](ansible/README.md) for this. See [ansible/README.md](ansible/README.md) for this.

0
tests/__init__.py

1
tests/conftest.py

@ -0,0 +1 @@
"""Pytest fixtures."""

24
tox.ini

@ -0,0 +1,24 @@
[isort]
multi_line_output = 5
skip = .tox,build/*
[pylava]
skip = .tox/*,build/*
[pylava:mccabe]
complexity = 15
[tox]
skipsdist = True
envlist = py36
[testenv]
setenv =
PIPENV_IGNORE_VIRTUALENVS = 1
deps =
pipenv
commands =
pipenv install --dev
pipenv run pylava . --options=tox.ini
pipenv run isort --quiet --recursive --check-only --diff --settings-path=tox.ini
# pipenv run pytest {posargs: tests} # Note(decentral1se): add when we have tests

1
xppl/forms.py

@ -5,6 +5,7 @@ from wtforms import validators
from wtforms.fields import FormField, SelectField, StringField, SubmitField from wtforms.fields import FormField, SelectField, StringField, SubmitField
from wtforms.fields.html5 import DecimalRangeField from wtforms.fields.html5 import DecimalRangeField
from wtforms.validators import DataRequired, InputRequired from wtforms.validators import DataRequired, InputRequired
from xppl.models import Author from xppl.models import Author

1
xppl/getannot.py

@ -1,7 +1,6 @@
import json import json
import requests import requests
from flask import request from flask import request

2
xppl/models.py

@ -2,8 +2,8 @@ import datetime
from marshmallow import Schema, ValidationError, fields from marshmallow import Schema, ValidationError, fields
from sqlalchemy import Column, DateTime from sqlalchemy import Column, DateTime
from xppl.database import db
from xppl.database import db
authors = db.Table( authors = db.Table(
'books_authors', 'books_authors',

34
xppl/views.py

@ -8,24 +8,11 @@ from functools import wraps
from urllib.parse import quote as urlquote from urllib.parse import quote as urlquote
import autocomplete import autocomplete
from xppl.database import db from flask import Response, abort
from xppl.socketio import socketio from flask import current_app as app
from xppl.cover import get_cover
from xppl.extractText import extract_text
from xppl.forms import (
AddtoStackForm, EditForm, EditStackForm,
SearchForm, StackForm, UploadForm
)
from xppl.getannot import get_annot_book, get_annot_results, get_annotations
from xppl.models import (
Author, AuthorSchema, Book, BookSchema, Chat,
ChatSchema, Instance, Potential, Stack, StackSchema,
UserIns
)
from flask import ( from flask import (
Response, abort, flash, jsonify, redirect, flash, jsonify, redirect, render_template, request, send_from_directory,
render_template, request, send_from_directory, url_for
url_for, current_app as app
) )
from flask_socketio import emit from flask_socketio import emit
from flask_weasyprint import HTML, render_pdf from flask_weasyprint import HTML, render_pdf
@ -33,6 +20,19 @@ from sqlalchemy.inspection import inspect
from sqlalchemy.sql.expression import func from sqlalchemy.sql.expression import func
from werkzeug.utils import secure_filename from werkzeug.utils import secure_filename
from xppl.cover import get_cover
from xppl.database import db
from xppl.extractText import extract_text
from xppl.forms import (
AddtoStackForm, EditForm, EditStackForm, SearchForm, StackForm, UploadForm
)
from xppl.getannot import get_annot_book, get_annot_results, get_annotations
from xppl.models import (
Author, AuthorSchema, Book, BookSchema, Chat, ChatSchema, Instance,
Potential, Stack, StackSchema, UserIns
)
from xppl.socketio import socketio
ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'epub', 'chm', 'mobi']) ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'epub', 'chm', 'mobi'])
author_schema = AuthorSchema() author_schema = AuthorSchema()

Loading…
Cancel
Save