complet modif for new API

This commit is contained in:
Olivier Demah
2015-02-08 00:06:55 +01:00
parent 70ce7bacd1
commit 372b602e39
3 changed files with 152 additions and 52 deletions

View File

@@ -235,7 +235,7 @@ class Wallabag(object):
url = '/api/entries/{entry}/tags.{ext}'.format(entry=entry, ext=self.format)
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}
@@ -244,9 +244,11 @@ class Wallabag(object):
:param token: the token that identified the user to access the API
: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)
return self.query(url, params, method="post")
@@ -262,8 +264,8 @@ class Wallabag(object):
:param tag: string The Tag
:return data related to the ext
"""
url = '/api/entries/{entry}/tags/{tag}.{ext}'.format(entry=entry, ext=self.format)
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")
def get_tags(self, token):

View File

@@ -8,36 +8,90 @@ class TestWallabag(unittest.TestCase):
def setUp(self):
self.host = "http://localhost:5000"
self.api_key = '12334567890'
self.user = 'foxmask'
def test_get(self):
w = Wallabag(self.host).get('ABCD', self.user)
self.assertIsInstance(w, dict)
self.user_agent = 'WallabagPython/1.0 +https://github.com/foxmask/wallabag-api'
self.format = 'json'
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)
def test_get_entry(self):
w = Wallabag(self.host).get_entry('ABCD', self.user, 1)
self.assertTrue(w, str)
def test_post_entries(self):
title = 'foobar title'
url = ['http://foobar.com/', 'http://barfoo.com/']
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)
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):
entry = []
entry.append('fourth content')
entry.append('fifth content')
w = Wallabag(self.host).patch_entries('ABCD', self.user, entry)
entry = 1
params = {'title': '',
'archive': 0,
'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)
def test_delete_entry(self):
def test_delete_entries(self):
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)
if __name__ == '__main__':

View File

@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
__author__ = 'foxmask'
import json
from flask import Flask, request
from flask import Flask
"""
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.route('/api/u/<user>/entries.json', methods=['GET'])
def get(user):
@app.route('/api/entries.json', methods=['GET'])
def get_entries():
my_data = dict()
if user == 'foxmask':
my_data['entry'] = 'first 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>/entries.json', methods=['GET'])
def get_entries(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>/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()
if user == 'foxmask' and entry == 1:
if entry == 1:
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):
if user == 'foxmask':
@app.route('/api/entries/<int:entry>.json', methods=['PATCH'])
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)
else:
return json.dumps(False)
@app.route('/api/u/<user>/entries.json', methods=['PATCH'])
def patch_entries(user):
if user == 'foxmask':
@app.route('/api/entries/<int:entry>.json', methods=['DELETE'])
def delete_entries(entry):
if entry == 1:
return json.dumps(True)
else:
return json.dumps(False)
@app.route('/api/u/<user>/entry/<int:entry>', methods=['DELETE'])
def delete_entry(user, entry):
if user == 'foxmask' and entry == 1:
return json.dumps(True)
else:
return json.dumps(False)
@app.route('/api/entries/<int:entry>/tags.json', methods=['GET'])
def get_entry_tags(entry):
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.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__':
app.run(debug=True)