diff options
Diffstat (limited to 'tests/fixtures.py')
-rw-r--r-- | tests/fixtures.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/fixtures.py b/tests/fixtures.py new file mode 100644 index 00000000..9176b8c5 --- /dev/null +++ b/tests/fixtures.py @@ -0,0 +1,57 @@ + +import pytest +import fatcat +import fatcat.sql +from fatcat.models import * + + +@pytest.fixture +def app(): + fatcat.app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://' + fatcat.app.testing = True + fatcat.app.debug = True + fatcat.db.session.remove() + fatcat.db.drop_all() + fatcat.db.create_all() + fatcat.sql.populate_db() + return fatcat.app.test_client() + +@pytest.fixture +def rich_app(app): + assert app.post('/v0/work', + data=json.dumps(dict( + title="dummy", + work_type="thing", + extra=dict(a=1, b="zing"))), + headers={"content-type": "application/json"} + ).status_code == 200 + return app + + +## Helpers ################################################################## + +def check_entity_fields(e): + for key in ('rev', 'is_live', 'redirect_id'): + assert key in e + for key in ('id',): + assert e[key] is not None + +def check_release(e): + for key in ('work', 'release_type'): + assert key in e + for key in ('title'): + assert e[key] is not None + for key in ('refs', 'creators'): + assert type(e[key]) == list + +def check_creator(e): + for key in ('name',): + assert e[key] is not None + +def check_container(e): + for key in ('name',): + assert e[key] is not None + +def check_file(e): + for key in ('size', 'sha1'): + assert e[key] is not None |