From 592becff2de2bd6ccf03265d3776f25448576224 Mon Sep 17 00:00:00 2001 From: Nikolai Date: Sat, 29 May 2021 18:44:03 -0700 Subject: [PATCH] post testing properly creates database context --- tests/test_post.py | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/tests/test_post.py b/tests/test_post.py index 2d039dc..413aafe 100644 --- a/tests/test_post.py +++ b/tests/test_post.py @@ -2,26 +2,41 @@ import pytest from amanuensis.db import * import amanuensis.backend.lexicon as lexiq +import amanuensis.backend.user as userq import amanuensis.backend.post as postq +import amanuensis.backend.membership as memq + from amanuensis.errors import ArgumentError from .test_db import db def test_create_post(db): """Test new post creation""" + + # Make user and lexicon + new_user = userq.create(db, 'username', 'password', 'user', 'a@b.c', False) + assert new_user.id, 'Failed to create user' + new_lexicon = lexiq.create(db, 'Test', None, 'prompt') + assert new_lexicon.id, 'Failed to create lexicon' + + # Add the user to the lexicon as an editor + mem = memq.create(db, new_user.id, new_lexicon.id, True) + assert mem, 'Failed to create membership' + + # argument dictionary for post object kwargs = { - 'lexicon_id': 0, - 'user_id': 0, + 'lexicon_id': new_lexicon.id, + 'user_id': new_user.id, 'body': 'body' } - # Test ids are integers + # ids are integers with pytest.raises(ArgumentError): postq.create(db, **{**kwargs, 'user_id': 'zero'}) with pytest.raises(ArgumentError): postq.create(db, **{**kwargs, 'lexicon_id': 'zero'}) - # test empty arguments + # empty arguments don't work with pytest.raises(ArgumentError): postq.create(db, **{**kwargs, 'lexicon_id': ''}) with pytest.raises(ArgumentError): @@ -29,7 +44,7 @@ def test_create_post(db): with pytest.raises(ArgumentError): postq.create(db, **{**kwargs, 'body': ''}) - # check whitespace + # post with only whitespace doesn't work with pytest.raises(ArgumentError): postq.create(db, **{**kwargs, 'body': ' '})