diff options
| author | rr- | 2016-05-01 20:15:28 +0200 |
|---|---|---|
| committer | rr- | 2016-05-02 00:07:33 +0200 |
| commit | 067e438b8cf0483c12ecca4c2d5da3279f477f94 (patch) | |
| tree | 3e6d15d348aa6eefa5a5355f907902a83934a8a4 /server | |
| parent | ce095816d99acdcb642713719c775d463d238a91 (diff) | |
server/posts: add hasCustomThumbnail to post info
Diffstat (limited to 'server')
| -rw-r--r-- | server/szurubooru/func/files.py | 3 | ||||
| -rw-r--r-- | server/szurubooru/func/posts.py | 1 | ||||
| -rw-r--r-- | server/szurubooru/tests/api/test_comment_creating.py | 4 | ||||
| -rw-r--r-- | server/szurubooru/tests/api/test_comment_rating.py | 4 | ||||
| -rw-r--r-- | server/szurubooru/tests/api/test_comment_retrieving.py | 4 | ||||
| -rw-r--r-- | server/szurubooru/tests/api/test_comment_updating.py | 4 | ||||
| -rw-r--r-- | server/szurubooru/tests/api/test_post_favoriting.py | 4 | ||||
| -rw-r--r-- | server/szurubooru/tests/api/test_post_featuring.py | 4 | ||||
| -rw-r--r-- | server/szurubooru/tests/api/test_post_rating.py | 4 | ||||
| -rw-r--r-- | server/szurubooru/tests/api/test_post_retrieving.py | 4 | ||||
| -rw-r--r-- | server/szurubooru/tests/func/test_posts.py | 4 |
11 files changed, 31 insertions, 9 deletions
diff --git a/server/szurubooru/func/files.py b/server/szurubooru/func/files.py index 2a0217b..f520932 100644 --- a/server/szurubooru/func/files.py +++ b/server/szurubooru/func/files.py @@ -9,6 +9,9 @@ def delete(path): if os.path.exists(full_path): os.unlink(full_path) +def has(path): + return os.path.exists(_get_full_path(path)) + def get(path): full_path = _get_full_path(path) if not os.path.exists(full_path): diff --git a/server/szurubooru/func/posts.py b/server/szurubooru/func/posts.py index b79c117..e12f30d 100644 --- a/server/szurubooru/func/posts.py +++ b/server/szurubooru/func/posts.py @@ -85,6 +85,7 @@ def serialize_post(post, authenticated_user): 'lastFeatureTime': post.last_feature_time, 'favoritedBy': [users.serialize_user(rel.user, authenticated_user) \ for rel in post.favorited_by], + 'hasCustomThumbnail': files.has(get_post_thumbnail_backup_path(post)), } if authenticated_user: diff --git a/server/szurubooru/tests/api/test_comment_creating.py b/server/szurubooru/tests/api/test_comment_creating.py index 218239c..ccb944d 100644 --- a/server/szurubooru/tests/api/test_comment_creating.py +++ b/server/szurubooru/tests/api/test_comment_creating.py @@ -4,8 +4,10 @@ from szurubooru import api, db, errors from szurubooru.func import util, posts @pytest.fixture -def test_ctx(config_injector, context_factory, post_factory, user_factory): +def test_ctx( + tmpdir, config_injector, context_factory, post_factory, user_factory): config_injector({ + 'data_dir': str(tmpdir), 'data_url': 'http://example.com', 'ranks': ['anonymous', 'regular_user'], 'rank_names': {'anonymous': 'Peasant', 'regular_user': 'Lord'}, diff --git a/server/szurubooru/tests/api/test_comment_rating.py b/server/szurubooru/tests/api/test_comment_rating.py index 7d10700..28c4908 100644 --- a/server/szurubooru/tests/api/test_comment_rating.py +++ b/server/szurubooru/tests/api/test_comment_rating.py @@ -4,8 +4,10 @@ from szurubooru import api, db, errors from szurubooru.func import util, comments, scores @pytest.fixture -def test_ctx(config_injector, context_factory, user_factory, comment_factory): +def test_ctx( + tmpdir, config_injector, context_factory, user_factory, comment_factory): config_injector({ + 'data_dir': str(tmpdir), 'data_url': 'http://example.com', 'ranks': ['anonymous', 'regular_user', 'mod'], 'rank_names': {'anonymous': 'Peasant', 'regular_user': 'Lord'}, diff --git a/server/szurubooru/tests/api/test_comment_retrieving.py b/server/szurubooru/tests/api/test_comment_retrieving.py index b0011b6..f0a2f74 100644 --- a/server/szurubooru/tests/api/test_comment_retrieving.py +++ b/server/szurubooru/tests/api/test_comment_retrieving.py @@ -4,8 +4,10 @@ from szurubooru import api, db, errors from szurubooru.func import util, comments @pytest.fixture -def test_ctx(context_factory, config_injector, user_factory, comment_factory): +def test_ctx( + tmpdir, context_factory, config_injector, user_factory, comment_factory): config_injector({ + 'data_dir': str(tmpdir), 'data_url': 'http://example.com', 'ranks': ['anonymous', 'regular_user', 'mod', 'admin'], 'rank_names': {'regular_user': 'Peasant'}, diff --git a/server/szurubooru/tests/api/test_comment_updating.py b/server/szurubooru/tests/api/test_comment_updating.py index 08ade5c..16b2563 100644 --- a/server/szurubooru/tests/api/test_comment_updating.py +++ b/server/szurubooru/tests/api/test_comment_updating.py @@ -4,8 +4,10 @@ from szurubooru import api, db, errors from szurubooru.func import util, comments @pytest.fixture -def test_ctx(config_injector, context_factory, user_factory, comment_factory): +def test_ctx( + tmpdir, config_injector, context_factory, user_factory, comment_factory): config_injector({ + 'data_dir': str(tmpdir), 'data_url': 'http://example.com', 'ranks': ['anonymous', 'regular_user', 'mod'], 'rank_names': {'anonymous': 'Peasant', 'regular_user': 'Lord', 'mod': 'King'}, diff --git a/server/szurubooru/tests/api/test_post_favoriting.py b/server/szurubooru/tests/api/test_post_favoriting.py index e5e627d..d411bf0 100644 --- a/server/szurubooru/tests/api/test_post_favoriting.py +++ b/server/szurubooru/tests/api/test_post_favoriting.py @@ -4,8 +4,10 @@ from szurubooru import api, db, errors from szurubooru.func import util, posts @pytest.fixture -def test_ctx(config_injector, context_factory, user_factory, post_factory): +def test_ctx( + tmpdir, config_injector, context_factory, user_factory, post_factory): config_injector({ + 'data_dir': str(tmpdir), 'data_url': 'http://example.com', 'ranks': ['anonymous', 'regular_user', 'mod'], 'rank_names': {'anonymous': 'Peasant', 'regular_user': 'Lord'}, diff --git a/server/szurubooru/tests/api/test_post_featuring.py b/server/szurubooru/tests/api/test_post_featuring.py index 8a030f3..cd8e6d6 100644 --- a/server/szurubooru/tests/api/test_post_featuring.py +++ b/server/szurubooru/tests/api/test_post_featuring.py @@ -4,8 +4,10 @@ from szurubooru import api, db, errors from szurubooru.func import util, posts @pytest.fixture -def test_ctx(context_factory, config_injector, user_factory, post_factory): +def test_ctx( + tmpdir, context_factory, config_injector, user_factory, post_factory): config_injector({ + 'data_dir': str(tmpdir), 'data_url': 'http://example.com', 'privileges': { 'posts:feature': 'regular_user', diff --git a/server/szurubooru/tests/api/test_post_rating.py b/server/szurubooru/tests/api/test_post_rating.py index def80fa..03873c1 100644 --- a/server/szurubooru/tests/api/test_post_rating.py +++ b/server/szurubooru/tests/api/test_post_rating.py @@ -3,8 +3,10 @@ from szurubooru import api, db, errors from szurubooru.func import util, posts, scores @pytest.fixture -def test_ctx(config_injector, context_factory, user_factory, post_factory): +def test_ctx( + tmpdir, config_injector, context_factory, user_factory, post_factory): config_injector({ + 'data_dir': str(tmpdir), 'data_url': 'http://example.com', 'ranks': ['anonymous', 'regular_user'], 'rank_names': {'anonymous': 'Peasant', 'regular_user': 'Lord'}, diff --git a/server/szurubooru/tests/api/test_post_retrieving.py b/server/szurubooru/tests/api/test_post_retrieving.py index ec39a9a..369fa79 100644 --- a/server/szurubooru/tests/api/test_post_retrieving.py +++ b/server/szurubooru/tests/api/test_post_retrieving.py @@ -4,8 +4,10 @@ from szurubooru import api, db, errors from szurubooru.func import util, posts @pytest.fixture -def test_ctx(context_factory, config_injector, user_factory, post_factory): +def test_ctx( + tmpdir, context_factory, config_injector, user_factory, post_factory): config_injector({ + 'data_dir': str(tmpdir), 'data_url': 'http://example.com', 'privileges': { 'posts:list': 'regular_user', diff --git a/server/szurubooru/tests/func/test_posts.py b/server/szurubooru/tests/func/test_posts.py index c0c458c..f24c1f6 100644 --- a/server/szurubooru/tests/func/test_posts.py +++ b/server/szurubooru/tests/func/test_posts.py @@ -65,7 +65,8 @@ def test_serialize_empty_post(): assert posts.serialize_post(None, None) is None def test_serialize_post(post_factory, user_factory, tag_factory): - with unittest.mock.patch('szurubooru.func.users.serialize_user'): + with unittest.mock.patch('szurubooru.func.users.serialize_user'), \ + unittest.mock.patch('szurubooru.func.posts.files.has', return_value=True): users.serialize_user.side_effect = lambda user, auth_user: user.name auth_user = user_factory(name='auth user') @@ -140,6 +141,7 @@ def test_serialize_post(post_factory, user_factory, tag_factory): 'featureCount': 1, 'lastFeatureTime': datetime.datetime(1999, 1, 1), 'favoritedBy': ['fav1'], + 'hasCustomThumbnail': True, } def test_serialize_post_with_details(post_factory, comment_factory, user_factory): |