aboutsummaryrefslogtreecommitdiff
path: root/server/szurubooru/tests
diff options
context:
space:
mode:
authorrr-2017-02-04 01:08:12 +0100
committerrr-2017-02-05 16:34:45 +0100
commitad842ee8a54c57463b8e28b52970f173ea1d64ea (patch)
tree1238e8270878801a2ddb10bc4db469115c026cab /server/szurubooru/tests
parentabf1fc2b2d135299fe7e8a700d4e7a18966d7bfe (diff)
server: refactor + add type hinting
- Added type hinting (for now, 3.5-compatible) - Split `db` namespace into `db` module and `model` namespace - Changed elastic search to be created lazily for each operation - Changed to class based approach in entity serialization to allow stronger typing - Removed `required` argument from `context.get_*` family of functions; now it's implied if `default` argument is omitted - Changed `unalias_dict` implementation to use less magic inputs
Diffstat (limited to 'server/szurubooru/tests')
-rw-r--r--server/szurubooru/tests/api/test_comment_creating.py17
-rw-r--r--server/szurubooru/tests/api/test_comment_deleting.py22
-rw-r--r--server/szurubooru/tests/api/test_comment_rating.py39
-rw-r--r--server/szurubooru/tests/api/test_comment_retrieving.py16
-rw-r--r--server/szurubooru/tests/api/test_comment_updating.py18
-rw-r--r--server/szurubooru/tests/api/test_password_reset.py12
-rw-r--r--server/szurubooru/tests/api/test_post_creating.py50
-rw-r--r--server/szurubooru/tests/api/test_post_deleting.py14
-rw-r--r--server/szurubooru/tests/api/test_post_favoriting.py27
-rw-r--r--server/szurubooru/tests/api/test_post_featuring.py26
-rw-r--r--server/szurubooru/tests/api/test_post_merging.py17
-rw-r--r--server/szurubooru/tests/api/test_post_rating.py26
-rw-r--r--server/szurubooru/tests/api/test_post_retrieving.py22
-rw-r--r--server/szurubooru/tests/api/test_post_updating.py34
-rw-r--r--server/szurubooru/tests/api/test_snapshot_retrieving.py10
-rw-r--r--server/szurubooru/tests/api/test_tag_category_creating.py10
-rw-r--r--server/szurubooru/tests/api/test_tag_category_deleting.py22
-rw-r--r--server/szurubooru/tests/api/test_tag_category_retrieving.py14
-rw-r--r--server/szurubooru/tests/api/test_tag_category_updating.py18
-rw-r--r--server/szurubooru/tests/api/test_tag_creating.py12
-rw-r--r--server/szurubooru/tests/api/test_tag_deleting.py18
-rw-r--r--server/szurubooru/tests/api/test_tag_merging.py14
-rw-r--r--server/szurubooru/tests/api/test_tag_retrieving.py16
-rw-r--r--server/szurubooru/tests/api/test_tag_siblings_retrieving.py10
-rw-r--r--server/szurubooru/tests/api/test_tag_updating.py35
-rw-r--r--server/szurubooru/tests/api/test_user_creating.py10
-rw-r--r--server/szurubooru/tests/api/test_user_deleting.py24
-rw-r--r--server/szurubooru/tests/api/test_user_retrieving.py26
-rw-r--r--server/szurubooru/tests/api/test_user_updating.py36
-rw-r--r--server/szurubooru/tests/conftest.py46
-rw-r--r--server/szurubooru/tests/func/test_comments.py4
-rw-r--r--server/szurubooru/tests/func/test_image_hash.py8
-rw-r--r--server/szurubooru/tests/func/test_posts.py80
-rw-r--r--server/szurubooru/tests/func/test_snapshots.py32
-rw-r--r--server/szurubooru/tests/func/test_tag_categories.py4
-rw-r--r--server/szurubooru/tests/func/test_tags.py6
-rw-r--r--server/szurubooru/tests/func/test_users.py34
-rw-r--r--server/szurubooru/tests/model/__init__.py (renamed from server/szurubooru/tests/db/__init__.py)0
-rw-r--r--server/szurubooru/tests/model/test_comment.py (renamed from server/szurubooru/tests/db/test_comment.py)18
-rw-r--r--server/szurubooru/tests/model/test_post.py (renamed from server/szurubooru/tests/db/test_post.py)52
-rw-r--r--server/szurubooru/tests/model/test_tag.py (renamed from server/szurubooru/tests/db/test_tag.py)28
-rw-r--r--server/szurubooru/tests/model/test_user.py (renamed from server/szurubooru/tests/db/test_user.py)72
-rw-r--r--server/szurubooru/tests/rest/test_context.py36
-rw-r--r--server/szurubooru/tests/search/configs/test_post_search_config.py28
44 files changed, 536 insertions, 527 deletions
diff --git a/server/szurubooru/tests/api/test_comment_creating.py b/server/szurubooru/tests/api/test_comment_creating.py
index c7d0b0f..ad24366 100644
--- a/server/szurubooru/tests/api/test_comment_creating.py
+++ b/server/szurubooru/tests/api/test_comment_creating.py
@@ -1,19 +1,20 @@
from datetime import datetime
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import comments, posts
@pytest.fixture(autouse=True)
def inject_config(config_injector):
- config_injector({'privileges': {'comments:create': db.User.RANK_REGULAR}})
+ config_injector(
+ {'privileges': {'comments:create': model.User.RANK_REGULAR}})
def test_creating_comment(
user_factory, post_factory, context_factory, fake_datetime):
post = post_factory()
- user = user_factory(rank=db.User.RANK_REGULAR)
+ user = user_factory(rank=model.User.RANK_REGULAR)
db.session.add_all([post, user])
db.session.flush()
with patch('szurubooru.func.comments.serialize_comment'), \
@@ -24,7 +25,7 @@ def test_creating_comment(
params={'text': 'input', 'postId': post.post_id},
user=user))
assert result == 'serialized comment'
- comment = db.session.query(db.Comment).one()
+ comment = db.session.query(model.Comment).one()
assert comment.text == 'input'
assert comment.creation_time == datetime(1997, 1, 1)
assert comment.last_edit_time is None
@@ -41,7 +42,7 @@ def test_creating_comment(
def test_trying_to_pass_invalid_params(
user_factory, post_factory, context_factory, params):
post = post_factory()
- user = user_factory(rank=db.User.RANK_REGULAR)
+ user = user_factory(rank=model.User.RANK_REGULAR)
db.session.add_all([post, user])
db.session.flush()
real_params = {'text': 'input', 'postId': post.post_id}
@@ -63,11 +64,11 @@ def test_trying_to_omit_mandatory_field(user_factory, context_factory, field):
api.comment_api.create_comment(
context_factory(
params={},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
def test_trying_to_comment_non_existing(user_factory, context_factory):
- user = user_factory(rank=db.User.RANK_REGULAR)
+ user = user_factory(rank=model.User.RANK_REGULAR)
db.session.add_all([user])
db.session.flush()
with pytest.raises(posts.PostNotFoundError):
@@ -81,4 +82,4 @@ def test_trying_to_create_without_privileges(user_factory, context_factory):
api.comment_api.create_comment(
context_factory(
params={},
- user=user_factory(rank=db.User.RANK_ANONYMOUS)))
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)))
diff --git a/server/szurubooru/tests/api/test_comment_deleting.py b/server/szurubooru/tests/api/test_comment_deleting.py
index efb432a..e1d1baa 100644
--- a/server/szurubooru/tests/api/test_comment_deleting.py
+++ b/server/szurubooru/tests/api/test_comment_deleting.py
@@ -1,5 +1,5 @@
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import comments
@@ -7,8 +7,8 @@ from szurubooru.func import comments
def inject_config(config_injector):
config_injector({
'privileges': {
- 'comments:delete:own': db.User.RANK_REGULAR,
- 'comments:delete:any': db.User.RANK_MODERATOR,
+ 'comments:delete:own': model.User.RANK_REGULAR,
+ 'comments:delete:any': model.User.RANK_MODERATOR,
},
})
@@ -22,26 +22,26 @@ def test_deleting_own_comment(user_factory, comment_factory, context_factory):
context_factory(params={'version': 1}, user=user),
{'comment_id': comment.comment_id})
assert result == {}
- assert db.session.query(db.Comment).count() == 0
+ assert db.session.query(model.Comment).count() == 0
def test_deleting_someones_else_comment(
user_factory, comment_factory, context_factory):
- user1 = user_factory(rank=db.User.RANK_REGULAR)
- user2 = user_factory(rank=db.User.RANK_MODERATOR)
+ user1 = user_factory(rank=model.User.RANK_REGULAR)
+ user2 = user_factory(rank=model.User.RANK_MODERATOR)
comment = comment_factory(user=user1)
db.session.add(comment)
db.session.commit()
api.comment_api.delete_comment(
context_factory(params={'version': 1}, user=user2),
{'comment_id': comment.comment_id})
- assert db.session.query(db.Comment).count() == 0
+ assert db.session.query(model.Comment).count() == 0
def test_trying_to_delete_someones_else_comment_without_privileges(
user_factory, comment_factory, context_factory):
- user1 = user_factory(rank=db.User.RANK_REGULAR)
- user2 = user_factory(rank=db.User.RANK_REGULAR)
+ user1 = user_factory(rank=model.User.RANK_REGULAR)
+ user2 = user_factory(rank=model.User.RANK_REGULAR)
comment = comment_factory(user=user1)
db.session.add(comment)
db.session.commit()
@@ -49,7 +49,7 @@ def test_trying_to_delete_someones_else_comment_without_privileges(
api.comment_api.delete_comment(
context_factory(params={'version': 1}, user=user2),
{'comment_id': comment.comment_id})
- assert db.session.query(db.Comment).count() == 1
+ assert db.session.query(model.Comment).count() == 1
def test_trying_to_delete_non_existing(user_factory, context_factory):
@@ -57,5 +57,5 @@ def test_trying_to_delete_non_existing(user_factory, context_factory):
api.comment_api.delete_comment(
context_factory(
params={'version': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'comment_id': 1})
diff --git a/server/szurubooru/tests/api/test_comment_rating.py b/server/szurubooru/tests/api/test_comment_rating.py
index 981e0dd..aae5e24 100644
--- a/server/szurubooru/tests/api/test_comment_rating.py
+++ b/server/szurubooru/tests/api/test_comment_rating.py
@@ -1,17 +1,18 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import comments
@pytest.fixture(autouse=True)
def inject_config(config_injector):
- config_injector({'privileges': {'comments:score': db.User.RANK_REGULAR}})
+ config_injector(
+ {'privileges': {'comments:score': model.User.RANK_REGULAR}})
def test_simple_rating(
user_factory, comment_factory, context_factory, fake_datetime):
- user = user_factory(rank=db.User.RANK_REGULAR)
+ user = user_factory(rank=model.User.RANK_REGULAR)
comment = comment_factory(user=user)
db.session.add(comment)
db.session.commit()
@@ -22,14 +23,14 @@ def test_simple_rating(
context_factory(params={'score': 1}, user=user),
{'comment_id': comment.comment_id})
assert result == 'serialized comment'
- assert db.session.query(db.CommentScore).count() == 1
+ assert db.session.query(model.CommentScore).count() == 1
assert comment is not None
assert comment.score == 1
def test_updating_rating(
user_factory, comment_factory, context_factory, fake_datetime):
- user = user_factory(rank=db.User.RANK_REGULAR)
+ user = user_factory(rank=model.User.RANK_REGULAR)
comment = comment_factory(user=user)
db.session.add(comment)
db.session.commit()
@@ -42,14 +43,14 @@ def test_updating_rating(
api.comment_api.set_comment_score(
context_factory(params={'score': -1}, user=user),
{'comment_id': comment.comment_id})
- comment = db.session.query(db.Comment).one()
- assert db.session.query(db.CommentScore).count() == 1
+ comment = db.session.query(model.Comment).one()
+ assert db.session.query(model.CommentScore).count() == 1
assert comment.score == -1
def test_updating_rating_to_zero(
user_factory, comment_factory, context_factory, fake_datetime):
- user = user_factory(rank=db.User.RANK_REGULAR)
+ user = user_factory(rank=model.User.RANK_REGULAR)
comment = comment_factory(user=user)
db.session.add(comment)
db.session.commit()
@@ -62,14 +63,14 @@ def test_updating_rating_to_zero(
api.comment_api.set_comment_score(
context_factory(params={'score': 0}, user=user),
{'comment_id': comment.comment_id})
- comment = db.session.query(db.Comment).one()
- assert db.session.query(db.CommentScore).count() == 0
+ comment = db.session.query(model.Comment).one()
+ assert db.session.query(model.CommentScore).count() == 0
assert comment.score == 0
def test_deleting_rating(
user_factory, comment_factory, context_factory, fake_datetime):
- user = user_factory(rank=db.User.RANK_REGULAR)
+ user = user_factory(rank=model.User.RANK_REGULAR)
comment = comment_factory(user=user)
db.session.add(comment)
db.session.commit()
@@ -82,15 +83,15 @@ def test_deleting_rating(
api.comment_api.delete_comment_score(
context_factory(user=user),
{'comment_id': comment.comment_id})
- comment = db.session.query(db.Comment).one()
- assert db.session.query(db.CommentScore).count() == 0
+ comment = db.session.query(model.Comment).one()
+ assert db.session.query(model.CommentScore).count() == 0
assert comment.score == 0
def test_ratings_from_multiple_users(
user_factory, comment_factory, context_factory, fake_datetime):
- user1 = user_factory(rank=db.User.RANK_REGULAR)
- user2 = user_factory(rank=db.User.RANK_REGULAR)
+ user1 = user_factory(rank=model.User.RANK_REGULAR)
+ user2 = user_factory(rank=model.User.RANK_REGULAR)
comment = comment_factory()
db.session.add_all([user1, user2, comment])
db.session.commit()
@@ -103,8 +104,8 @@ def test_ratings_from_multiple_users(
api.comment_api.set_comment_score(
context_factory(params={'score': -1}, user=user2),
{'comment_id': comment.comment_id})
- comment = db.session.query(db.Comment).one()
- assert db.session.query(db.CommentScore).count() == 2
+ comment = db.session.query(model.Comment).one()
+ assert db.session.query(model.CommentScore).count() == 2
assert comment.score == 0
@@ -125,7 +126,7 @@ def test_trying_to_update_non_existing(user_factory, context_factory):
api.comment_api.set_comment_score(
context_factory(
params={'score': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'comment_id': 5})
@@ -138,5 +139,5 @@ def test_trying_to_rate_without_privileges(
api.comment_api.set_comment_score(
context_factory(
params={'score': 1},
- user=user_factory(rank=db.User.RANK_ANONYMOUS)),
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)),
{'comment_id': comment.comment_id})
diff --git a/server/szurubooru/tests/api/test_comment_retrieving.py b/server/szurubooru/tests/api/test_comment_retrieving.py
index 908e9eb..e0378fa 100644
--- a/server/szurubooru/tests/api/test_comment_retrieving.py
+++ b/server/szurubooru/tests/api/test_comment_retrieving.py
@@ -1,6 +1,6 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import comments
@@ -8,8 +8,8 @@ from szurubooru.func import comments
def inject_config(config_injector):
config_injector({
'privileges': {
- 'comments:list': db.User.RANK_REGULAR,
- 'comments:view': db.User.RANK_REGULAR,
+ 'comments:list': model.User.RANK_REGULAR,
+ 'comments:view': model.User.RANK_REGULAR,
},
})
@@ -24,7 +24,7 @@ def test_retrieving_multiple(user_factory, comment_factory, context_factory):
result = api.comment_api.get_comments(
context_factory(
params={'query': '', 'page': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
assert result == {
'query': '',
'page': 1,
@@ -40,7 +40,7 @@ def test_trying_to_retrieve_multiple_without_privileges(
api.comment_api.get_comments(
context_factory(
params={'query': '', 'page': 1},
- user=user_factory(rank=db.User.RANK_ANONYMOUS)))
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)))
def test_retrieving_single(user_factory, comment_factory, context_factory):
@@ -51,7 +51,7 @@ def test_retrieving_single(user_factory, comment_factory, context_factory):
comments.serialize_comment.return_value = 'serialized comment'
result = api.comment_api.get_comment(
context_factory(
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'comment_id': comment.comment_id})
assert result == 'serialized comment'
@@ -60,7 +60,7 @@ def test_trying_to_retrieve_single_non_existing(user_factory, context_factory):
with pytest.raises(comments.CommentNotFoundError):
api.comment_api.get_comment(
context_factory(
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'comment_id': 5})
@@ -68,5 +68,5 @@ def test_trying_to_retrieve_single_without_privileges(
user_factory, context_factory):
with pytest.raises(errors.AuthError):
api.comment_api.get_comment(
- context_factory(user=user_factory(rank=db.User.RANK_ANONYMOUS)),
+ context_factory(user=user_factory(rank=model.User.RANK_ANONYMOUS)),
{'comment_id': 5})
diff --git a/server/szurubooru/tests/api/test_comment_updating.py b/server/szurubooru/tests/api/test_comment_updating.py
index 5f3d12b..761b1ce 100644
--- a/server/szurubooru/tests/api/test_comment_updating.py
+++ b/server/szurubooru/tests/api/test_comment_updating.py
@@ -1,7 +1,7 @@
from datetime import datetime
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import comments
@@ -9,15 +9,15 @@ from szurubooru.func import comments
def inject_config(config_injector):
config_injector({
'privileges': {
- 'comments:edit:own': db.User.RANK_REGULAR,
- 'comments:edit:any': db.User.RANK_MODERATOR,
+ 'comments:edit:own': model.User.RANK_REGULAR,
+ 'comments:edit:any': model.User.RANK_MODERATOR,
},
})
def test_simple_updating(
user_factory, comment_factory, context_factory, fake_datetime):
- user = user_factory(rank=db.User.RANK_REGULAR)
+ user = user_factory(rank=model.User.RANK_REGULAR)
comment = comment_factory(user=user)
db.session.add(comment)
db.session.commit()
@@ -73,14 +73,14 @@ def test_trying_to_update_non_existing(user_factory, context_factory):
api.comment_api.update_comment(
context_factory(
params={'text': 'new text'},
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'comment_id': 5})
def test_trying_to_update_someones_comment_without_privileges(
user_factory, comment_factory, context_factory):
- user = user_factory(rank=db.User.RANK_REGULAR)
- user2 = user_factory(rank=db.User.RANK_REGULAR)
+ user = user_factory(rank=model.User.RANK_REGULAR)
+ user2 = user_factory(rank=model.User.RANK_REGULAR)
comment = comment_factory(user=user)
db.session.add(comment)
db.session.commit()
@@ -93,8 +93,8 @@ def test_trying_to_update_someones_comment_without_privileges(
def test_updating_someones_comment_with_privileges(
user_factory, comment_factory, context_factory):
- user = user_factory(rank=db.User.RANK_REGULAR)
- user2 = user_factory(rank=db.User.RANK_MODERATOR)
+ user = user_factory(rank=model.User.RANK_REGULAR)
+ user2 = user_factory(rank=model.User.RANK_MODERATOR)
comment = comment_factory(user=user)
db.session.add(comment)
db.session.commit()
diff --git a/server/szurubooru/tests/api/test_password_reset.py b/server/szurubooru/tests/api/test_password_reset.py
index 52b568d..e46dbbe 100644
--- a/server/szurubooru/tests/api/test_password_reset.py
+++ b/server/szurubooru/tests/api/test_password_reset.py
@@ -1,6 +1,6 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import auth, mailer
@@ -15,7 +15,7 @@ def inject_config(config_injector):
def test_reset_sending_email(context_factory, user_factory):
db.session.add(user_factory(
- name='u1', rank=db.User.RANK_REGULAR, email='user@example.com'))
+ name='u1', rank=model.User.RANK_REGULAR, email='user@example.com'))
db.session.flush()
for initiating_user in ['u1', 'user@example.com']:
with patch('szurubooru.func.mailer.send_mail'):
@@ -39,7 +39,7 @@ def test_trying_to_reset_non_existing(context_factory):
def test_trying_to_reset_without_email(context_factory, user_factory):
db.session.add(
- user_factory(name='u1', rank=db.User.RANK_REGULAR, email=None))
+ user_factory(name='u1', rank=model.User.RANK_REGULAR, email=None))
db.session.flush()
with pytest.raises(errors.ValidationError):
api.password_reset_api.start_password_reset(
@@ -48,7 +48,7 @@ def test_trying_to_reset_without_email(context_factory, user_factory):
def test_confirming_with_good_token(context_factory, user_factory):
user = user_factory(
- name='u1', rank=db.User.RANK_REGULAR, email='user@example.com')
+ name='u1', rank=model.User.RANK_REGULAR, email='user@example.com')
old_hash = user.password_hash
db.session.add(user)
db.session.flush()
@@ -68,7 +68,7 @@ def test_trying_to_confirm_non_existing(context_factory):
def test_trying_to_confirm_without_token(context_factory, user_factory):
db.session.add(user_factory(
- name='u1', rank=db.User.RANK_REGULAR, email='user@example.com'))
+ name='u1', rank=model.User.RANK_REGULAR, email='user@example.com'))
db.session.flush()
with pytest.raises(errors.ValidationError):
api.password_reset_api.finish_password_reset(
@@ -77,7 +77,7 @@ def test_trying_to_confirm_without_token(context_factory, user_factory):
def test_trying_to_confirm_with_bad_token(context_factory, user_factory):
db.session.add(user_factory(
- name='u1', rank=db.User.RANK_REGULAR, email='user@example.com'))
+ name='u1', rank=model.User.RANK_REGULAR, email='user@example.com'))
db.session.flush()
with pytest.raises(errors.ValidationError):
api.password_reset_api.finish_password_reset(
diff --git a/server/szurubooru/tests/api/test_post_creating.py b/server/szurubooru/tests/api/test_post_creating.py
index 9737a73..a653b3b 100644
--- a/server/szurubooru/tests/api/test_post_creating.py
+++ b/server/szurubooru/tests/api/test_post_creating.py
@@ -1,6 +1,6 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import posts, tags, snapshots, net
@@ -8,16 +8,16 @@ from szurubooru.func import posts, tags, snapshots, net
def inject_config(config_injector):
config_injector({
'privileges': {
- 'posts:create:anonymous': db.User.RANK_REGULAR,
- 'posts:create:identified': db.User.RANK_REGULAR,
- 'tags:create': db.User.RANK_REGULAR,
+ 'posts:create:anonymous': model.User.RANK_REGULAR,
+ 'posts:create:identified': model.User.RANK_REGULAR,
+ 'tags:create': model.User.RANK_REGULAR,
},
})
def test_creating_minimal_posts(
context_factory, post_factory, user_factory):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
post = post_factory()
db.session.add(post)
db.session.flush()
@@ -53,20 +53,20 @@ def test_creating_minimal_posts(
posts.update_post_thumbnail.assert_called_once_with(
post, 'post-thumbnail')
posts.update_post_safety.assert_called_once_with(post, 'safe')
- posts.update_post_source.assert_called_once_with(post, None)
+ posts.update_post_source.assert_called_once_with(post, '')
posts.update_post_relations.assert_called_once_with(post, [])
posts.update_post_notes.assert_called_once_with(post, [])
posts.update_post_flags.assert_called_once_with(post, [])
posts.update_post_thumbnail.assert_called_once_with(
post, 'post-thumbnail')
posts.serialize_post.assert_called_once_with(
- post, auth_user, options=None)
+ post, auth_user, options=[])
snapshots.create.assert_called_once_with(post, auth_user)
tags.export_to_json.assert_called_once_with()
def test_creating_full_posts(context_factory, post_factory, user_factory):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
post = post_factory()
db.session.add(post)
db.session.flush()
@@ -109,14 +109,14 @@ def test_creating_full_posts(context_factory, post_factory, user_factory):
posts.update_post_flags.assert_called_once_with(
post, ['flag1', 'flag2'])
posts.serialize_post.assert_called_once_with(
- post, auth_user, options=None)
+ post, auth_user, options=[])
snapshots.create.assert_called_once_with(post, auth_user)
tags.export_to_json.assert_called_once_with()
def test_anonymous_uploads(
config_injector, context_factory, post_factory, user_factory):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
post = post_factory()
db.session.add(post)
db.session.flush()
@@ -126,7 +126,7 @@ def test_anonymous_uploads(
patch('szurubooru.func.posts.create_post'), \
patch('szurubooru.func.posts.update_post_source'):
config_injector({
- 'privileges': {'posts:create:anonymous': db.User.RANK_REGULAR},
+ 'privileges': {'posts:create:anonymous': model.User.RANK_REGULAR},
})
posts.create_post.return_value = [post, []]
api.post_api.create_post(
@@ -146,7 +146,7 @@ def test_anonymous_uploads(
def test_creating_from_url_saves_source(
config_injector, context_factory, post_factory, user_factory):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
post = post_factory()
db.session.add(post)
db.session.flush()
@@ -157,7 +157,7 @@ def test_creating_from_url_saves_source(
patch('szurubooru.func.posts.create_post'), \
patch('szurubooru.func.posts.update_post_source'):
config_injector({
- 'privileges': {'posts:create:identified': db.User.RANK_REGULAR},
+ 'privileges': {'posts:create:identified': model.User.RANK_REGULAR},
})
net.download.return_value = b'content'
posts.create_post.return_value = [post, []]
@@ -177,7 +177,7 @@ def test_creating_from_url_saves_source(
def test_creating_from_url_with_source_specified(
config_injector, context_factory, post_factory, user_factory):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
post = post_factory()
db.session.add(post)
db.session.flush()
@@ -188,7 +188,7 @@ def test_creating_from_url_with_source_specified(
patch('szurubooru.func.posts.create_post'), \
patch('szurubooru.func.posts.update_post_source'):
config_injector({
- 'privileges': {'posts:create:identified': db.User.RANK_REGULAR},
+ 'privileges': {'posts:create:identified': model.User.RANK_REGULAR},
})
net.download.return_value = b'content'
posts.create_post.return_value = [post, []]
@@ -218,14 +218,14 @@ def test_trying_to_omit_mandatory_field(context_factory, user_factory, field):
context_factory(
params=params,
files={'content': '...'},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
@pytest.mark.parametrize(
'field', ['tags', 'relations', 'source', 'notes', 'flags'])
def test_omitting_optional_field(
field, context_factory, post_factory, user_factory):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
post = post_factory()
db.session.add(post)
db.session.flush()
@@ -268,10 +268,10 @@ def test_errors_not_spending_ids(
'post_height': 300,
},
'privileges': {
- 'posts:create:identified': db.User.RANK_REGULAR,
+ 'posts:create:identified': model.User.RANK_REGULAR,
},
})
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
# successful request
with patch('szurubooru.func.posts.serialize_post'), \
@@ -316,7 +316,7 @@ def test_trying_to_omit_content(context_factory, user_factory):
'safety': 'safe',
'tags': ['tag1', 'tag2'],
},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
def test_trying_to_create_post_without_privileges(
@@ -324,16 +324,16 @@ def test_trying_to_create_post_without_privileges(
with pytest.raises(errors.AuthError):
api.post_api.create_post(context_factory(
params='whatever',
- user=user_factory(rank=db.User.RANK_ANONYMOUS)))
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)))
def test_trying_to_create_tags_without_privileges(
config_injector, context_factory, user_factory):
config_injector({
'privileges': {
- 'posts:create:anonymous': db.User.RANK_REGULAR,
- 'posts:create:identified': db.User.RANK_REGULAR,
- 'tags:create': db.User.RANK_ADMINISTRATOR,
+ 'posts:create:anonymous': model.User.RANK_REGULAR,
+ 'posts:create:identified': model.User.RANK_REGULAR,
+ 'tags:create': model.User.RANK_ADMINISTRATOR,
},
})
with pytest.raises(errors.AuthError), \
@@ -349,4 +349,4 @@ def test_trying_to_create_tags_without_privileges(
files={
'content': posts.EMPTY_PIXEL,
},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
diff --git a/server/szurubooru/tests/api/test_post_deleting.py b/server/szurubooru/tests/api/test_post_deleting.py
index c4187ed..643b952 100644
--- a/server/szurubooru/tests/api/test_post_deleting.py
+++ b/server/szurubooru/tests/api/test_post_deleting.py
@@ -1,16 +1,16 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import posts, tags, snapshots
@pytest.fixture(autouse=True)
def inject_config(config_injector):
- config_injector({'privileges': {'posts:delete': db.User.RANK_REGULAR}})
+ config_injector({'privileges': {'posts:delete': model.User.RANK_REGULAR}})
def test_deleting(user_factory, post_factory, context_factory):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
post = post_factory(id=1)
db.session.add(post)
db.session.flush()
@@ -20,7 +20,7 @@ def test_deleting(user_factory, post_factory, context_factory):
context_factory(params={'version': 1}, user=auth_user),
{'post_id': 1})
assert result == {}
- assert db.session.query(db.Post).count() == 0
+ assert db.session.query(model.Post).count() == 0
snapshots.delete.assert_called_once_with(post, auth_user)
tags.export_to_json.assert_called_once_with()
@@ -28,7 +28,7 @@ def test_deleting(user_factory, post_factory, context_factory):
def test_trying_to_delete_non_existing(user_factory, context_factory):
with pytest.raises(posts.PostNotFoundError):
api.post_api.delete_post(
- context_factory(user=user_factory(rank=db.User.RANK_REGULAR)),
+ context_factory(user=user_factory(rank=model.User.RANK_REGULAR)),
{'post_id': 999})
@@ -38,6 +38,6 @@ def test_trying_to_delete_without_privileges(
db.session.commit()
with pytest.raises(errors.AuthError):
api.post_api.delete_post(
- context_factory(user=user_factory(rank=db.User.RANK_ANONYMOUS)),
+ context_factory(user=user_factory(rank=model.User.RANK_ANONYMOUS)),
{'post_id': 1})
- assert db.session.query(db.Post).count() == 1
+ assert db.session.query(model.Post).count() == 1
diff --git a/server/szurubooru/tests/api/test_post_favoriting.py b/server/szurubooru/tests/api/test_post_favoriting.py
index d78d199..ce91a02 100644
--- a/server/szurubooru/tests/api/test_post_favoriting.py
+++ b/server/szurubooru/tests/api/test_post_favoriting.py
@@ -1,13 +1,14 @@
from datetime import datetime
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import posts
@pytest.fixture(autouse=True)
def inject_config(config_injector):
- config_injector({'privileges': {'posts:favorite': db.User.RANK_REGULAR}})
+ config_injector(
+ {'privileges': {'posts:favorite': model.User.RANK_REGULAR}})
def test_adding_to_favorites(
@@ -23,8 +24,8 @@ def test_adding_to_favorites(
context_factory(user=user_factory()),
{'post_id': post.post_id})
assert result == 'serialized post'
- post = db.session.query(db.Post).one()
- assert db.session.query(db.PostFavorite).count() == 1
+ post = db.session.query(model.Post).one()
+ assert db.session.query(model.PostFavorite).count() == 1
assert post is not None
assert post.favorite_count == 1
assert post.score == 1
@@ -47,9 +48,9 @@ def test_removing_from_favorites(
api.post_api.delete_post_from_favorites(
context_factory(user=user),
{'post_id': post.post_id})
- post = db.session.query(db.Post).one()
+ post = db.session.query(model.Post).one()
assert post.score == 1
- assert db.session.query(db.PostFavorite).count() == 0
+ assert db.session.query(model.PostFavorite).count() == 0
assert post.favorite_count == 0
@@ -68,8 +69,8 @@ def test_favoriting_twice(
api.post_api.add_post_to_favorites(
context_factory(user=user),
{'post_id': post.post_id})
- post = db.session.query(db.Post).one()
- assert db.session.query(db.PostFavorite).count() == 1
+ post = db.session.query(model.Post).one()
+ assert db.session.query(model.PostFavorite).count() == 1
assert post.favorite_count == 1
@@ -92,8 +93,8 @@ def test_removing_twice(
api.post_api.delete_post_from_favorites(
context_factory(user=user),
{'post_id': post.post_id})
- post = db.session.query(db.Post).one()
- assert db.session.query(db.PostFavorite).count() == 0
+ post = db.session.query(model.Post).one()
+ assert db.session.query(model.PostFavorite).count() == 0
assert post.favorite_count == 0
@@ -113,8 +114,8 @@ def test_favorites_from_multiple_users(
api.post_api.add_post_to_favorites(
context_factory(user=user2),
{'post_id': post.post_id})
- post = db.session.query(db.Post).one()
- assert db.session.query(db.PostFavorite).count() == 2
+ post = db.session.query(model.Post).one()
+ assert db.session.query(model.PostFavorite).count() == 2
assert post.favorite_count == 2
assert post.last_favorite_time == datetime(1997, 12, 2)
@@ -133,5 +134,5 @@ def test_trying_to_rate_without_privileges(
db.session.commit()
with pytest.raises(errors.AuthError):
api.post_api.add_post_to_favorites(
- context_factory(user=user_factory(rank=db.User.RANK_ANONYMOUS)),
+ context_factory(user=user_factory(rank=model.User.RANK_ANONYMOUS)),
{'post_id': post.post_id})
diff --git a/server/szurubooru/tests/api/test_post_featuring.py b/server/szurubooru/tests/api/test_post_featuring.py
index a0a82c7..88e4e00 100644
--- a/server/szurubooru/tests/api/test_post_featuring.py
+++ b/server/szurubooru/tests/api/test_post_featuring.py
@@ -1,6 +1,6 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import posts, snapshots
@@ -8,14 +8,14 @@ from szurubooru.func import posts, snapshots
def inject_config(config_injector):
config_injector({
'privileges': {
- 'posts:feature': db.User.RANK_REGULAR,
- 'posts:view': db.User.RANK_REGULAR,
+ 'posts:feature': model.User.RANK_REGULAR,
+ 'posts:view': model.User.RANK_REGULAR,
},
})
def test_featuring(user_factory, post_factory, context_factory):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
post = post_factory(id=1)
db.session.add(post)
db.session.flush()
@@ -31,7 +31,7 @@ def test_featuring(user_factory, post_factory, context_factory):
assert posts.get_post_by_id(1).is_featured
result = api.post_api.get_featured_post(
context_factory(
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
assert result == 'serialized post'
snapshots.modify.assert_called_once_with(post, auth_user)
@@ -40,7 +40,7 @@ def test_trying_to_omit_required_parameter(user_factory, context_factory):
with pytest.raises(errors.MissingRequiredParameterError):
api.post_api.set_featured_post(
context_factory(
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
def test_trying_to_feature_the_same_post_twice(
@@ -51,12 +51,12 @@ def test_trying_to_feature_the_same_post_twice(
api.post_api.set_featured_post(
context_factory(
params={'id': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
with pytest.raises(posts.PostAlreadyFeaturedError):
api.post_api.set_featured_post(
context_factory(
params={'id': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
def test_featuring_one_post_after_another(
@@ -72,12 +72,12 @@ def test_featuring_one_post_after_another(
api.post_api.set_featured_post(
context_factory(
params={'id': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
with fake_datetime('1998'):
api.post_api.set_featured_post(
context_factory(
params={'id': 2},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
assert posts.try_get_featured_post() is not None
assert posts.try_get_featured_post().post_id == 2
assert not posts.get_post_by_id(1).is_featured
@@ -89,7 +89,7 @@ def test_trying_to_feature_non_existing(user_factory, context_factory):
api.post_api.set_featured_post(
context_factory(
params={'id': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
def test_trying_to_feature_without_privileges(user_factory, context_factory):
@@ -97,10 +97,10 @@ def test_trying_to_feature_without_privileges(user_factory, context_factory):
api.post_api.set_featured_post(
context_factory(
params={'id': 1},
- user=user_factory(rank=db.User.RANK_ANONYMOUS)))
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)))
def test_getting_featured_post_without_privileges_to_view(
user_factory, context_factory):
api.post_api.get_featured_post(
- context_factory(user=user_factory(rank=db.User.RANK_ANONYMOUS)))
+ context_factory(user=user_factory(rank=model.User.RANK_ANONYMOUS)))
diff --git a/server/szurubooru/tests/api/test_post_merging.py b/server/szurubooru/tests/api/test_post_merging.py
index e654090..eb8464f 100644
--- a/server/szurubooru/tests/api/test_post_merging.py
+++ b/server/szurubooru/tests/api/test_post_merging.py
@@ -1,16 +1,16 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import posts, snapshots
@pytest.fixture(autouse=True)
def inject_config(config_injector):
- config_injector({'privileges': {'posts:merge': db.User.RANK_REGULAR}})
+ config_injector({'privileges': {'posts:merge': model.User.RANK_REGULAR}})
def test_merging(user_factory, context_factory, post_factory):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
source_post = post_factory()
target_post = post_factory()
db.session.add_all([source_post, target_post])
@@ -25,6 +25,7 @@ def test_merging(user_factory, context_factory, post_factory):
'mergeToVersion': 1,
'remove': source_post.post_id,
'mergeTo': target_post.post_id,
+ 'replaceContent': False,
},
user=auth_user))
posts.merge_posts.called_once_with(source_post, target_post)
@@ -45,13 +46,14 @@ def test_trying_to_omit_mandatory_field(
'mergeToVersion': 1,
'remove': source_post.post_id,
'mergeTo': target_post.post_id,
+ 'replaceContent': False,
}
del params[field]
with pytest.raises(errors.ValidationError):
api.post_api.merge_posts(
context_factory(
params=params,
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
def test_trying_to_merge_non_existing(
@@ -63,12 +65,12 @@ def test_trying_to_merge_non_existing(
api.post_api.merge_posts(
context_factory(
params={'remove': post.post_id, 'mergeTo': 999},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
with pytest.raises(posts.PostNotFoundError):
api.post_api.merge_posts(
context_factory(
params={'remove': 999, 'mergeTo': post.post_id},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
def test_trying_to_merge_without_privileges(
@@ -85,5 +87,6 @@ def test_trying_to_merge_without_privileges(
'mergeToVersion': 1,
'remove': source_post.post_id,
'mergeTo': target_post.post_id,
+ 'replaceContent': False,
},
- user=user_factory(rank=db.User.RANK_ANONYMOUS)))
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)))
diff --git a/server/szurubooru/tests/api/test_post_rating.py b/server/szurubooru/tests/api/test_post_rating.py
index 18e823e..0fca2f5 100644
--- a/server/szurubooru/tests/api/test_post_rating.py
+++ b/server/szurubooru/tests/api/test_post_rating.py
@@ -1,12 +1,12 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import posts
@pytest.fixture(autouse=True)
def inject_config(config_injector):
- config_injector({'privileges': {'posts:score': db.User.RANK_REGULAR}})
+ config_injector({'privileges': {'posts:score': model.User.RANK_REGULAR}})
def test_simple_rating(
@@ -22,8 +22,8 @@ def test_simple_rating(
params={'score': 1}, user=user_factory()),
{'post_id': post.post_id})
assert result == 'serialized post'
- post = db.session.query(db.Post).one()
- assert db.session.query(db.PostScore).count() == 1
+ post = db.session.query(model.Post).one()
+ assert db.session.query(model.PostScore).count() == 1
assert post is not None
assert post.score == 1
@@ -43,8 +43,8 @@ def test_updating_rating(
api.post_api.set_post_score(
context_factory(params={'score': -1}, user=user),
{'post_id': post.post_id})
- post = db.session.query(db.Post).one()
- assert db.session.query(db.PostScore).count() == 1
+ post = db.session.query(model.Post).one()
+ assert db.session.query(model.PostScore).count() == 1
assert post.score == -1
@@ -63,8 +63,8 @@ def test_updating_rating_to_zero(
api.post_api.set_post_score(
context_factory(params={'score': 0}, user=user),
{'post_id': post.post_id})
- post = db.session.query(db.Post).one()
- assert db.session.query(db.PostScore).count() == 0
+ post = db.session.query(model.Post).one()
+ assert db.session.query(model.PostScore).count() == 0
assert post.score == 0
@@ -83,8 +83,8 @@ def test_deleting_rating(
api.post_api.delete_post_score(
context_factory(user=user),
{'post_id': post.post_id})
- post = db.session.query(db.Post).one()
- assert db.session.query(db.PostScore).count() == 0
+ post = db.session.query(model.Post).one()
+ assert db.session.query(model.PostScore).count() == 0
assert post.score == 0
@@ -104,8 +104,8 @@ def test_ratings_from_multiple_users(
api.post_api.set_post_score(
context_factory(params={'score': -1}, user=user2),
{'post_id': post.post_id})
- post = db.session.query(db.Post).one()
- assert db.session.query(db.PostScore).count() == 2
+ post = db.session.query(model.Post).one()
+ assert db.session.query(model.PostScore).count() == 2
assert post.score == 0
@@ -136,5 +136,5 @@ def test_trying_to_rate_without_privileges(
api.post_api.set_post_score(
context_factory(
params={'score': 1},
- user=user_factory(rank=db.User.RANK_ANONYMOUS)),
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)),
{'post_id': post.post_id})
diff --git a/server/szurubooru/tests/api/test_post_retrieving.py b/server/szurubooru/tests/api/test_post_retrieving.py
index a02c7bc..9d9db72 100644
--- a/server/szurubooru/tests/api/test_post_retrieving.py
+++ b/server/szurubooru/tests/api/test_post_retrieving.py
@@ -1,7 +1,7 @@
from datetime import datetime
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import posts
@@ -9,8 +9,8 @@ from szurubooru.func import posts
def inject_config(config_injector):
config_injector({
'privileges': {
- 'posts:list': db.User.RANK_REGULAR,
- 'posts:view': db.User.RANK_REGULAR,
+ 'posts:list': model.User.RANK_REGULAR,
+ 'posts:view': model.User.RANK_REGULAR,
},
})
@@ -25,7 +25,7 @@ def test_retrieving_multiple(user_factory, post_factory, context_factory):
result = api.post_api.get_posts(
context_factory(
params={'query': '', 'page': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
assert result == {
'query': '',
'page': 1,
@@ -36,10 +36,10 @@ def test_retrieving_multiple(user_factory, post_factory, context_factory):
def test_using_special_tokens(user_factory, post_factory, context_factory):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
post1 = post_factory(id=1)
post2 = post_factory(id=2)
- post1.favorited_by = [db.PostFavorite(
+ post1.favorited_by = [model.PostFavorite(
user=auth_user, time=datetime.utcnow())]
db.session.add_all([post1, post2, auth_user])
db.session.flush()
@@ -68,7 +68,7 @@ def test_trying_to_use_special_tokens_without_logging_in(
api.post_api.get_posts(
context_factory(
params={'query': 'special:fav', 'page': 1},
- user=user_factory(rank=db.User.RANK_ANONYMOUS)))
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)))
def test_trying_to_retrieve_multiple_without_privileges(
@@ -77,7 +77,7 @@ def test_trying_to_retrieve_multiple_without_privileges(
api.post_api.get_posts(
context_factory(
params={'query': '', 'page': 1},
- user=user_factory(rank=db.User.RANK_ANONYMOUS)))
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)))
def test_retrieving_single(user_factory, post_factory, context_factory):
@@ -86,7 +86,7 @@ def test_retrieving_single(user_factory, post_factory, context_factory):
with patch('szurubooru.func.posts.serialize_post'):
posts.serialize_post.return_value = 'serialized post'
result = api.post_api.get_post(
- context_factory(user=user_factory(rank=db.User.RANK_REGULAR)),
+ context_factory(user=user_factory(rank=model.User.RANK_REGULAR)),
{'post_id': 1})
assert result == 'serialized post'
@@ -94,7 +94,7 @@ def test_retrieving_single(user_factory, post_factory, context_factory):
def test_trying_to_retrieve_single_non_existing(user_factory, context_factory):
with pytest.raises(posts.PostNotFoundError):
api.post_api.get_post(
- context_factory(user=user_factory(rank=db.User.RANK_REGULAR)),
+ context_factory(user=user_factory(rank=model.User.RANK_REGULAR)),
{'post_id': 999})
@@ -102,5 +102,5 @@ def test_trying_to_retrieve_single_without_privileges(
user_factory, context_factory):
with pytest.raises(errors.AuthError):
api.post_api.get_post(
- context_factory(user=user_factory(rank=db.User.RANK_ANONYMOUS)),
+ context_factory(user=user_factory(rank=model.User.RANK_ANONYMOUS)),
{'post_id': 999})
diff --git a/server/szurubooru/tests/api/test_post_updating.py b/server/szurubooru/tests/api/test_post_updating.py
index 790e835..d364930 100644
--- a/server/szurubooru/tests/api/test_post_updating.py
+++ b/server/szurubooru/tests/api/test_post_updating.py
@@ -1,7 +1,7 @@
from datetime import datetime
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import posts, tags, snapshots, net
@@ -9,22 +9,22 @@ from szurubooru.func import posts, tags, snapshots, net
def inject_config(config_injector):
config_injector({
'privileges': {
- 'posts:edit:tags': db.User.RANK_REGULAR,
- 'posts:edit:content': db.User.RANK_REGULAR,
- 'posts:edit:safety': db.User.RANK_REGULAR,
- 'posts:edit:source': db.User.RANK_REGULAR,
- 'posts:edit:relations': db.User.RANK_REGULAR,
- 'posts:edit:notes': db.User.RANK_REGULAR,
- 'posts:edit:flags': db.User.RANK_REGULAR,
- 'posts:edit:thumbnail': db.User.RANK_REGULAR,
- 'tags:create': db.User.RANK_MODERATOR,
+ 'posts:edit:tags': model.User.RANK_REGULAR,
+ 'posts:edit:content': model.User.RANK_REGULAR,
+ 'posts:edit:safety': model.User.RANK_REGULAR,
+ 'posts:edit:source': model.User.RANK_REGULAR,
+ 'posts:edit:relations': model.User.RANK_REGULAR,
+ 'posts:edit:notes': model.User.RANK_REGULAR,
+ 'posts:edit:flags': model.User.RANK_REGULAR,
+ 'posts:edit:thumbnail': model.User.RANK_REGULAR,
+ 'tags:create': model.User.RANK_MODERATOR,
},
})
def test_post_updating(
context_factory, post_factory, user_factory, fake_datetime):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
post = post_factory()
db.session.add(post)
db.session.flush()
@@ -76,7 +76,7 @@ def test_post_updating(
posts.update_post_flags.assert_called_once_with(
post, ['flag1', 'flag2'])
posts.serialize_post.assert_called_once_with(
- post, auth_user, options=None)
+ post, auth_user, options=[])
snapshots.modify.assert_called_once_with(post, auth_user)
tags.export_to_json.assert_called_once_with()
assert post.last_edit_time == datetime(1997, 1, 1)
@@ -97,7 +97,7 @@ def test_uploading_from_url_saves_source(
api.post_api.update_post(
context_factory(
params={'contentUrl': 'example.com', 'version': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'post_id': post.post_id})
net.download.assert_called_once_with('example.com')
posts.update_post_content.assert_called_once_with(post, b'content')
@@ -122,7 +122,7 @@ def test_uploading_from_url_with_source_specified(
'contentUrl': 'example.com',
'source': 'example2.com',
'version': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'post_id': post.post_id})
net.download.assert_called_once_with('example.com')
posts.update_post_content.assert_called_once_with(post, b'content')
@@ -134,7 +134,7 @@ def test_trying_to_update_non_existing(context_factory, user_factory):
api.post_api.update_post(
context_factory(
params='whatever',
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'post_id': 1})
@@ -158,7 +158,7 @@ def test_trying_to_update_field_without_privileges(
context_factory(
params={**params, **{'version': 1}},
files=files,
- user=user_factory(rank=db.User.RANK_ANONYMOUS)),
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)),
{'post_id': post.post_id})
@@ -173,5 +173,5 @@ def test_trying_to_create_tags_without_privileges(
api.post_api.update_post(
context_factory(
params={'tags': ['tag1', 'tag2'], 'version': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'post_id': post.post_id})
diff --git a/server/szurubooru/tests/api/test_snapshot_retrieving.py b/server/szurubooru/tests/api/test_snapshot_retrieving.py
index 73b6f06..facbcd8 100644
--- a/server/szurubooru/tests/api/test_snapshot_retrieving.py
+++ b/server/szurubooru/tests/api/test_snapshot_retrieving.py
@@ -1,10 +1,10 @@
from datetime import datetime
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
def snapshot_factory():
- snapshot = db.Snapshot()
+ snapshot = model.Snapshot()
snapshot.creation_time = datetime(1999, 1, 1)
snapshot.resource_type = 'dummy'
snapshot.resource_pkey = 1
@@ -17,7 +17,7 @@ def snapshot_factory():
@pytest.fixture(autouse=True)
def inject_config(config_injector):
config_injector({
- 'privileges': {'snapshots:list': db.User.RANK_REGULAR},
+ 'privileges': {'snapshots:list': model.User.RANK_REGULAR},
})
@@ -29,7 +29,7 @@ def test_retrieving_multiple(user_factory, context_factory):
result = api.snapshot_api.get_snapshots(
context_factory(
params={'query': '', 'page': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
assert result['query'] == ''
assert result['page'] == 1
assert result['pageSize'] == 100
@@ -43,4 +43,4 @@ def test_trying_to_retrieve_multiple_without_privileges(
api.snapshot_api.get_snapshots(
context_factory(
params={'query': '', 'page': 1},
- user=user_factory(rank=db.User.RANK_ANONYMOUS)))
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)))
diff --git a/server/szurubooru/tests/api/test_tag_category_creating.py b/server/szurubooru/tests/api/test_tag_category_creating.py
index 96afc39..fbd8b1b 100644
--- a/server/szurubooru/tests/api/test_tag_category_creating.py
+++ b/server/szurubooru/tests/api/test_tag_category_creating.py
@@ -1,6 +1,6 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import tag_categories, tags, snapshots
@@ -11,13 +11,13 @@ def _update_category_name(category, name):
@pytest.fixture(autouse=True)
def inject_config(config_injector):
config_injector({
- 'privileges': {'tag_categories:create': db.User.RANK_REGULAR},
+ 'privileges': {'tag_categories:create': model.User.RANK_REGULAR},
})
def test_creating_category(
tag_category_factory, user_factory, context_factory):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
category = tag_category_factory(name='meta')
db.session.add(category)
@@ -49,7 +49,7 @@ def test_trying_to_omit_mandatory_field(user_factory, context_factory, field):
api.tag_category_api.create_tag_category(
context_factory(
params=params,
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
def test_trying_to_create_without_privileges(user_factory, context_factory):
@@ -57,4 +57,4 @@ def test_trying_to_create_without_privileges(user_factory, context_factory):
api.tag_category_api.create_tag_category(
context_factory(
params={'name': 'meta', 'color': 'black'},
- user=user_factory(rank=db.User.RANK_ANONYMOUS)))
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)))
diff --git a/server/szurubooru/tests/api/test_tag_category_deleting.py b/server/szurubooru/tests/api/test_tag_category_deleting.py
index 1f1cde4..1fc8643 100644
--- a/server/szurubooru/tests/api/test_tag_category_deleting.py
+++ b/server/szurubooru/tests/api/test_tag_category_deleting.py
@@ -1,18 +1,18 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import tag_categories, tags, snapshots
@pytest.fixture(autouse=True)
def inject_config(config_injector):
config_injector({
- 'privileges': {'tag_categories:delete': db.User.RANK_REGULAR},
+ 'privileges': {'tag_categories:delete': model.User.RANK_REGULAR},
})
def test_deleting(user_factory, tag_category_factory, context_factory):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
category = tag_category_factory(name='category')
db.session.add(tag_category_factory(name='root'))
db.session.add(category)
@@ -23,8 +23,8 @@ def test_deleting(user_factory, tag_category_factory, context_factory):
context_factory(params={'version': 1}, user=auth_user),
{'category_name': 'category'})
assert result == {}
- assert db.session.query(db.TagCategory).count() == 1
- assert db.session.query(db.TagCategory).one().name == 'root'
+ assert db.session.query(model.TagCategory).count() == 1
+ assert db.session.query(model.TagCategory).one().name == 'root'
snapshots.delete.assert_called_once_with(category, auth_user)
tags.export_to_json.assert_called_once_with()
@@ -41,9 +41,9 @@ def test_trying_to_delete_used(
api.tag_category_api.delete_tag_category(
context_factory(
params={'version': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'category_name': 'category'})
- assert db.session.query(db.TagCategory).count() == 1
+ assert db.session.query(model.TagCategory).count() == 1
def test_trying_to_delete_last(
@@ -54,14 +54,14 @@ def test_trying_to_delete_last(
api.tag_category_api.delete_tag_category(
context_factory(
params={'version': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'category_name': 'root'})
def test_trying_to_delete_non_existing(user_factory, context_factory):
with pytest.raises(tag_categories.TagCategoryNotFoundError):
api.tag_category_api.delete_tag_category(
- context_factory(user=user_factory(rank=db.User.RANK_REGULAR)),
+ context_factory(user=user_factory(rank=model.User.RANK_REGULAR)),
{'category_name': 'bad'})
@@ -73,6 +73,6 @@ def test_trying_to_delete_without_privileges(
api.tag_category_api.delete_tag_category(
context_factory(
params={'version': 1},
- user=user_factory(rank=db.User.RANK_ANONYMOUS)),
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)),
{'category_name': 'category'})
- assert db.session.query(db.TagCategory).count() == 1
+ assert db.session.query(model.TagCategory).count() == 1
diff --git a/server/szurubooru/tests/api/test_tag_category_retrieving.py b/server/szurubooru/tests/api/test_tag_category_retrieving.py
index 4f6610b..0b98d74 100644
--- a/server/szurubooru/tests/api/test_tag_category_retrieving.py
+++ b/server/szurubooru/tests/api/test_tag_category_retrieving.py
@@ -1,5 +1,5 @@
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import tag_categories
@@ -7,8 +7,8 @@ from szurubooru.func import tag_categories
def inject_config(config_injector):
config_injector({
'privileges': {
- 'tag_categories:list': db.User.RANK_REGULAR,
- 'tag_categories:view': db.User.RANK_REGULAR,
+ 'tag_categories:list': model.User.RANK_REGULAR,
+ 'tag_categories:view': model.User.RANK_REGULAR,
},
})
@@ -21,7 +21,7 @@ def test_retrieving_multiple(
])
db.session.flush()
result = api.tag_category_api.get_tag_categories(
- context_factory(user=user_factory(rank=db.User.RANK_REGULAR)))
+ context_factory(user=user_factory(rank=model.User.RANK_REGULAR)))
assert [cat['name'] for cat in result['results']] == ['c1', 'c2']
@@ -30,7 +30,7 @@ def test_retrieving_single(
db.session.add(tag_category_factory(name='cat'))
db.session.flush()
result = api.tag_category_api.get_tag_category(
- context_factory(user=user_factory(rank=db.User.RANK_REGULAR)),
+ context_factory(user=user_factory(rank=model.User.RANK_REGULAR)),
{'category_name': 'cat'})
assert result == {
'name': 'cat',
@@ -44,7 +44,7 @@ def test_retrieving_single(
def test_trying_to_retrieve_single_non_existing(user_factory, context_factory):
with pytest.raises(tag_categories.TagCategoryNotFoundError):
api.tag_category_api.get_tag_category(
- context_factory(user=user_factory(rank=db.User.RANK_REGULAR)),
+ context_factory(user=user_factory(rank=model.User.RANK_REGULAR)),
{'category_name': '-'})
@@ -52,5 +52,5 @@ def test_trying_to_retrieve_single_without_privileges(
user_factory, context_factory):
with pytest.raises(errors.AuthError):
api.tag_category_api.get_tag_category(
- context_factory(user=user_factory(rank=db.User.RANK_ANONYMOUS)),
+ context_factory(user=user_factory(rank=model.User.RANK_ANONYMOUS)),
{'category_name': '-'})
diff --git a/server/szurubooru/tests/api/test_tag_category_updating.py b/server/szurubooru/tests/api/test_tag_category_updating.py
index 9dd0f6b..d406dd1 100644
--- a/server/szurubooru/tests/api/test_tag_category_updating.py
+++ b/server/szurubooru/tests/api/test_tag_category_updating.py
@@ -1,6 +1,6 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import tag_categories, tags, snapshots
@@ -12,15 +12,15 @@ def _update_category_name(category, name):
def inject_config(config_injector):
config_injector({
'privileges': {
- 'tag_categories:edit:name': db.User.RANK_REGULAR,
- 'tag_categories:edit:color': db.User.RANK_REGULAR,
- 'tag_categories:set_default': db.User.RANK_REGULAR,
+ 'tag_categories:edit:name': model.User.RANK_REGULAR,
+ 'tag_categories:edit:color': model.User.RANK_REGULAR,
+ 'tag_categories:set_default': model.User.RANK_REGULAR,
},
})
def test_simple_updating(user_factory, tag_category_factory, context_factory):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
category = tag_category_factory(name='name', color='black')
db.session.add(category)
db.session.flush()
@@ -61,7 +61,7 @@ def test_omitting_optional_field(
api.tag_category_api.update_tag_category(
context_factory(
params={**params, **{'version': 1}},
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'category_name': 'name'})
@@ -70,7 +70,7 @@ def test_trying_to_update_non_existing(user_factory, context_factory):
api.tag_category_api.update_tag_category(
context_factory(
params={'name': ['dummy']},
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'category_name': 'bad'})
@@ -86,7 +86,7 @@ def test_trying_to_update_without_privileges(
api.tag_category_api.update_tag_category(
context_factory(
params={**params, **{'version': 1}},
- user=user_factory(rank=db.User.RANK_ANONYMOUS)),
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)),
{'category_name': 'dummy'})
@@ -106,7 +106,7 @@ def test_set_as_default(user_factory, tag_category_factory, context_factory):
'color': 'white',
'version': 1,
},
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'category_name': 'name'})
assert result == 'serialized category'
tag_categories.set_default_category.assert_called_once_with(category)
diff --git a/server/szurubooru/tests/api/test_tag_creating.py b/server/szurubooru/tests/api/test_tag_creating.py
index dc05628..771b9f6 100644
--- a/server/szurubooru/tests/api/test_tag_creating.py
+++ b/server/szurubooru/tests/api/test_tag_creating.py
@@ -1,16 +1,16 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import tags, snapshots
@pytest.fixture(autouse=True)
def inject_config(config_injector):
- config_injector({'privileges': {'tags:create': db.User.RANK_REGULAR}})
+ config_injector({'privileges': {'tags:create': model.User.RANK_REGULAR}})
def test_creating_simple_tags(tag_factory, user_factory, context_factory):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
tag = tag_factory()
with patch('szurubooru.func.tags.create_tag'), \
patch('szurubooru.func.tags.get_or_create_tags_by_names'), \
@@ -50,7 +50,7 @@ def test_trying_to_omit_mandatory_field(user_factory, context_factory, field):
api.tag_api.create_tag(
context_factory(
params=params,
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
@pytest.mark.parametrize('field', ['implications', 'suggestions'])
@@ -70,7 +70,7 @@ def test_omitting_optional_field(
api.tag_api.create_tag(
context_factory(
params=params,
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
def test_trying_to_create_tag_without_privileges(
@@ -84,4 +84,4 @@ def test_trying_to_create_tag_without_privileges(
'suggestions': ['tag'],
'implications': [],
},
- user=user_factory(rank=db.User.RANK_ANONYMOUS)))
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)))
diff --git a/server/szurubooru/tests/api/test_tag_deleting.py b/server/szurubooru/tests/api/test_tag_deleting.py
index a657b02..fbd35e1 100644
--- a/server/szurubooru/tests/api/test_tag_deleting.py
+++ b/server/szurubooru/tests/api/test_tag_deleting.py
@@ -1,16 +1,16 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import tags, snapshots
@pytest.fixture(autouse=True)
def inject_config(config_injector):
- config_injector({'privileges': {'tags:delete': db.User.RANK_REGULAR}})
+ config_injector({'privileges': {'tags:delete': model.User.RANK_REGULAR}})
def test_deleting(user_factory, tag_factory, context_factory):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
tag = tag_factory(names=['tag'])
db.session.add(tag)
db.session.commit()
@@ -20,7 +20,7 @@ def test_deleting(user_factory, tag_factory, context_factory):
context_factory(params={'version': 1}, user=auth_user),
{'tag_name': 'tag'})
assert result == {}
- assert db.session.query(db.Tag).count() == 0
+ assert db.session.query(model.Tag).count() == 0
snapshots.delete.assert_called_once_with(tag, auth_user)
tags.export_to_json.assert_called_once_with()
@@ -36,17 +36,17 @@ def test_deleting_used(
api.tag_api.delete_tag(
context_factory(
params={'version': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'tag_name': 'tag'})
db.session.refresh(post)
- assert db.session.query(db.Tag).count() == 0
+ assert db.session.query(model.Tag).count() == 0
assert post.tags == []
def test_trying_to_delete_non_existing(user_factory, context_factory):
with pytest.raises(tags.TagNotFoundError):
api.tag_api.delete_tag(
- context_factory(user=user_factory(rank=db.User.RANK_REGULAR)),
+ context_factory(user=user_factory(rank=model.User.RANK_REGULAR)),
{'tag_name': 'bad'})
@@ -58,6 +58,6 @@ def test_trying_to_delete_without_privileges(
api.tag_api.delete_tag(
context_factory(
params={'version': 1},
- user=user_factory(rank=db.User.RANK_ANONYMOUS)),
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)),
{'tag_name': 'tag'})
- assert db.session.query(db.Tag).count() == 1
+ assert db.session.query(model.Tag).count() == 1
diff --git a/server/szurubooru/tests/api/test_tag_merging.py b/server/szurubooru/tests/api/test_tag_merging.py
index a448c9c..484fbfa 100644
--- a/server/szurubooru/tests/api/test_tag_merging.py
+++ b/server/szurubooru/tests/api/test_tag_merging.py
@@ -1,16 +1,16 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import tags, snapshots
@pytest.fixture(autouse=True)
def inject_config(config_injector):
- config_injector({'privileges': {'tags:merge': db.User.RANK_REGULAR}})
+ config_injector({'privileges': {'tags:merge': model.User.RANK_REGULAR}})
def test_merging(user_factory, tag_factory, context_factory, post_factory):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
source_tag = tag_factory(names=['source'])
target_tag = tag_factory(names=['target'])
db.session.add_all([source_tag, target_tag])
@@ -62,7 +62,7 @@ def test_trying_to_omit_mandatory_field(
api.tag_api.merge_tags(
context_factory(
params=params,
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
def test_trying_to_merge_non_existing(
@@ -73,12 +73,12 @@ def test_trying_to_merge_non_existing(
api.tag_api.merge_tags(
context_factory(
params={'remove': 'good', 'mergeTo': 'bad'},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
with pytest.raises(tags.TagNotFoundError):
api.tag_api.merge_tags(
context_factory(
params={'remove': 'bad', 'mergeTo': 'good'},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
def test_trying_to_merge_without_privileges(
@@ -97,4 +97,4 @@ def test_trying_to_merge_without_privileges(
'remove': 'source',
'mergeTo': 'target',
},
- user=user_factory(rank=db.User.RANK_ANONYMOUS)))
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)))
diff --git a/server/szurubooru/tests/api/test_tag_retrieving.py b/server/szurubooru/tests/api/test_tag_retrieving.py
index 86837f9..fd2b2cb 100644
--- a/server/szurubooru/tests/api/test_tag_retrieving.py
+++ b/server/szurubooru/tests/api/test_tag_retrieving.py
@@ -1,6 +1,6 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import tags
@@ -8,8 +8,8 @@ from szurubooru.func import tags
def inject_config(config_injector):
config_injector({
'privileges': {
- 'tags:list': db.User.RANK_REGULAR,
- 'tags:view': db.User.RANK_REGULAR,
+ 'tags:list': model.User.RANK_REGULAR,
+ 'tags:view': model.User.RANK_REGULAR,
},
})
@@ -24,7 +24,7 @@ def test_retrieving_multiple(user_factory, tag_factory, context_factory):
result = api.tag_api.get_tags(
context_factory(
params={'query': '', 'page': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
assert result == {
'query': '',
'page': 1,
@@ -40,7 +40,7 @@ def test_trying_to_retrieve_multiple_without_privileges(
api.tag_api.get_tags(
context_factory(
params={'query': '', 'page': 1},
- user=user_factory(rank=db.User.RANK_ANONYMOUS)))
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)))
def test_retrieving_single(user_factory, tag_factory, context_factory):
@@ -50,7 +50,7 @@ def test_retrieving_single(user_factory, tag_factory, context_factory):
tags.serialize_tag.return_value = 'serialized tag'
result = api.tag_api.get_tag(
context_factory(
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'tag_name': 'tag'})
assert result == 'serialized tag'
@@ -59,7 +59,7 @@ def test_trying_to_retrieve_single_non_existing(user_factory, context_factory):
with pytest.raises(tags.TagNotFoundError):
api.tag_api.get_tag(
context_factory(
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'tag_name': '-'})
@@ -68,5 +68,5 @@ def test_trying_to_retrieve_single_without_privileges(
with pytest.raises(errors.AuthError):
api.tag_api.get_tag(
context_factory(
- user=user_factory(rank=db.User.RANK_ANONYMOUS)),
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)),
{'tag_name': '-'})
diff --git a/server/szurubooru/tests/api/test_tag_siblings_retrieving.py b/server/szurubooru/tests/api/test_tag_siblings_retrieving.py
index 6de25fc..fc2f5aa 100644
--- a/server/szurubooru/tests/api/test_tag_siblings_retrieving.py
+++ b/server/szurubooru/tests/api/test_tag_siblings_retrieving.py
@@ -1,12 +1,12 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import tags
@pytest.fixture(autouse=True)
def inject_config(config_injector):
- config_injector({'privileges': {'tags:view': db.User.RANK_REGULAR}})
+ config_injector({'privileges': {'tags:view': model.User.RANK_REGULAR}})
def test_get_tag_siblings(user_factory, tag_factory, context_factory):
@@ -21,7 +21,7 @@ def test_get_tag_siblings(user_factory, tag_factory, context_factory):
(tag_factory(names=['sib2']), 3),
]
result = api.tag_api.get_tag_siblings(
- context_factory(user=user_factory(rank=db.User.RANK_REGULAR)),
+ context_factory(user=user_factory(rank=model.User.RANK_REGULAR)),
{'tag_name': 'tag'})
assert result == {
'results': [
@@ -40,12 +40,12 @@ def test_get_tag_siblings(user_factory, tag_factory, context_factory):
def test_trying_to_retrieve_non_existing(user_factory, context_factory):
with pytest.raises(tags.TagNotFoundError):
api.tag_api.get_tag_siblings(
- context_factory(user=user_factory(rank=db.User.RANK_REGULAR)),
+ context_factory(user=user_factory(rank=model.User.RANK_REGULAR)),
{'tag_name': '-'})
def test_trying_to_retrieve_without_privileges(user_factory, context_factory):
with pytest.raises(errors.AuthError):
api.tag_api.get_tag_siblings(
- context_factory(user=user_factory(rank=db.User.RANK_ANONYMOUS)),
+ context_factory(user=user_factory(rank=model.User.RANK_ANONYMOUS)),
{'tag_name': '-'})
diff --git a/server/szurubooru/tests/api/test_tag_updating.py b/server/szurubooru/tests/api/test_tag_updating.py
index 3fe69bd..fb63e35 100644
--- a/server/szurubooru/tests/api/test_tag_updating.py
+++ b/server/szurubooru/tests/api/test_tag_updating.py
@@ -1,6 +1,6 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import tags, snapshots
@@ -8,18 +8,18 @@ from szurubooru.func import tags, snapshots
def inject_config(config_injector):
config_injector({
'privileges': {
- 'tags:create': db.User.RANK_REGULAR,
- 'tags:edit:names': db.User.RANK_REGULAR,
- 'tags:edit:category': db.User.RANK_REGULAR,
- 'tags:edit:description': db.User.RANK_REGULAR,
- 'tags:edit:suggestions': db.User.RANK_REGULAR,
- 'tags:edit:implications': db.User.RANK_REGULAR,
+ 'tags:create': model.User.RANK_REGULAR,
+ 'tags:edit:names': model.User.RANK_REGULAR,
+ 'tags:edit:category': model.User.RANK_REGULAR,
+ 'tags:edit:description': model.User.RANK_REGULAR,
+ 'tags:edit:suggestions': model.User.RANK_REGULAR,
+ 'tags:edit:implications': model.User.RANK_REGULAR,
},
})
def test_simple_updating(user_factory, tag_factory, context_factory):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
tag = tag_factory(names=['tag1', 'tag2'])
db.session.add(tag)
db.session.commit()
@@ -56,8 +56,7 @@ def test_simple_updating(user_factory, tag_factory, context_factory):
tag, ['sug1', 'sug2'])
tags.update_tag_implications.assert_called_once_with(
tag, ['imp1', 'imp2'])
- tags.serialize_tag.assert_called_once_with(
- tag, options=None)
+ tags.serialize_tag.assert_called_once_with(tag, options=[])
snapshots.modify.assert_called_once_with(tag, auth_user)
tags.export_to_json.assert_called_once_with()
@@ -90,7 +89,7 @@ def test_omitting_optional_field(
api.tag_api.update_tag(
context_factory(
params={**params, **{'version': 1}},
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'tag_name': 'tag'})
@@ -99,7 +98,7 @@ def test_trying_to_update_non_existing(user_factory, context_factory):
api.tag_api.update_tag(
context_factory(
params={'names': ['dummy']},
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'tag_name': 'tag1'})
@@ -117,7 +116,7 @@ def test_trying_to_update_without_privileges(
api.tag_api.update_tag(
context_factory(
params={**params, **{'version': 1}},
- user=user_factory(rank=db.User.RANK_ANONYMOUS)),
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)),
{'tag_name': 'tag'})
@@ -127,9 +126,9 @@ def test_trying_to_create_tags_without_privileges(
db.session.add(tag)
db.session.commit()
config_injector({'privileges': {
- 'tags:create': db.User.RANK_ADMINISTRATOR,
- 'tags:edit:suggestions': db.User.RANK_REGULAR,
- 'tags:edit:implications': db.User.RANK_REGULAR,
+ 'tags:create': model.User.RANK_ADMINISTRATOR,
+ 'tags:edit:suggestions': model.User.RANK_REGULAR,
+ 'tags:edit:implications': model.User.RANK_REGULAR,
}})
with patch('szurubooru.func.tags.get_or_create_tags_by_names'):
tags.get_or_create_tags_by_names.return_value = ([], ['new-tag'])
@@ -137,12 +136,12 @@ def test_trying_to_create_tags_without_privileges(
api.tag_api.update_tag(
context_factory(
params={'suggestions': ['tag1', 'tag2'], 'version': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'tag_name': 'tag'})
db.session.rollback()
with pytest.raises(errors.AuthError):
api.tag_api.update_tag(
context_factory(
params={'implications': ['tag1', 'tag2'], 'version': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'tag_name': 'tag'})
diff --git a/server/szurubooru/tests/api/test_user_creating.py b/server/szurubooru/tests/api/test_user_creating.py
index 8b583b6..df2e80b 100644
--- a/server/szurubooru/tests/api/test_user_creating.py
+++ b/server/szurubooru/tests/api/test_user_creating.py
@@ -1,6 +1,6 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import users
@@ -31,7 +31,7 @@ def test_creating_user(user_factory, context_factory, fake_datetime):
'avatarStyle': 'manual',
},
files={'avatar': b'...'},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
assert result == 'serialized user'
users.create_user.assert_called_once_with(
'chewie1', 'oks', 'asd@asd.asd')
@@ -50,7 +50,7 @@ def test_trying_to_omit_mandatory_field(user_factory, context_factory, field):
'password': 'oks',
}
user = user_factory()
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
del params[field]
with patch('szurubooru.func.users.create_user'), \
pytest.raises(errors.MissingRequiredParameterError):
@@ -70,7 +70,7 @@ def test_omitting_optional_field(user_factory, context_factory, field):
}
del params[field]
user = user_factory()
- auth_user = user_factory(rank=db.User.RANK_MODERATOR)
+ auth_user = user_factory(rank=model.User.RANK_MODERATOR)
with patch('szurubooru.func.users.create_user'), \
patch('szurubooru.func.users.update_user_avatar'), \
patch('szurubooru.func.users.serialize_user'):
@@ -84,4 +84,4 @@ def test_trying_to_create_user_without_privileges(
with pytest.raises(errors.AuthError):
api.user_api.create_user(context_factory(
params='whatever',
- user=user_factory(rank=db.User.RANK_ANONYMOUS)))
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)))
diff --git a/server/szurubooru/tests/api/test_user_deleting.py b/server/szurubooru/tests/api/test_user_deleting.py
index 9dd8776..2bd53e2 100644
--- a/server/szurubooru/tests/api/test_user_deleting.py
+++ b/server/szurubooru/tests/api/test_user_deleting.py
@@ -1,5 +1,5 @@
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import users
@@ -7,45 +7,45 @@ from szurubooru.func import users
def inject_config(config_injector):
config_injector({
'privileges': {
- 'users:delete:self': db.User.RANK_REGULAR,
- 'users:delete:any': db.User.RANK_MODERATOR,
+ 'users:delete:self': model.User.RANK_REGULAR,
+ 'users:delete:any': model.User.RANK_MODERATOR,
},
})
def test_deleting_oneself(user_factory, context_factory):
- user = user_factory(name='u', rank=db.User.RANK_REGULAR)
+ user = user_factory(name='u', rank=model.User.RANK_REGULAR)
db.session.add(user)
db.session.commit()
result = api.user_api.delete_user(
context_factory(
params={'version': 1}, user=user), {'user_name': 'u'})
assert result == {}
- assert db.session.query(db.User).count() == 0
+ assert db.session.query(model.User).count() == 0
def test_deleting_someone_else(user_factory, context_factory):
- user1 = user_factory(name='u1', rank=db.User.RANK_REGULAR)
- user2 = user_factory(name='u2', rank=db.User.RANK_MODERATOR)
+ user1 = user_factory(name='u1', rank=model.User.RANK_REGULAR)
+ user2 = user_factory(name='u2', rank=model.User.RANK_MODERATOR)
db.session.add_all([user1, user2])
db.session.commit()
api.user_api.delete_user(
context_factory(
params={'version': 1}, user=user2), {'user_name': 'u1'})
- assert db.session.query(db.User).count() == 1
+ assert db.session.query(model.User).count() == 1
def test_trying_to_delete_someone_else_without_privileges(
user_factory, context_factory):
- user1 = user_factory(name='u1', rank=db.User.RANK_REGULAR)
- user2 = user_factory(name='u2', rank=db.User.RANK_REGULAR)
+ user1 = user_factory(name='u1', rank=model.User.RANK_REGULAR)
+ user2 = user_factory(name='u2', rank=model.User.RANK_REGULAR)
db.session.add_all([user1, user2])
db.session.commit()
with pytest.raises(errors.AuthError):
api.user_api.delete_user(
context_factory(
params={'version': 1}, user=user2), {'user_name': 'u1'})
- assert db.session.query(db.User).count() == 2
+ assert db.session.query(model.User).count() == 2
def test_trying_to_delete_non_existing(user_factory, context_factory):
@@ -53,5 +53,5 @@ def test_trying_to_delete_non_existing(user_factory, context_factory):
api.user_api.delete_user(
context_factory(
params={'version': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)),
+ user=user_factory(rank=model.User.RANK_REGULAR)),
{'user_name': 'bad'})
diff --git a/server/szurubooru/tests/api/test_user_retrieving.py b/server/szurubooru/tests/api/test_user_retrieving.py
index 6400e0d..9be2620 100644
--- a/server/szurubooru/tests/api/test_user_retrieving.py
+++ b/server/szurubooru/tests/api/test_user_retrieving.py
@@ -1,6 +1,6 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import users
@@ -8,16 +8,16 @@ from szurubooru.func import users
def inject_config(config_injector):
config_injector({
'privileges': {
- 'users:list': db.User.RANK_REGULAR,
- 'users:view': db.User.RANK_REGULAR,
- 'users:edit:any:email': db.User.RANK_MODERATOR,
+ 'users:list': model.User.RANK_REGULAR,
+ 'users:view': model.User.RANK_REGULAR,
+ 'users:edit:any:email': model.User.RANK_MODERATOR,
},
})
def test_retrieving_multiple(user_factory, context_factory):
- user1 = user_factory(name='u1', rank=db.User.RANK_MODERATOR)
- user2 = user_factory(name='u2', rank=db.User.RANK_MODERATOR)
+ user1 = user_factory(name='u1', rank=model.User.RANK_MODERATOR)
+ user2 = user_factory(name='u2', rank=model.User.RANK_MODERATOR)
db.session.add_all([user1, user2])
db.session.flush()
with patch('szurubooru.func.users.serialize_user'):
@@ -25,7 +25,7 @@ def test_retrieving_multiple(user_factory, context_factory):
result = api.user_api.get_users(
context_factory(
params={'query': '', 'page': 1},
- user=user_factory(rank=db.User.RANK_REGULAR)))
+ user=user_factory(rank=model.User.RANK_REGULAR)))
assert result == {
'query': '',
'page': 1,
@@ -41,12 +41,12 @@ def test_trying_to_retrieve_multiple_without_privileges(
api.user_api.get_users(
context_factory(
params={'query': '', 'page': 1},
- user=user_factory(rank=db.User.RANK_ANONYMOUS)))
+ user=user_factory(rank=model.User.RANK_ANONYMOUS)))
def test_retrieving_single(user_factory, context_factory):
- user = user_factory(name='u1', rank=db.User.RANK_REGULAR)
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ user = user_factory(name='u1', rank=model.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
db.session.add(user)
db.session.flush()
with patch('szurubooru.func.users.serialize_user'):
@@ -57,7 +57,7 @@ def test_retrieving_single(user_factory, context_factory):
def test_trying_to_retrieve_single_non_existing(user_factory, context_factory):
- auth_user = user_factory(rank=db.User.RANK_REGULAR)
+ auth_user = user_factory(rank=model.User.RANK_REGULAR)
with pytest.raises(users.UserNotFoundError):
api.user_api.get_user(
context_factory(user=auth_user), {'user_name': '-'})
@@ -65,8 +65,8 @@ def test_trying_to_retrieve_single_non_existing(user_factory, context_factory):
def test_trying_to_retrieve_single_without_privileges(
user_factory, context_factory):
- auth_user = user_factory(rank=db.User.RANK_ANONYMOUS)
- db.session.add(user_factory(name='u1', rank=db.User.RANK_REGULAR))
+ auth_user = user_factory(rank=model.User.RANK_ANONYMOUS)
+ db.session.add(user_factory(name='u1', rank=model.User.RANK_REGULAR))
db.session.flush()
with pytest.raises(errors.AuthError):
api.user_api.get_user(
diff --git a/server/szurubooru/tests/api/test_user_updating.py b/server/szurubooru/tests/api/test_user_updating.py
index 921b269..af75049 100644
--- a/server/szurubooru/tests/api/test_user_updating.py
+++ b/server/szurubooru/tests/api/test_user_updating.py
@@ -1,6 +1,6 @@
from unittest.mock import patch
import pytest
-from szurubooru import api, db, errors
+from szurubooru import api, db, model, errors
from szurubooru.func import users
@@ -8,23 +8,23 @@ from szurubooru.func import users
def inject_config(config_injector):
config_injector({
'privileges': {
- 'users:edit:self:name': db.User.RANK_REGULAR,
- 'users:edit:self:pass': db.User.RANK_REGULAR,
- 'users:edit:self:email': db.User.RANK_REGULAR,
- 'users:edit:self:rank': db.User.RANK_MODERATOR,
- 'users:edit:self:avatar': db.User.RANK_MODERATOR,
- 'users:edit:any:name': db.User.RANK_MODERATOR,
- 'users:edit:any:pass': db.User.RANK_MODERATOR,
- 'users:edit:any:email': db.User.RANK_MODERATOR,
- 'users:edit:any:rank': db.User.RANK_ADMINISTRATOR,
- 'users:edit:any:avatar': db.User.RANK_ADMINISTRATOR,
+ 'users:edit:self:name': model.User.RANK_REGULAR,
+ 'users:edit:self:pass': model.User.RANK_REGULAR,
+ 'users:edit:self:email': model.User.RANK_REGULAR,
+ 'users:edit:self:rank': model.User.RANK_MODERATOR,
+ 'users:edit:self:avatar': model.User.RANK_MODERATOR,
+ 'users:edit:any:name': model.User.RANK_MODERATOR,
+ 'users:edit:any:pass': model.User.RANK_MODERATOR,
+ 'users:edit:any:email': model.User.RANK_MODERATOR,
+ 'users:edit:any:rank': model.User.RANK_ADMINISTRATOR,
+ 'users:edit:any:avatar': model.User.RANK_ADMINISTRATOR,
},
})
def test_updating_user(context_factory, user_factory):
- user = user_factory(name='u1', rank=db.User.RANK_ADMINISTRATOR)
- auth_user = user_factory(rank=db.User.RANK_ADMINISTRATOR)
+ user = user_factory(name='u1', rank=model.User.RANK_ADMINISTRATOR)
+ auth_user = user_factory(rank=model.User.RANK_ADMINISTRATOR)
db.session.add(user)
db.session.flush()
@@ -63,13 +63,13 @@ def test_updating_user(context_factory, user_factory):
users.update_user_avatar.assert_called_once_with(
user, 'manual', b'...')
users.serialize_user.assert_called_once_with(
- user, auth_user, options=None)
+ user, auth_user, options=[])
@pytest.mark.parametrize(
'field', ['name', 'email', 'password', 'rank', 'avatarStyle'])
def test_omitting_optional_field(user_factory, context_factory, field):
- user = user_factory(name='u1', rank=db.User.RANK_ADMINISTRATOR)
+ user = user_factory(name='u1', rank=model.User.RANK_ADMINISTRATOR)
db.session.add(user)
db.session.flush()
params = {
@@ -96,7 +96,7 @@ def test_omitting_optional_field(user_factory, context_factory, field):
def test_trying_to_update_non_existing(user_factory, context_factory):
- user = user_factory(name='u1', rank=db.User.RANK_ADMINISTRATOR)
+ user = user_factory(name='u1', rank=model.User.RANK_ADMINISTRATOR)
db.session.add(user)
db.session.flush()
with pytest.raises(users.UserNotFoundError):
@@ -113,8 +113,8 @@ def test_trying_to_update_non_existing(user_factory, context_factory):
])
def test_trying_to_update_field_without_privileges(
user_factory, context_factory, params):
- user1 = user_factory(name='u1', rank=db.User.RANK_REGULAR)
- user2 = user_factory(name='u2', rank=db.User.RANK_REGULAR)
+ user1 = user_factory(name='u1', rank=model.User.RANK_REGULAR)
+ user2 = user_factory(name='u2', rank=model.User.RANK_REGULAR)
db.session.add_all([user1, user2])
db.session.flush()
with pytest.raises(errors.AuthError):
diff --git a/server/szurubooru/tests/conftest.py b/server/szurubooru/tests/conftest.py
index db34ee0..e71f960 100644
--- a/server/szurubooru/tests/conftest.py
+++ b/server/szurubooru/tests/conftest.py
@@ -7,8 +7,8 @@ from unittest.mock import patch
from datetime import datetime
import pytest
import freezegun
-import sqlalchemy
-from szurubooru import config, db, rest
+import sqlalchemy as sa
+from szurubooru import config, db, model, rest
class QueryCounter:
@@ -36,10 +36,10 @@ if not config.config['test_database']:
raise RuntimeError('Test database not configured.')
_query_counter = QueryCounter()
-_engine = sqlalchemy.create_engine(config.config['test_database'])
-db.Base.metadata.drop_all(bind=_engine)
-db.Base.metadata.create_all(bind=_engine)
-sqlalchemy.event.listen(
+_engine = sa.create_engine(config.config['test_database'])
+model.Base.metadata.drop_all(bind=_engine)
+model.Base.metadata.create_all(bind=_engine)
+sa.event.listen(
_engine,
'before_cursor_execute',
_query_counter.create_before_cursor_execute())
@@ -79,14 +79,14 @@ def query_logger():
@pytest.yield_fixture(scope='function', autouse=True)
def session(query_logger): # pylint: disable=unused-argument
- db.sessionmaker = sqlalchemy.orm.sessionmaker(
+ db.sessionmaker = sa.orm.sessionmaker(
bind=_engine, autoflush=False)
- db.session = sqlalchemy.orm.scoped_session(db.sessionmaker)
+ db.session = sa.orm.scoped_session(db.sessionmaker)
try:
yield db.session
finally:
db.session.remove()
- for table in reversed(db.Base.metadata.sorted_tables):
+ for table in reversed(model.Base.metadata.sorted_tables):
db.session.execute(table.delete())
db.session.commit()
@@ -101,7 +101,7 @@ def context_factory(session):
params=params or {},
files=files or {})
ctx.session = session
- ctx.user = user or db.User()
+ ctx.user = user or model.User()
return ctx
return factory
@@ -115,15 +115,15 @@ def config_injector():
@pytest.fixture
def user_factory():
- def factory(name=None, rank=db.User.RANK_REGULAR, email='dummy'):
- user = db.User()
+ def factory(name=None, rank=model.User.RANK_REGULAR, email='dummy'):
+ user = model.User()
user.name = name or get_unique_name()
user.password_salt = 'dummy'
user.password_hash = 'dummy'
user.email = email
user.rank = rank
user.creation_time = datetime(1997, 1, 1)
- user.avatar_style = db.User.AVATAR_GRAVATAR
+ user.avatar_style = model.User.AVATAR_GRAVATAR
return user
return factory
@@ -131,7 +131,7 @@ def user_factory():
@pytest.fixture
def tag_category_factory():
def factory(name=None, color='dummy', default=False):
- category = db.TagCategory()
+ category = model.TagCategory()
category.name = name or get_unique_name()
category.color = color
category.default = default
@@ -143,12 +143,12 @@ def tag_category_factory():
def tag_factory():
def factory(names=None, category=None):
if not category:
- category = db.TagCategory(get_unique_name())
+ category = model.TagCategory(get_unique_name())
db.session.add(category)
- tag = db.Tag()
+ tag = model.Tag()
tag.names = []
for i, name in enumerate(names or [get_unique_name()]):
- tag.names.append(db.TagName(name, i))
+ tag.names.append(model.TagName(name, i))
tag.category = category
tag.creation_time = datetime(1996, 1, 1)
return tag
@@ -167,10 +167,10 @@ def post_factory(skip_post_hashing):
# pylint: disable=invalid-name
def factory(
id=None,
- safety=db.Post.SAFETY_SAFE,
- type=db.Post.TYPE_IMAGE,
+ safety=model.Post.SAFETY_SAFE,
+ type=model.Post.TYPE_IMAGE,
checksum='...'):
- post = db.Post()
+ post = model.Post()
post.post_id = id
post.safety = safety
post.type = type
@@ -191,7 +191,7 @@ def comment_factory(user_factory, post_factory):
if not post:
post = post_factory()
db.session.add(post)
- comment = db.Comment()
+ comment = model.Comment()
comment.user = user
comment.post = post
comment.text = text
@@ -207,7 +207,7 @@ def post_score_factory(user_factory, post_factory):
user = user_factory()
if post is None:
post = post_factory()
- return db.PostScore(
+ return model.PostScore(
post=post, user=user, score=score, time=datetime(1999, 1, 1))
return factory
@@ -219,7 +219,7 @@ def post_favorite_factory(user_factory, post_factory):
user = user_factory()
if post is None:
post = post_factory()
- return db.PostFavorite(
+ return model.PostFavorite(
post=post, user=user, time=datetime(1999, 1, 1))
return factory
diff --git a/server/szurubooru/tests/func/test_comments.py b/server/szurubooru/tests/func/test_comments.py
index c3c2fde..f1e5d0f 100644
--- a/server/szurubooru/tests/func/test_comments.py
+++ b/server/szurubooru/tests/func/test_comments.py
@@ -38,8 +38,6 @@ def test_try_get_comment(comment_factory):
db.session.flush()
assert comments.try_get_comment_by_id(comment.comment_id + 1) is None
assert comments.try_get_comment_by_id(comment.comment_id) is comment
- with pytest.raises(comments.InvalidCommentIdError):
- comments.try_get_comment_by_id('-')
def test_get_comment(comment_factory):
@@ -49,8 +47,6 @@ def test_get_comment(comment_factory):
with pytest.raises(comments.CommentNotFoundError):
comments.get_comment_by_id(comment.comment_id + 1)
assert comments.get_comment_by_id(comment.comment_id) is comment
- with pytest.raises(comments.InvalidCommentIdError):
- comments.get_comment_by_id('-')
def test_create_comment(user_factory, post_factory, fake_datetime):
diff --git a/server/szurubooru/tests/func/test_image_hash.py b/server/szurubooru/tests/func/test_image_hash.py
index becba90..1b6efd2 100644
--- a/server/szurubooru/tests/func/test_image_hash.py
+++ b/server/szurubooru/tests/func/test_image_hash.py
@@ -2,7 +2,13 @@ from szurubooru.func import image_hash
def test_hashing(read_asset, config_injector):
- config_injector({'elasticsearch': {'index': 'szurubooru_test'}})
+ config_injector({
+ 'elasticsearch': {
+ 'host': 'localhost',
+ 'port': 9200,
+ 'index': 'szurubooru_test',
+ },
+ })
image_hash.purge()
image_hash.add_image('test', read_asset('jpeg.jpg'))
diff --git a/server/szurubooru/tests/func/test_posts.py b/server/szurubooru/tests/func/test_posts.py
index 682a1cc..7606469 100644
--- a/server/szurubooru/tests/func/test_posts.py
+++ b/server/szurubooru/tests/func/test_posts.py
@@ -2,7 +2,7 @@ import os
from unittest.mock import patch
from datetime import datetime
import pytest
-from szurubooru import db
+from szurubooru import db, model
from szurubooru.func import (
posts, users, comments, tags, images, files, util, image_hash)
@@ -14,7 +14,7 @@ from szurubooru.func import (
])
def test_get_post_url(input_mime_type, expected_url, config_injector):
config_injector({'data_url': 'http://example.com/'})
- post = db.Post()
+ post = model.Post()
post.post_id = 1
post.mime_type = input_mime_type
assert posts.get_post_content_url(post) == expected_url
@@ -23,7 +23,7 @@ def test_get_post_url(input_mime_type, expected_url, config_injector):
@pytest.mark.parametrize('input_mime_type', ['image/jpeg', 'image/gif'])
def test_get_post_thumbnail_url(input_mime_type, config_injector):
config_injector({'data_url': 'http://example.com/'})
- post = db.Post()
+ post = model.Post()
post.post_id = 1
post.mime_type = input_mime_type
assert posts.get_post_thumbnail_url(post) \
@@ -36,7 +36,7 @@ def test_get_post_thumbnail_url(input_mime_type, config_injector):
('totally/unknown', 'posts/1.dat'),
])
def test_get_post_content_path(input_mime_type, expected_path):
- post = db.Post()
+ post = model.Post()
post.post_id = 1
post.mime_type = input_mime_type
assert posts.get_post_content_path(post) == expected_path
@@ -44,7 +44,7 @@ def test_get_post_content_path(input_mime_type, expected_path):
@pytest.mark.parametrize('input_mime_type', ['image/jpeg', 'image/gif'])
def test_get_post_thumbnail_path(input_mime_type):
- post = db.Post()
+ post = model.Post()
post.post_id = 1
post.mime_type = input_mime_type
assert posts.get_post_thumbnail_path(post) == 'generated-thumbnails/1.jpg'
@@ -52,7 +52,7 @@ def test_get_post_thumbnail_path(input_mime_type):
@pytest.mark.parametrize('input_mime_type', ['image/jpeg', 'image/gif'])
def test_get_post_thumbnail_backup_path(input_mime_type):
- post = db.Post()
+ post = model.Post()
post.post_id = 1
post.mime_type = input_mime_type
assert posts.get_post_thumbnail_backup_path(post) \
@@ -60,7 +60,7 @@ def test_get_post_thumbnail_backup_path(input_mime_type):
def test_serialize_note():
- note = db.PostNote()
+ note = model.PostNote()
note.polygon = [[0, 1], [1, 1], [1, 0], [0, 0]]
note.text = '...'
assert posts.serialize_note(note) == {
@@ -86,7 +86,7 @@ def test_serialize_post(
= lambda comment, auth_user: comment.user.name
auth_user = user_factory(name='auth user')
- post = db.Post()
+ post = model.Post()
post.post_id = 1
post.creation_time = datetime(1997, 1, 1)
post.last_edit_time = datetime(1998, 1, 1)
@@ -94,9 +94,9 @@ def test_serialize_post(
tag_factory(names=['tag1', 'tag2']),
tag_factory(names=['tag3'])
]
- post.safety = db.Post.SAFETY_SAFE
+ post.safety = model.Post.SAFETY_SAFE
post.source = '4gag'
- post.type = db.Post.TYPE_IMAGE
+ post.type = model.Post.TYPE_IMAGE
post.checksum = 'deadbeef'
post.mime_type = 'image/jpeg'
post.file_size = 100
@@ -116,25 +116,25 @@ def test_serialize_post(
user=user_factory(name='commenter2'),
post=post,
time=datetime(1999, 1, 2)),
- db.PostFavorite(
+ model.PostFavorite(
post=post,
user=user_factory(name='fav1'),
time=datetime(1800, 1, 1)),
- db.PostFeature(
+ model.PostFeature(
post=post,
user=user_factory(),
time=datetime(1999, 1, 1)),
- db.PostScore(
+ model.PostScore(
post=post,
user=auth_user,
score=-1,
time=datetime(1800, 1, 1)),
- db.PostScore(
+ model.PostScore(
post=post,
user=user_factory(),
score=1,
time=datetime(1800, 1, 1)),
- db.PostScore(
+ model.PostScore(
post=post,
user=user_factory(),
score=1,
@@ -209,8 +209,6 @@ def test_try_get_post_by_id(post_factory):
db.session.flush()
assert posts.try_get_post_by_id(post.post_id) == post
assert posts.try_get_post_by_id(post.post_id + 1) is None
- with pytest.raises(posts.InvalidPostIdError):
- posts.get_post_by_id('-')
def test_get_post_by_id(post_factory):
@@ -220,8 +218,6 @@ def test_get_post_by_id(post_factory):
assert posts.get_post_by_id(post.post_id) == post
with pytest.raises(posts.PostNotFoundError):
posts.get_post_by_id(post.post_id + 1)
- with pytest.raises(posts.InvalidPostIdError):
- posts.get_post_by_id('-')
def test_create_post(user_factory, fake_datetime):
@@ -237,30 +233,30 @@ def test_create_post(user_factory, fake_datetime):
@pytest.mark.parametrize('input_safety,expected_safety', [
- ('safe', db.Post.SAFETY_SAFE),
- ('sketchy', db.Post.SAFETY_SKETCHY),
- ('unsafe', db.Post.SAFETY_UNSAFE),
+ ('safe', model.Post.SAFETY_SAFE),
+ ('sketchy', model.Post.SAFETY_SKETCHY),
+ ('unsafe', model.Post.SAFETY_UNSAFE),
])
def test_update_post_safety(input_safety, expected_safety):
- post = db.Post()
+ post = model.Post()
posts.update_post_safety(post, input_safety)
assert post.safety == expected_safety
def test_update_post_safety_with_invalid_string():
- post = db.Post()
+ post = model.Post()
with pytest.raises(posts.InvalidPostSafetyError):
posts.update_post_safety(post, 'bad')
def test_update_post_source():
- post = db.Post()
+ post = model.Post()
posts.update_post_source(post, 'x')
assert post.source == 'x'
def test_update_post_source_with_too_long_string():
- post = db.Post()
+ post = model.Post()
with pytest.raises(posts.InvalidPostSourceError):
posts.update_post_source(post, 'x' * 1000)
@@ -268,24 +264,24 @@ def test_update_post_source_with_too_long_string():
@pytest.mark.parametrize(
'is_existing,input_file,expected_mime_type,expected_type,output_file_name',
[
- (True, 'png.png', 'image/png', db.Post.TYPE_IMAGE, '1.png'),
- (False, 'png.png', 'image/png', db.Post.TYPE_IMAGE, '1.png'),
- (False, 'jpeg.jpg', 'image/jpeg', db.Post.TYPE_IMAGE, '1.jpg'),
- (False, 'gif.gif', 'image/gif', db.Post.TYPE_IMAGE, '1.gif'),
+ (True, 'png.png', 'image/png', model.Post.TYPE_IMAGE, '1.png'),
+ (False, 'png.png', 'image/png', model.Post.TYPE_IMAGE, '1.png'),
+ (False, 'jpeg.jpg', 'image/jpeg', model.Post.TYPE_IMAGE, '1.jpg'),
+ (False, 'gif.gif', 'image/gif', model.Post.TYPE_IMAGE, '1.gif'),
(
False,
'gif-animated.gif',
'image/gif',
- db.Post.TYPE_ANIMATION,
+ model.Post.TYPE_ANIMATION,
'1.gif',
),
- (False, 'webm.webm', 'video/webm', db.Post.TYPE_VIDEO, '1.webm'),
- (False, 'mp4.mp4', 'video/mp4', db.Post.TYPE_VIDEO, '1.mp4'),
+ (False, 'webm.webm', 'video/webm', model.Post.TYPE_VIDEO, '1.webm'),
+ (False, 'mp4.mp4', 'video/mp4', model.Post.TYPE_VIDEO, '1.mp4'),
(
False,
'flash.swf',
'application/x-shockwave-flash',
- db.Post.TYPE_FLASH,
+ model.Post.TYPE_FLASH,
'1.swf'
),
])
@@ -318,7 +314,7 @@ def test_update_post_content_for_new_post(
assert post.type == expected_type
assert post.checksum == 'crc'
assert os.path.exists(output_file_path)
- if post.type in (db.Post.TYPE_IMAGE, db.Post.TYPE_ANIMATION):
+ if post.type in (model.Post.TYPE_IMAGE, model.Post.TYPE_ANIMATION):
image_hash.delete_image.assert_called_once_with(post.post_id)
image_hash.add_image.assert_called_once_with(post.post_id, content)
else:
@@ -368,7 +364,7 @@ def test_update_post_content_with_broken_content(
@pytest.mark.parametrize('input_content', [None, b'not a media file'])
def test_update_post_content_with_invalid_content(input_content):
- post = db.Post()
+ post = model.Post()
with pytest.raises(posts.InvalidPostContentError):
posts.update_post_content(post, input_content)
@@ -492,7 +488,7 @@ def test_update_post_content_leaving_custom_thumbnail(
def test_update_post_tags(tag_factory):
- post = db.Post()
+ post = model.Post()
with patch('szurubooru.func.tags.get_or_create_tags_by_names'):
tags.get_or_create_tags_by_names.side_effect = lambda tag_names: \
([tag_factory(names=[name]) for name in tag_names], [])
@@ -528,7 +524,7 @@ def test_update_post_relations_bidirectionality(post_factory):
def test_update_post_relations_with_nonexisting_posts():
- post = db.Post()
+ post = model.Post()
with pytest.raises(posts.InvalidPostRelationError):
posts.update_post_relations(post, [100])
@@ -542,7 +538,7 @@ def test_update_post_relations_with_itself(post_factory):
def test_update_post_notes():
- post = db.Post()
+ post = model.Post()
posts.update_post_notes(
post,
[
@@ -576,19 +572,19 @@ def test_update_post_notes():
[{'polygon': [[0, 0], [0, 0], [0, 1]]}],
])
def test_update_post_notes_with_invalid_content(input):
- post = db.Post()
+ post = model.Post()
with pytest.raises(posts.InvalidPostNoteError):
posts.update_post_notes(post, input)
def test_update_post_flags():
- post = db.Post()
+ post = model.Post()
posts.update_post_flags(post, ['loop'])
assert post.flags == ['loop']
def test_update_post_flags_with_invalid_content():
- post = db.Post()
+ post = model.Post()
with pytest.raises(posts.InvalidPostFlagError):
posts.update_post_flags(post, ['invalid'])
diff --git a/server/szurubooru/tests/func/test_snapshots.py b/server/szurubooru/tests/func/test_snapshots.py
index d4c6754..0949199 100644
--- a/server/szurubooru/tests/func/test_snapshots.py
+++ b/server/szurubooru/tests/func/test_snapshots.py
@@ -1,7 +1,7 @@
from unittest.mock import patch
from datetime import datetime
import pytest
-from szurubooru import db
+from szurubooru import db, model
from szurubooru.func import snapshots, users
@@ -56,20 +56,20 @@ def test_get_post_snapshot(post_factory, user_factory, tag_factory):
db.session.add_all([user, tag1, tag2, post, related_post1, related_post2])
db.session.flush()
- score = db.PostScore()
+ score = model.PostScore()
score.post = post
score.user = user
score.time = datetime(1997, 1, 1)
score.score = 1
- favorite = db.PostFavorite()
+ favorite = model.PostFavorite()
favorite.post = post
favorite.user = user
favorite.time = datetime(1997, 1, 1)
- feature = db.PostFeature()
+ feature = model.PostFeature()
feature.post = post
feature.user = user
feature.time = datetime(1997, 1, 1)
- note = db.PostNote()
+ note = model.PostNote()
note.post = post
note.polygon = [(1, 1), (200, 1), (200, 200), (1, 200)]
note.text = 'some text'
@@ -105,7 +105,7 @@ def test_get_post_snapshot(post_factory, user_factory, tag_factory):
def test_serialize_snapshot(user_factory):
auth_user = user_factory()
- snapshot = db.Snapshot()
+ snapshot = model.Snapshot()
snapshot.operation = snapshot.OPERATION_CREATED
snapshot.resource_type = 'type'
snapshot.resource_name = 'id'
@@ -132,9 +132,9 @@ def test_create(tag_factory, user_factory):
snapshots.get_tag_snapshot.return_value = 'mocked'
snapshots.create(tag, user_factory())
db.session.flush()
- results = db.session.query(db.Snapshot).all()
+ results = db.session.query(model.Snapshot).all()
assert len(results) == 1
- assert results[0].operation == db.Snapshot.OPERATION_CREATED
+ assert results[0].operation == model.Snapshot.OPERATION_CREATED
assert results[0].data == 'mocked'
@@ -144,16 +144,16 @@ def test_modify_saves_non_empty_diffs(post_factory, user_factory):
'SQLite doesn\'t support transaction isolation, '
'which is required to retrieve original entity')
post = post_factory()
- post.notes = [db.PostNote(polygon=[(0, 0), (0, 1), (1, 1)], text='old')]
+ post.notes = [model.PostNote(polygon=[(0, 0), (0, 1), (1, 1)], text='old')]
user = user_factory()
db.session.add_all([post, user])
db.session.commit()
post.source = 'new source'
- post.notes = [db.PostNote(polygon=[(0, 0), (0, 1), (1, 1)], text='new')]
+ post.notes = [model.PostNote(polygon=[(0, 0), (0, 1), (1, 1)], text='new')]
db.session.flush()
snapshots.modify(post, user)
db.session.flush()
- results = db.session.query(db.Snapshot).all()
+ results = db.session.query(model.Snapshot).all()
assert len(results) == 1
assert results[0].data == {
'type': 'object change',
@@ -181,7 +181,7 @@ def test_modify_doesnt_save_empty_diffs(tag_factory, user_factory):
db.session.commit()
snapshots.modify(tag, user)
db.session.flush()
- assert db.session.query(db.Snapshot).count() == 0
+ assert db.session.query(model.Snapshot).count() == 0
def test_delete(tag_factory, user_factory):
@@ -192,9 +192,9 @@ def test_delete(tag_factory, user_factory):
snapshots.get_tag_snapshot.return_value = 'mocked'
snapshots.delete(tag, user_factory())
db.session.flush()
- results = db.session.query(db.Snapshot).all()
+ results = db.session.query(model.Snapshot).all()
assert len(results) == 1
- assert results[0].operation == db.Snapshot.OPERATION_DELETED
+ assert results[0].operation == model.Snapshot.OPERATION_DELETED
assert results[0].data == 'mocked'
@@ -205,6 +205,6 @@ def test_merge(tag_factory, user_factory):
db.session.flush()
snapshots.merge(source_tag, target_tag, user_factory())
db.session.flush()
- result = db.session.query(db.Snapshot).one()
- assert result.operation == db.Snapshot.OPERATION_MERGED
+ result = db.session.query(model.Snapshot).one()
+ assert result.operation == model.Snapshot.OPERATION_MERGED
assert result.data == ['tag', 'target']
diff --git a/server/szurubooru/tests/func/test_tag_categories.py b/server/szurubooru/tests/func/test_tag_categories.py
index cf74c2a..d1e5570 100644
--- a/server/szurubooru/tests/func/test_tag_categories.py
+++ b/server/szurubooru/tests/func/test_tag_categories.py
@@ -1,6 +1,6 @@
from unittest.mock import patch
import pytest
-from szurubooru import db
+from szurubooru import db, model
from szurubooru.func import tag_categories, cache
@@ -191,7 +191,7 @@ def test_get_default_category_name(tag_category_factory):
db.session.flush()
cache.purge()
assert tag_categories.get_default_category_name() == category1.name
- db.session.query(db.TagCategory).delete()
+ db.session.query(model.TagCategory).delete()
cache.purge()
with pytest.raises(tag_categories.TagCategoryNotFoundError):
tag_categories.get_default_category_name()
diff --git a/server/szurubooru/tests/func/test_tags.py b/server/szurubooru/tests/func/test_tags.py
index d467499..712c8e3 100644
--- a/server/szurubooru/tests/func/test_tags.py
+++ b/server/szurubooru/tests/func/test_tags.py
@@ -3,7 +3,7 @@ import json
from unittest.mock import patch
from datetime import datetime
import pytest
-from szurubooru import db
+from szurubooru import db, model
from szurubooru.func import tags, tag_categories, cache
@@ -304,10 +304,10 @@ def test_delete(tag_factory):
tag.implications = [tag_factory(names=['imp'])]
db.session.add(tag)
db.session.flush()
- assert db.session.query(db.Tag).count() == 3
+ assert db.session.query(model.Tag).count() == 3
tags.delete(tag)
db.session.flush()
- assert db.session.query(db.Tag).count() == 2
+ assert db.session.query(model.Tag).count() == 2
def test_merge_tags_deletes_source_tag(tag_factory):
diff --git a/server/szurubooru/tests/func/test_users.py b/server/szurubooru/tests/func/test_users.py
index 73150bb..53d47de 100644
--- a/server/szurubooru/tests/func/test_users.py
+++ b/server/szurubooru/tests/func/test_users.py
@@ -1,7 +1,7 @@
from unittest.mock import patch
from datetime import datetime
import pytest
-from szurubooru import db, errors
+from szurubooru import db, model, errors
from szurubooru.func import auth, users, files, util
@@ -20,28 +20,28 @@ def test_get_avatar_path(user_name):
(
'user',
None,
- db.User.AVATAR_GRAVATAR,
+ model.User.AVATAR_GRAVATAR,
('https://gravatar.com/avatar/' +
'ee11cbb19052e40b07aac0ca060c23ee?d=retro&s=100'),
),
(
None,
'user@example.com',
- db.User.AVATAR_GRAVATAR,
+ model.User.AVATAR_GRAVATAR,
('https://gravatar.com/avatar/' +
'b58996c504c5638798eb6b511e6f49af?d=retro&s=100'),
),
(
'user',
'user@example.com',
- db.User.AVATAR_GRAVATAR,
+ model.User.AVATAR_GRAVATAR,
('https://gravatar.com/avatar/' +
'b58996c504c5638798eb6b511e6f49af?d=retro&s=100'),
),
(
'user',
None,
- db.User.AVATAR_MANUAL,
+ model.User.AVATAR_MANUAL,
'http://example.com/avatars/user.png',
),
])
@@ -51,7 +51,7 @@ def test_get_avatar_url(
'data_url': 'http://example.com/',
'thumbnails': {'avatar_width': 100},
})
- user = db.User()
+ user = model.User()
user.name = user_name
user.email = user_email
user.avatar_style = avatar_style
@@ -100,7 +100,7 @@ def test_get_liked_post_count(
user = user_factory()
post = post_factory()
auth_user = user if same_user else user_factory()
- score = db.PostScore(
+ score = model.PostScore(
post=post, user=user, score=score, time=datetime.now())
db.session.add_all([post, user, score])
db.session.flush()
@@ -127,8 +127,8 @@ def test_serialize_user(user_factory):
user = user_factory(name='dummy user')
user.creation_time = datetime(1997, 1, 1)
user.last_edit_time = datetime(1998, 1, 1)
- user.avatar_style = db.User.AVATAR_MANUAL
- user.rank = db.User.RANK_ADMINISTRATOR
+ user.avatar_style = model.User.AVATAR_MANUAL
+ user.rank = model.User.RANK_ADMINISTRATOR
db.session.add(user)
db.session.flush()
assert users.serialize_user(user, auth_user) == {
@@ -222,7 +222,7 @@ def test_create_user_for_first_user(fake_datetime):
user = users.create_user('name', 'password', 'email')
assert user.creation_time == datetime(1997, 1, 1)
assert user.last_login_time is None
- assert user.rank == db.User.RANK_ADMINISTRATOR
+ assert user.rank == model.User.RANK_ADMINISTRATOR
users.update_user_name.assert_called_once_with(user, 'name')
users.update_user_password.assert_called_once_with(user, 'password')
users.update_user_email.assert_called_once_with(user, 'email')
@@ -236,7 +236,7 @@ def test_create_user_for_subsequent_users(user_factory, config_injector):
patch('szurubooru.func.users.update_user_email'), \
patch('szurubooru.func.users.update_user_password'):
user = users.create_user('name', 'password', 'email')
- assert user.rank == db.User.RANK_REGULAR
+ assert user.rank == model.User.RANK_REGULAR
def test_update_user_name_with_empty_string(user_factory):
@@ -379,7 +379,7 @@ def test_update_user_rank_with_higher_rank_than_possible(user_factory):
db.session.flush()
user = user_factory()
auth_user = user_factory()
- auth_user.rank = db.User.RANK_ANONYMOUS
+ auth_user.rank = model.User.RANK_ANONYMOUS
with pytest.raises(errors.AuthError):
users.update_user_rank(user, 'regular', auth_user)
with pytest.raises(errors.AuthError):
@@ -391,11 +391,11 @@ def test_update_user_rank(user_factory):
db.session.flush()
user = user_factory()
auth_user = user_factory()
- auth_user.rank = db.User.RANK_ADMINISTRATOR
+ auth_user.rank = model.User.RANK_ADMINISTRATOR
users.update_user_rank(user, 'regular', auth_user)
users.update_user_rank(auth_user, 'regular', auth_user)
- assert user.rank == db.User.RANK_REGULAR
- assert auth_user.rank == db.User.RANK_REGULAR
+ assert user.rank == model.User.RANK_REGULAR
+ assert auth_user.rank == model.User.RANK_REGULAR
def test_update_user_avatar_with_invalid_style(user_factory):
@@ -407,7 +407,7 @@ def test_update_user_avatar_with_invalid_style(user_factory):
def test_update_user_avatar_to_gravatar(user_factory):
user = user_factory()
users.update_user_avatar(user, 'gravatar')
- assert user.avatar_style == db.User.AVATAR_GRAVATAR
+ assert user.avatar_style == model.User.AVATAR_GRAVATAR
def test_update_user_avatar_to_empty_manual(user_factory):
@@ -431,7 +431,7 @@ def test_update_user_avatar_to_new_manual(user_factory, config_injector):
user = user_factory()
with patch('szurubooru.func.files.save'):
users.update_user_avatar(user, 'manual', EMPTY_PIXEL)
- assert user.avatar_style == db.User.AVATAR_MANUAL
+ assert user.avatar_style == model.User.AVATAR_MANUAL
assert files.save.called
diff --git a/server/szurubooru/tests/db/__init__.py b/server/szurubooru/tests/model/__init__.py
index e69de29..e69de29 100644
--- a/server/szurubooru/tests/db/__init__.py
+++ b/server/szurubooru/tests/model/__init__.py
diff --git a/server/szurubooru/tests/db/test_comment.py b/server/szurubooru/tests/model/test_comment.py
index 9a78f95..ffd5189 100644
--- a/server/szurubooru/tests/db/test_comment.py
+++ b/server/szurubooru/tests/model/test_comment.py
@@ -1,11 +1,11 @@
from datetime import datetime
-from szurubooru import db
+from szurubooru import db, model
def test_saving_comment(user_factory, post_factory):
user = user_factory()
post = post_factory()
- comment = db.Comment()
+ comment = model.Comment()
comment.text = 'long text' * 1000
comment.user = user
comment.post = post
@@ -29,7 +29,7 @@ def test_cascade_deletions(comment_factory, user_factory, post_factory):
db.session.add_all([user, comment])
db.session.flush()
- score = db.CommentScore()
+ score = model.CommentScore()
score.comment = comment
score.user = user
score.time = datetime(1997, 1, 1)
@@ -39,14 +39,14 @@ def test_cascade_deletions(comment_factory, user_factory, post_factory):
assert not db.session.dirty
assert comment.user is not None and comment.user.user_id is not None
- assert db.session.query(db.User).count() == 1
- assert db.session.query(db.Comment).count() == 1
- assert db.session.query(db.CommentScore).count() == 1
+ assert db.session.query(model.User).count() == 1
+ assert db.session.query(model.Comment).count() == 1
+ assert db.session.query(model.CommentScore).count() == 1
db.session.delete(comment)
db.session.commit()
assert not db.session.dirty
- assert db.session.query(db.User).count() == 1
- assert db.session.query(db.Comment).count() == 0
- assert db.session.query(db.CommentScore).count() == 0
+ assert db.session.query(model.User).count() == 1
+ assert db.session.query(model.Comment).count() == 0
+ assert db.session.query(model.CommentScore).count() == 0
diff --git a/server/szurubooru/tests/db/test_post.py b/server/szurubooru/tests/model/test_post.py
index c021353..f35e275 100644
--- a/server/szurubooru/tests/db/test_post.py
+++ b/server/szurubooru/tests/model/test_post.py
@@ -1,5 +1,5 @@
from datetime import datetime
-from szurubooru import db
+from szurubooru import db, model
def test_saving_post(post_factory, user_factory, tag_factory):
@@ -8,7 +8,7 @@ def test_saving_post(post_factory, user_factory, tag_factory):
tag2 = tag_factory()
related_post1 = post_factory()
related_post2 = post_factory()
- post = db.Post()
+ post = model.Post()
post.safety = 'safety'
post.type = 'type'
post.checksum = 'deadbeef'
@@ -54,20 +54,20 @@ def test_cascade_deletions(
user, tag1, tag2, post, related_post1, related_post2, comment])
db.session.flush()
- score = db.PostScore()
+ score = model.PostScore()
score.post = post
score.user = user
score.time = datetime(1997, 1, 1)
score.score = 1
- favorite = db.PostFavorite()
+ favorite = model.PostFavorite()
favorite.post = post
favorite.user = user
favorite.time = datetime(1997, 1, 1)
- feature = db.PostFeature()
+ feature = model.PostFeature()
feature.post = post
feature.user = user
feature.time = datetime(1997, 1, 1)
- note = db.PostNote()
+ note = model.PostNote()
note.post = post
note.polygon = ''
note.text = ''
@@ -88,31 +88,31 @@ def test_cascade_deletions(
assert not db.session.dirty
assert post.user is not None and post.user.user_id is not None
assert len(post.relations) == 1
- assert db.session.query(db.User).count() == 1
- assert db.session.query(db.Tag).count() == 2
- assert db.session.query(db.Post).count() == 3
- assert db.session.query(db.PostTag).count() == 2
- assert db.session.query(db.PostRelation).count() == 2
- assert db.session.query(db.PostScore).count() == 1
- assert db.session.query(db.PostNote).count() == 1
- assert db.session.query(db.PostFeature).count() == 1
- assert db.session.query(db.PostFavorite).count() == 1
- assert db.session.query(db.Comment).count() == 1
+ assert db.session.query(model.User).count() == 1
+ assert db.session.query(model.Tag).count() == 2
+ assert db.session.query(model.Post).count() == 3
+ assert db.session.query(model.PostTag).count() == 2
+ assert db.session.query(model.PostRelation).count() == 2
+ assert db.session.query(model.PostScore).count() == 1
+ assert db.session.query(model.PostNote).count() == 1
+ assert db.session.query(model.PostFeature).count() == 1
+ assert db.session.query(model.PostFavorite).count() == 1
+ assert db.session.query(model.Comment).count() == 1
db.session.delete(post)
db.session.commit()
assert not db.session.dirty
- assert db.session.query(db.User).count() == 1
- assert db.session.query(db.Tag).count() == 2
- assert db.session.query(db.Post).count() == 2
- assert db.session.query(db.PostTag).count() == 0
- assert db.session.query(db.PostRelation).count() == 0
- assert db.session.query(db.PostScore).count() == 0
- assert db.session.query(db.PostNote).count() == 0
- assert db.session.query(db.PostFeature).count() == 0
- assert db.session.query(db.PostFavorite).count() == 0
- assert db.session.query(db.Comment).count() == 0
+ assert db.session.query(model.User).count() == 1
+ assert db.session.query(model.Tag).count() == 2
+ assert db.session.query(model.Post).count() == 2
+ assert db.session.query(model.PostTag).count() == 0
+ assert db.session.query(model.PostRelation).count() == 0
+ assert db.session.query(model.PostScore).count() == 0
+ assert db.session.query(model.PostNote).count() == 0
+ assert db.session.query(model.PostFeature).count() == 0
+ assert db.session.query(model.PostFavorite).count() == 0
+ assert db.session.query(model.Comment).count() == 0
def test_tracking_tag_count(post_factory, tag_factory):
diff --git a/server/szurubooru/tests/db/test_tag.py b/server/szurubooru/tests/model/test_tag.py
index 02134d6..7d3d8d2 100644
--- a/server/szurubooru/tests/db/test_tag.py
+++ b/server/szurubooru/tests/model/test_tag.py
@@ -1,5 +1,5 @@
from datetime import datetime
-from szurubooru import db
+from szurubooru import db, model
def test_saving_tag(tag_factory):
@@ -7,11 +7,11 @@ def test_saving_tag(tag_factory):
sug2 = tag_factory(names=['sug2'])
imp1 = tag_factory(names=['imp1'])
imp2 = tag_factory(names=['imp2'])
- tag = db.Tag()
- tag.names = [db.TagName('alias1', 0), db.TagName('alias2', 1)]
+ tag = model.Tag()
+ tag.names = [model.TagName('alias1', 0), model.TagName('alias2', 1)]
tag.suggestions = []
tag.implications = []
- tag.category = db.TagCategory('category')
+ tag.category = model.TagCategory('category')
tag.creation_time = datetime(1997, 1, 1)
tag.last_edit_time = datetime(1998, 1, 1)
db.session.add_all([tag, sug1, sug2, imp1, imp2])
@@ -29,9 +29,9 @@ def test_saving_tag(tag_factory):
db.session.commit()
tag = db.session \
- .query(db.Tag) \
- .join(db.TagName) \
- .filter(db.TagName.name == 'alias1') \
+ .query(model.Tag) \
+ .join(model.TagName) \
+ .filter(model.TagName.name == 'alias1') \
.one()
assert [tag_name.name for tag_name in tag.names] == ['alias1', 'alias2']
assert tag.category.name == 'category'
@@ -48,11 +48,11 @@ def test_cascade_deletions(tag_factory):
sug2 = tag_factory(names=['sug2'])
imp1 = tag_factory(names=['imp1'])
imp2 = tag_factory(names=['imp2'])
- tag = db.Tag()
- tag.names = [db.TagName('alias1', 0), db.TagName('alias2', 1)]
+ tag = model.Tag()
+ tag.names = [model.TagName('alias1', 0), model.TagName('alias2', 1)]
tag.suggestions = []
tag.implications = []
- tag.category = db.TagCategory('category')
+ tag.category = model.TagCategory('category')
tag.creation_time = datetime(1997, 1, 1)
tag.last_edit_time = datetime(1998, 1, 1)
tag.post_count = 1
@@ -72,10 +72,10 @@ def test_cascade_deletions(tag_factory):
db.session.delete(tag)
db.session.commit()
- assert db.session.query(db.Tag).count() == 4
- assert db.session.query(db.TagName).count() == 4
- assert db.session.query(db.TagImplication).count() == 0
- assert db.session.query(db.TagSuggestion).count() == 0
+ assert db.session.query(model.Tag).count() == 4
+ assert db.session.query(model.TagName).count() == 4
+ assert db.session.query(model.TagImplication).count() == 0
+ assert db.session.query(model.TagSuggestion).count() == 0
def test_tracking_post_count(post_factory, tag_factory):
diff --git a/server/szurubooru/tests/db/test_user.py b/server/szurubooru/tests/model/test_user.py
index 59933e3..08875fa 100644
--- a/server/szurubooru/tests/db/test_user.py
+++ b/server/szurubooru/tests/model/test_user.py
@@ -1,16 +1,16 @@
from datetime import datetime
-from szurubooru import db
+from szurubooru import db, model
def test_saving_user():
- user = db.User()
+ user = model.User()
user.name = 'name'
user.password_salt = 'salt'
user.password_hash = 'hash'
user.email = 'email'
user.rank = 'rank'
user.creation_time = datetime(1997, 1, 1)
- user.avatar_style = db.User.AVATAR_GRAVATAR
+ user.avatar_style = model.User.AVATAR_GRAVATAR
db.session.add(user)
db.session.flush()
db.session.refresh(user)
@@ -21,7 +21,7 @@ def test_saving_user():
assert user.email == 'email'
assert user.rank == 'rank'
assert user.creation_time == datetime(1997, 1, 1)
- assert user.avatar_style == db.User.AVATAR_GRAVATAR
+ assert user.avatar_style == model.User.AVATAR_GRAVATAR
def test_upload_count(user_factory, post_factory):
@@ -61,8 +61,8 @@ def test_favorite_count(user_factory, post_factory):
post1 = post_factory()
post2 = post_factory()
db.session.add_all([
- db.PostFavorite(post=post1, time=datetime.utcnow(), user=user1),
- db.PostFavorite(post=post2, time=datetime.utcnow(), user=user2),
+ model.PostFavorite(post=post1, time=datetime.utcnow(), user=user1),
+ model.PostFavorite(post=post2, time=datetime.utcnow(), user=user2),
])
db.session.flush()
db.session.refresh(user1)
@@ -79,8 +79,10 @@ def test_liked_post_count(user_factory, post_factory):
post1 = post_factory()
post2 = post_factory()
db.session.add_all([
- db.PostScore(post=post1, time=datetime.utcnow(), user=user1, score=1),
- db.PostScore(post=post2, time=datetime.utcnow(), user=user2, score=1),
+ model.PostScore(
+ post=post1, time=datetime.utcnow(), user=user1, score=1),
+ model.PostScore(
+ post=post2, time=datetime.utcnow(), user=user2, score=1),
])
db.session.flush()
db.session.refresh(user1)
@@ -98,8 +100,10 @@ def test_disliked_post_count(user_factory, post_factory):
post1 = post_factory()
post2 = post_factory()
db.session.add_all([
- db.PostScore(post=post1, time=datetime.utcnow(), user=user1, score=-1),
- db.PostScore(post=post2, time=datetime.utcnow(), user=user2, score=1),
+ model.PostScore(
+ post=post1, time=datetime.utcnow(), user=user1, score=-1),
+ model.PostScore(
+ post=post2, time=datetime.utcnow(), user=user2, score=1),
])
db.session.flush()
db.session.refresh(user1)
@@ -114,34 +118,34 @@ def test_cascade_deletions(post_factory, user_factory, comment_factory):
post = post_factory()
post.user = user
- post_score = db.PostScore()
+ post_score = model.PostScore()
post_score.post = post
post_score.user = user
post_score.time = datetime(1997, 1, 1)
post_score.score = 1
post.scores.append(post_score)
- post_favorite = db.PostFavorite()
+ post_favorite = model.PostFavorite()
post_favorite.post = post
post_favorite.user = user
post_favorite.time = datetime(1997, 1, 1)
post.favorited_by.append(post_favorite)
- post_feature = db.PostFeature()
+ post_feature = model.PostFeature()
post_feature.post = post
post_feature.user = user
post_feature.time = datetime(1997, 1, 1)
post.features.append(post_feature)
comment = comment_factory(post=post, user=user)
- comment_score = db.CommentScore()
+ comment_score = model.CommentScore()
comment_score.comment = comment
comment_score.user = user
comment_score.time = datetime(1997, 1, 1)
comment_score.score = 1
comment.scores.append(comment_score)
- snapshot = db.Snapshot()
+ snapshot = model.Snapshot()
snapshot.user = user
snapshot.creation_time = datetime(1997, 1, 1)
snapshot.resource_type = '-'
@@ -154,27 +158,27 @@ def test_cascade_deletions(post_factory, user_factory, comment_factory):
assert not db.session.dirty
assert post.user is not None and post.user.user_id is not None
- assert db.session.query(db.User).count() == 1
- assert db.session.query(db.Post).count() == 1
- assert db.session.query(db.PostScore).count() == 1
- assert db.session.query(db.PostFeature).count() == 1
- assert db.session.query(db.PostFavorite).count() == 1
- assert db.session.query(db.Comment).count() == 1
- assert db.session.query(db.CommentScore).count() == 1
- assert db.session.query(db.Snapshot).count() == 1
+ assert db.session.query(model.User).count() == 1
+ assert db.session.query(model.Post).count() == 1
+ assert db.session.query(model.PostScore).count() == 1
+ assert db.session.query(model.PostFeature).count() == 1
+ assert db.session.query(model.PostFavorite).count() == 1
+ assert db.session.query(model.Comment).count() == 1
+ assert db.session.query(model.CommentScore).count() == 1
+ assert db.session.query(model.Snapshot).count() == 1
db.session.delete(user)
db.session.commit()
assert not db.session.dirty
- assert db.session.query(db.User).count() == 0
- assert db.session.query(db.Post).count() == 1
- assert db.session.query(db.Post)[0].user is None
- assert db.session.query(db.PostScore).count() == 0
- assert db.session.query(db.PostFeature).count() == 0
- assert db.session.query(db.PostFavorite).count() == 0
- assert db.session.query(db.Comment).count() == 1
- assert db.session.query(db.Comment)[0].user is None
- assert db.session.query(db.CommentScore).count() == 0
- assert db.session.query(db.Snapshot).count() == 1
- assert db.session.query(db.Snapshot)[0].user is None
+ assert db.session.query(model.User).count() == 0
+ assert db.session.query(model.Post).count() == 1
+ assert db.session.query(model.Post)[0].user is None
+ assert db.session.query(model.PostScore).count() == 0
+ assert db.session.query(model.PostFeature).count() == 0
+ assert db.session.query(model.PostFavorite).count() == 0
+ assert db.session.query(model.Comment).count() == 1
+ assert db.session.query(model.Comment)[0].user is None
+ assert db.session.query(model.CommentScore).count() == 0
+ assert db.session.query(model.Snapshot).count() == 1
+ assert db.session.query(model.Snapshot)[0].user is None
diff --git a/server/szurubooru/tests/rest/test_context.py b/server/szurubooru/tests/rest/test_context.py
index 7380a85..e112ebb 100644
--- a/server/szurubooru/tests/rest/test_context.py
+++ b/server/szurubooru/tests/rest/test_context.py
@@ -8,13 +8,14 @@ from szurubooru.func import net
def test_has_param():
ctx = rest.Context(method=None, url=None, params={'key': 'value'})
assert ctx.has_param('key')
- assert not ctx.has_param('key2')
+ assert not ctx.has_param('non-existing')
def test_get_file():
ctx = rest.Context(method=None, url=None, files={'key': b'content'})
assert ctx.get_file('key') == b'content'
- assert ctx.get_file('key2') is None
+ with pytest.raises(errors.ValidationError):
+ ctx.get_file('non-existing')
def test_get_file_from_url():
@@ -23,30 +24,33 @@ def test_get_file_from_url():
ctx = rest.Context(
method=None, url=None, params={'keyUrl': 'example.com'})
assert ctx.get_file('key') == b'content'
- assert ctx.get_file('key2') is None
net.download.assert_called_once_with('example.com')
+ with pytest.raises(errors.ValidationError):
+ assert ctx.get_file('non-existing')
def test_getting_list_parameter():
ctx = rest.Context(
- method=None, url=None, params={'key': 'value', 'list': list('123')})
+ method=None,
+ url=None,
+ params={'key': 'value', 'list': ['1', '2', '3']})
assert ctx.get_param_as_list('key') == ['value']
- assert ctx.get_param_as_list('key2') is None
- assert ctx.get_param_as_list('key2', default=['def']) == ['def']
assert ctx.get_param_as_list('list') == ['1', '2', '3']
with pytest.raises(errors.ValidationError):
- ctx.get_param_as_list('key2', required=True)
+ ctx.get_param_as_list('non-existing')
+ assert ctx.get_param_as_list('non-existing', default=['def']) == ['def']
def test_getting_string_parameter():
ctx = rest.Context(
- method=None, url=None, params={'key': 'value', 'list': list('123')})
+ method=None,
+ url=None,
+ params={'key': 'value', 'list': ['1', '2', '3']})
assert ctx.get_param_as_string('key') == 'value'
- assert ctx.get_param_as_string('key2') is None
- assert ctx.get_param_as_string('key2', default='def') == 'def'
assert ctx.get_param_as_string('list') == '1,2,3'
with pytest.raises(errors.ValidationError):
- ctx.get_param_as_string('key2', required=True)
+ ctx.get_param_as_string('non-existing')
+ assert ctx.get_param_as_string('non-existing', default='x') == 'x'
def test_getting_int_parameter():
@@ -55,12 +59,11 @@ def test_getting_int_parameter():
url=None,
params={'key': '50', 'err': 'invalid', 'list': [1, 2, 3]})
assert ctx.get_param_as_int('key') == 50
- assert ctx.get_param_as_int('key2') is None
- assert ctx.get_param_as_int('key2', default=5) == 5
with pytest.raises(errors.ValidationError):
ctx.get_param_as_int('list')
with pytest.raises(errors.ValidationError):
- ctx.get_param_as_int('key2', required=True)
+ ctx.get_param_as_int('non-existing')
+ assert ctx.get_param_as_int('non-existing', default=5) == 5
with pytest.raises(errors.ValidationError):
ctx.get_param_as_int('err')
with pytest.raises(errors.ValidationError):
@@ -102,7 +105,6 @@ def test_getting_bool_parameter():
test(['1', '2'])
ctx = rest.Context(method=None, url=None)
- assert ctx.get_param_as_bool('non-existing') is None
- assert ctx.get_param_as_bool('non-existing', default=True) is True
with pytest.raises(errors.ValidationError):
- assert ctx.get_param_as_bool('non-existing', required=True) is None
+ ctx.get_param_as_bool('non-existing')
+ assert ctx.get_param_as_bool('non-existing', default=True) is True
diff --git a/server/szurubooru/tests/search/configs/test_post_search_config.py b/server/szurubooru/tests/search/configs/test_post_search_config.py
index d579677..945a5e4 100644
--- a/server/szurubooru/tests/search/configs/test_post_search_config.py
+++ b/server/szurubooru/tests/search/configs/test_post_search_config.py
@@ -1,13 +1,13 @@
# pylint: disable=redefined-outer-name
from datetime import datetime
import pytest
-from szurubooru import db, errors, search
+from szurubooru import db, model, errors, search
@pytest.fixture
def fav_factory(user_factory):
def factory(post, user=None):
- return db.PostFavorite(
+ return model.PostFavorite(
post=post,
user=user or user_factory(),
time=datetime.utcnow())
@@ -17,7 +17,7 @@ def fav_factory(user_factory):
@pytest.fixture
def score_factory(user_factory):
def factory(post, user=None, score=1):
- return db.PostScore(
+ return model.PostScore(
post=post,
user=user or user_factory(),
time=datetime.utcnow(),
@@ -28,7 +28,7 @@ def score_factory(user_factory):
@pytest.fixture
def note_factory():
def factory():
- return db.PostNote(polygon='...', text='...')
+ return model.PostNote(polygon='...', text='...')
return factory
@@ -36,11 +36,11 @@ def note_factory():
def feature_factory(user_factory):
def factory(post=None):
if post:
- return db.PostFeature(
+ return model.PostFeature(
time=datetime.utcnow(),
user=user_factory(),
post=post)
- return db.PostFeature(
+ return model.PostFeature(
time=datetime.utcnow(), user=user_factory())
return factory
@@ -123,7 +123,7 @@ def test_filter_by_score(
post3 = post_factory(id=3)
for post in [post1, post2, post3]:
db.session.add(
- db.PostScore(
+ model.PostScore(
score=post.post_id,
time=datetime.utcnow(),
post=post,
@@ -332,10 +332,10 @@ def test_filter_by_type(
post2 = post_factory(id=2)
post3 = post_factory(id=3)
post4 = post_factory(id=4)
- post1.type = db.Post.TYPE_IMAGE
- post2.type = db.Post.TYPE_ANIMATION
- post3.type = db.Post.TYPE_VIDEO
- post4.type = db.Post.TYPE_FLASH
+ post1.type = model.Post.TYPE_IMAGE
+ post2.type = model.Post.TYPE_ANIMATION
+ post3.type = model.Post.TYPE_VIDEO
+ post4.type = model.Post.TYPE_FLASH
db.session.add_all([post1, post2, post3, post4])
db.session.flush()
verify_unpaged(input, expected_post_ids)
@@ -352,9 +352,9 @@ def test_filter_by_safety(
post1 = post_factory(id=1)
post2 = post_factory(id=2)
post3 = post_factory(id=3)
- post1.safety = db.Post.SAFETY_SAFE
- post2.safety = db.Post.SAFETY_SKETCHY
- post3.safety = db.Post.SAFETY_UNSAFE
+ post1.safety = model.Post.SAFETY_SAFE
+ post2.safety = model.Post.SAFETY_SKETCHY
+ post3.safety = model.Post.SAFETY_UNSAFE
db.session.add_all([post1, post2, post3])
db.session.flush()
verify_unpaged(input, expected_post_ids)

© 2015 - 2026 Jakob L. Kreuze