def test_next_when_multi_page(self): client = Client('http://localhost:4567', 'master_token123') resources = GenericResourceIterable(client.http_client, { 'resources': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 'pagination': { 'next': { 'active': True, 'qs': 'page=2', }, }, 'slug': '1/resource-slug', }) # 2nd page of resource items (NodeBB pagination). endpoint = 'http://localhost:4567/api/resource/1/resource-slug?page=2' response_body = { 'resources': [11, 12, 13, 14, 15, 16, 17, 18, 19, 20], 'pagination': { 'next': {'active': False}, }, } httpretty.register_uri( httpretty.GET, endpoint, body=json.dumps(response_body), status=200, content_type='application/json' ) self.assertEquals(len([r for r in resources]), 20)
def test_get_page(self): client = Client('http://localhost:4567', 'master_token123') resources = GenericResourceIterable(client.http_client, { 'resource_count': 21, 'currentPage': 1, 'slug': '1/resource-slug', }) page_number = 2 endpoint = 'http://localhost:4567/api/resource/1/resource-slug?page=%d' % page_number response_body = { 'resource_count': 21, 'currentPage': 2, 'slug': '1/resource-slug', } httpretty.register_uri( httpretty.GET, endpoint, body=json.dumps(response_body), status=200, content_type='application/json' ) resources_2 = resources.page(2) self.assertEquals(resources.current_page, 1) self.assertEquals(resources_2.current_page, 2)
def test_get_user_with_username(self): client = Client('http://localhost:4567', 'master_tokenxxx') invalid_json = '{...}' httpretty.register_uri(httpretty.GET, 'http://localhost:4567/test-empty', body=invalid_json, status=200, content_type='application/json') status_code, response = client.http_client.get('/test-empty') self.assertEquals(status_code, 200) self.assertDictEqual(response, {})
def test_get_page_err(self): client = Client('http://localhost:4567', 'master_token123') resources = GenericResourceIterable(client.http_client, { 'resource_count': 21, 'currentPage': 1, 'slug': '1/resource-slug', }) page_number = 2 endpoint = 'http://localhost:4567/api/resource/1/resource-slug?page=%d' % page_number httpretty.register_uri( httpretty.GET, endpoint, body='{"code":"bad-request","message":"..."}', status=408, content_type='application/json' ) self.assertRaises(InvalidPage, resources.page, page_number)
def test_next_http_error(self): client = Client('http://localhost:4567', 'master_token123') resources = GenericResourceIterable(client.http_client, { 'resources': [1, 2, 3, 4, 5], 'pagination': { 'next': { 'active': True, 'qs': 'page=2', }, }, 'slug': '1/resource-slug', }) # 2nd page of resource items (NodeBB pagination) - timeout. endpoint = 'http://localhost:4567/api/resource/1/resource-slug?page=2' httpretty.register_uri( httpretty.GET, endpoint, body='{"code":"bad-request","message":"..."}', status=408, content_type='application/json' ) self.assertEquals(len([r for r in resources]), 5)
def setUp(self): self.client = Client('http://localhost:4567', 'master_token123') self.resources = GenericResource(self.client.http_client)
def test_should_set_bearer_headers(self): client = Client('http://localhost:4567', 'master_tokenxxx') self.assertEquals(client.http_client.headers, {'Authorization': 'Bearer %s' % 'master_tokenxxx'})
def test_should_set_default_admin_uid(self): client = Client('http://localhost:4567', 'master_tokenxxx') self.assertEquals(client.http_client.admin_uid, settings['admin_uid'])
def setUp(self): self.client = Client('http://localhost:4567', 'master_token123')
from __future__ import print_function from pynodebb import Client from token import * import pyotherside client = Client('https://sailfishos.club', token) client.configure(**{'page_size': 20}) def login(user, password): status_code, userInfo = client.users.login(user, password) if not status_code: return False return userInfo def post(title, content, uid, cid): status_code, response = client.topics.create(uid, cid, title, content) if not status_code or status_code != 200: return False return True def getrecent(): status_code, topics = client.topics.get_recent() def listcategory(): status_code, categories = client.categories.list() for category in categories: print(category["cid"], category["name"])