complet modif for new API
This commit is contained in:
@@ -235,7 +235,7 @@ class Wallabag(object):
|
|||||||
url = '/api/entries/{entry}/tags.{ext}'.format(entry=entry, ext=self.format)
|
url = '/api/entries/{entry}/tags.{ext}'.format(entry=entry, ext=self.format)
|
||||||
return self.query(url, params, method="get")
|
return self.query(url, params, method="get")
|
||||||
|
|
||||||
def post_entry_tags(self, token, entry):
|
def post_entry_tags(self, token, entry, tags):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
POST /api/entries/{entry}/tags.{_format}
|
POST /api/entries/{entry}/tags.{_format}
|
||||||
@@ -244,9 +244,11 @@ class Wallabag(object):
|
|||||||
|
|
||||||
:param token: the token that identified the user to access the API
|
:param token: the token that identified the user to access the API
|
||||||
:param entry: \w+ an integer The Entry ID
|
:param entry: \w+ an integer The Entry ID
|
||||||
:return data related to the ext
|
:return result
|
||||||
"""
|
"""
|
||||||
params = {'token': token}
|
params = {'token': token, 'tags': []}
|
||||||
|
if isinstance(tags, list):
|
||||||
|
params['tags'] = tags
|
||||||
url = '/api/entries/{entry}/tags.{ext}'.format(entry=entry, ext=self.format)
|
url = '/api/entries/{entry}/tags.{ext}'.format(entry=entry, ext=self.format)
|
||||||
return self.query(url, params, method="post")
|
return self.query(url, params, method="post")
|
||||||
|
|
||||||
@@ -262,8 +264,8 @@ class Wallabag(object):
|
|||||||
:param tag: string The Tag
|
:param tag: string The Tag
|
||||||
:return data related to the ext
|
:return data related to the ext
|
||||||
"""
|
"""
|
||||||
url = '/api/entries/{entry}/tags/{tag}.{ext}'.format(entry=entry, ext=self.format)
|
|
||||||
params = {'token': token}
|
params = {'token': token}
|
||||||
|
url = '/api/entries/{entry}/tags/{tag}.{ext}'.format(entry=entry, tag=tag, ext=self.format)
|
||||||
return self.query(url, params, method="delete")
|
return self.query(url, params, method="delete")
|
||||||
|
|
||||||
def get_tags(self, token):
|
def get_tags(self, token):
|
||||||
|
|||||||
@@ -8,36 +8,90 @@ class TestWallabag(unittest.TestCase):
|
|||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.host = "http://localhost:5000"
|
self.host = "http://localhost:5000"
|
||||||
self.api_key = '12334567890'
|
self.api_key = '12334567890'
|
||||||
self.user = 'foxmask'
|
self.user_agent = 'WallabagPython/1.0 +https://github.com/foxmask/wallabag-api'
|
||||||
|
self.format = 'json'
|
||||||
def test_get(self):
|
|
||||||
w = Wallabag(self.host).get('ABCD', self.user)
|
|
||||||
self.assertIsInstance(w, dict)
|
|
||||||
|
|
||||||
def test_get_entries(self):
|
def test_get_entries(self):
|
||||||
w = Wallabag(self.host).get('ABCD', self.user)
|
params = {'archive': 0,
|
||||||
|
'star': 0,
|
||||||
|
'delete': 0,
|
||||||
|
'sort': 'created',
|
||||||
|
'order': 'desc',
|
||||||
|
'page': 1,
|
||||||
|
'perPage': 30,
|
||||||
|
'tags': []}
|
||||||
|
w = Wallabag(self.host).get_entries('ABCD', **params)
|
||||||
self.assertIsInstance(w, dict)
|
self.assertIsInstance(w, dict)
|
||||||
|
|
||||||
def test_get_entry(self):
|
|
||||||
w = Wallabag(self.host).get_entry('ABCD', self.user, 1)
|
|
||||||
self.assertTrue(w, str)
|
|
||||||
|
|
||||||
def test_post_entries(self):
|
def test_post_entries(self):
|
||||||
|
title = 'foobar title'
|
||||||
url = ['http://foobar.com/', 'http://barfoo.com/']
|
url = ['http://foobar.com/', 'http://barfoo.com/']
|
||||||
tags = ['foo', 'bar']
|
tags = ['foo', 'bar']
|
||||||
w = Wallabag(self.host).post_entries('ABCD', self.user, url, tags)
|
self.assertTrue(isinstance(title, str), True)
|
||||||
|
self.assertTrue(isinstance(tags, list), True)
|
||||||
|
w = Wallabag(self.host).post_entries('ABCD', url, title, tags)
|
||||||
self.assertTrue(w, True)
|
self.assertTrue(w, True)
|
||||||
|
|
||||||
|
def test_get_entry(self):
|
||||||
|
entry = 1
|
||||||
|
self.assertTrue(isinstance(entry, int), True)
|
||||||
|
w = Wallabag(self.host).get_entry('ABCD', entry)
|
||||||
|
self.assertTrue(w, str)
|
||||||
|
|
||||||
def test_patch_entries(self):
|
def test_patch_entries(self):
|
||||||
entry = []
|
entry = 1
|
||||||
entry.append('fourth content')
|
params = {'title': '',
|
||||||
entry.append('fifth content')
|
'archive': 0,
|
||||||
w = Wallabag(self.host).patch_entries('ABCD', self.user, entry)
|
'tags': [],
|
||||||
|
'star': 0,
|
||||||
|
'delete': 0}
|
||||||
|
self.assertTrue(isinstance(entry, int), True)
|
||||||
|
self.assertTrue(isinstance(params, dict), True)
|
||||||
|
w = Wallabag(self.host).patch_entries('ABCD', entry, **params)
|
||||||
self.assertTrue(w, True)
|
self.assertTrue(w, True)
|
||||||
|
|
||||||
def test_delete_entry(self):
|
def test_delete_entries(self):
|
||||||
entry = 1
|
entry = 1
|
||||||
w = Wallabag(self.host).delete_entry('ABCD', self.user, entry)
|
self.assertTrue(isinstance(entry, int), True)
|
||||||
|
w = Wallabag(self.host).delete_entries('ABCD', entry)
|
||||||
|
self.assertTrue(w, True)
|
||||||
|
|
||||||
|
def test_get_entry_tags(self):
|
||||||
|
entry = 1
|
||||||
|
self.assertTrue(isinstance(entry, int), True)
|
||||||
|
w = Wallabag(self.host).get_entry_tags('ABCD', entry)
|
||||||
|
self.assertIsInstance(w, list)
|
||||||
|
|
||||||
|
def test_post_entry_tags(self):
|
||||||
|
entry = 1
|
||||||
|
self.assertTrue(isinstance(entry, int), True)
|
||||||
|
tags = ['foo', 'bar']
|
||||||
|
self.assertTrue(isinstance(tags, list), True)
|
||||||
|
w = Wallabag(self.host).post_entry_tags('ABCD', entry, tags)
|
||||||
|
self.assertTrue(w, True)
|
||||||
|
|
||||||
|
def test_delete_entry_tag(self):
|
||||||
|
entry = 1
|
||||||
|
tag = 'tag1'
|
||||||
|
self.assertTrue(isinstance(entry, int), True)
|
||||||
|
self.assertTrue(isinstance(tag, str), True)
|
||||||
|
w = Wallabag(self.host).delete_entry_tag('ABCD', entry, tag)
|
||||||
|
self.assertTrue(w, True)
|
||||||
|
|
||||||
|
def test_get_tags(self):
|
||||||
|
w = Wallabag(self.host).get_tags('ABCD')
|
||||||
|
self.assertTrue(w, True)
|
||||||
|
|
||||||
|
def test_get_tag(self):
|
||||||
|
tag = 'tag1'
|
||||||
|
self.assertTrue(isinstance(tag, str), True)
|
||||||
|
w = Wallabag(self.host).get_tag('ABCD', tag)
|
||||||
|
self.assertTrue(w, True)
|
||||||
|
|
||||||
|
def test_delete_tag(self):
|
||||||
|
tag = 'tag1'
|
||||||
|
self.assertTrue(isinstance(tag, str), True)
|
||||||
|
w = Wallabag(self.host).delete_tag('ABCD', tag)
|
||||||
self.assertTrue(w, True)
|
self.assertTrue(w, True)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
104
wallabag_mock.py
104
wallabag_mock.py
@@ -1,7 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
__author__ = 'foxmask'
|
__author__ = 'foxmask'
|
||||||
import json
|
import json
|
||||||
from flask import Flask, request
|
from flask import Flask
|
||||||
|
|
||||||
"""
|
"""
|
||||||
The main purpose of this script is to replace v2.wallabag.org itself
|
The main purpose of this script is to replace v2.wallabag.org itself
|
||||||
@@ -14,49 +14,93 @@ from flask import Flask, request
|
|||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
@app.route('/api/u/<user>/entries.json', methods=['GET'])
|
|
||||||
def get(user):
|
|
||||||
my_data = dict()
|
|
||||||
if user == 'foxmask':
|
|
||||||
my_data['entry'] = 'first content'
|
|
||||||
my_data['entry'] = 'second content'
|
|
||||||
return json.dumps(my_data,encoding='utf-8')
|
|
||||||
|
|
||||||
@app.route('/api/u/<user>/entries.json', methods=['GET'])
|
@app.route('/api/entries.json', methods=['GET'])
|
||||||
def get_entries(user):
|
def get_entries():
|
||||||
my_data = dict()
|
my_data = dict()
|
||||||
if user == 'foxmask':
|
my_data['entry'] = 'first content'
|
||||||
my_data['entry'] = 'first content'
|
my_data['entry'] = 'second content'
|
||||||
my_data['entry'] = 'second content'
|
return json.dumps(my_data, encoding='utf-8')
|
||||||
return json.dumps(my_data,encoding='utf-8')
|
|
||||||
|
|
||||||
@app.route('/api/u/<user>/entry/<int:entry>', methods=['GET'])
|
|
||||||
def get_entry(user, entry):
|
@app.route('/api/entries.json', methods=['POST'])
|
||||||
|
def post_entries():
|
||||||
|
url = ''
|
||||||
|
title = ''
|
||||||
|
tags = []
|
||||||
|
return json.dumps(True)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/api/entries/<int:entry>.json', methods=['GET'])
|
||||||
|
def get_entry(entry):
|
||||||
my_data = dict()
|
my_data = dict()
|
||||||
if user == 'foxmask' and entry == 1:
|
if entry == 1:
|
||||||
my_data['entry'] = 'third content'
|
my_data['entry'] = 'third content'
|
||||||
return json.dumps(my_data,encoding='utf-8')
|
return json.dumps(my_data, encoding='utf-8')
|
||||||
|
|
||||||
@app.route('/api/u/<user>/entries.json', methods=['POST'])
|
|
||||||
def post_entries(user):
|
@app.route('/api/entries/<int:entry>.json', methods=['PATCH'])
|
||||||
if user == 'foxmask':
|
def patch_entries(entry, **params):
|
||||||
|
entry = 1
|
||||||
|
params = {'title': '',
|
||||||
|
'archive': 0,
|
||||||
|
'tags': [],
|
||||||
|
'star': 0,
|
||||||
|
'delete': 0}
|
||||||
|
|
||||||
|
if entry == 1 and len(params) > 0:
|
||||||
return json.dumps(True)
|
return json.dumps(True)
|
||||||
else:
|
else:
|
||||||
return json.dumps(False)
|
return json.dumps(False)
|
||||||
|
|
||||||
@app.route('/api/u/<user>/entries.json', methods=['PATCH'])
|
|
||||||
def patch_entries(user):
|
@app.route('/api/entries/<int:entry>.json', methods=['DELETE'])
|
||||||
if user == 'foxmask':
|
def delete_entries(entry):
|
||||||
|
if entry == 1:
|
||||||
return json.dumps(True)
|
return json.dumps(True)
|
||||||
else:
|
else:
|
||||||
return json.dumps(False)
|
return json.dumps(False)
|
||||||
|
|
||||||
@app.route('/api/u/<user>/entry/<int:entry>', methods=['DELETE'])
|
|
||||||
def delete_entry(user, entry):
|
@app.route('/api/entries/<int:entry>/tags.json', methods=['GET'])
|
||||||
if user == 'foxmask' and entry == 1:
|
def get_entry_tags(entry):
|
||||||
return json.dumps(True)
|
my_data = dict()
|
||||||
else:
|
if entry == 1:
|
||||||
return json.dumps(False)
|
my_data = ['tag1', 'tag2', 'tag3']
|
||||||
|
return json.dumps(my_data, encoding='utf-8')
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/api/entries/<int:entry>/tags.json', methods=['POST'])
|
||||||
|
def post_entry_tags(entry, **params):
|
||||||
|
my_data = dict()
|
||||||
|
if entry == 1:
|
||||||
|
my_data = ['tag1', 'tag2', 'tag3']
|
||||||
|
return json.dumps(my_data, encoding='utf-8')
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/api/entries/<int:entry>/tags/<tag>.json', methods=['DELETE'])
|
||||||
|
def delete_entry_tag(entry, tag):
|
||||||
|
return json.dumps(entry, tag, encoding='utf-8')
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/api/tags.json', methods=['GET'])
|
||||||
|
def get_tags():
|
||||||
|
my_data = ['tag1', 'tag2', 'tag3']
|
||||||
|
return json.dumps(my_data, encoding='utf-8')
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/api/tags/<tag>.json', methods=['GET'])
|
||||||
|
def get_tag(tag):
|
||||||
|
my_data = 'tag1'
|
||||||
|
return json.dumps(my_data, encoding='utf-8')
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/api/tags/<tag>.json', methods=['DELETE'])
|
||||||
|
def delete_tag(tag):
|
||||||
|
my_data = 'tag1'
|
||||||
|
return json.dumps(my_data, encoding='utf-8')
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app.run(debug=True)
|
app.run(debug=True)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user