def test_getCategories_HTTPError(self): from collective.flattr.browser.flattr import Flattr mocker = Mocker() view = Flattr(self.portal, self.layer['request']) obj = mocker.patch(view) obj.opener mocker.result(MockOpener('[{"id": "text", "text": "Text"}, {"id": "images", "text": "Images"}]', error=True)) with mocker: ret = view.getCategories() self.failUnless(isinstance(ret, list)) self.assertEquals(len(ret), 0)
def test_getParams(self): from collective.flattr.browser.flattr import Flattr view = Flattr(self.portal, self.layer['request']) ret = view._getParams(u'Hello') self.assertEquals(ret, 'title=Hello&hidden=False') ret = view._getParams(u'Hello', url=u'http://localhost/', description='desc', category='cat', language='de_DE', tags='a,b', patch='patch', hidden=True) self.assertEquals(ret, 'title=Hello&hidden=True&url=http%3A%2F%2Flocalhost%2F&description=desc&category=cat&language=de_DE&tags=a%2Cb&_method=patch')
def test_getCategories(self): from collective.flattr.browser.flattr import Flattr mocker = Mocker() view = Flattr(self.portal, self.layer['request']) obj = mocker.patch(view) obj.opener mocker.result(MockOpener('[{"id": "text", "text": "Text"}, {"id": "images", "text": "Images"}]')) with mocker: ret = view.getCategories() self.failUnless(isinstance(ret, list)) self.assertEquals(len(ret), 2) self.assertEquals(ret[0], {'id': u'text', 'text': u'Text'}) self.assertEquals(ret[1], {'id': u'images', 'text': u'Images'})
def test_getLanguages(self): from collective.flattr.browser.flattr import Flattr mocker = Mocker() view = Flattr(self.portal, self.layer['request']) obj = mocker.patch(view) obj.opener mocker.result(MockOpener('[{"id": "de_DE", "text": "German"}, {"id": "en_US", "text": "English"}]')) with mocker: ret = view.getLanguages() self.failUnless(isinstance(ret, list)) self.assertEquals(len(ret), 2) self.assertEquals(ret[0], {'id': u'de_DE', 'text': u'German'}) self.assertEquals(ret[1], {'id': u'en_US', 'text': u'English'})
def test_updateThing_HTTPError(self): from collective.flattr.browser.flattr import Flattr mocker = Mocker() view = Flattr(self.portal, self.layer['request']) obj = mocker.patch(view) obj.opener mocker.result(MockOpener('{ "message": "ok", "description": "Thing was updated successfully" }', verify_data = lambda x: x.get_full_url().endswith('431547') and x.get_data() == 'title=Hello&hidden=True&description=desc&category=cat&language=de_DE&tags=a%2Cb&_method=patch', error=True)) with mocker: ret = view.updateThing(u'Hello', 431547, description='desc', category='cat', language='de_DE', tags='a,b', hidden=True) self.assertEquals(ret, {})
def test_createThing_HTTPError(self): from collective.flattr.browser.flattr import Flattr mocker = Mocker() view = Flattr(self.portal, self.layer['request']) obj = mocker.patch(view) obj.opener mocker.result(MockOpener('{ "id": 431547, "link": "https://api.flattr.dev/rest/v2/things/431547", "message": "ok", "description": "Thing was created successfully" }', verify_data = lambda x: x.get_data() == 'title=Hello&hidden=True&url=http%3A%2F%2Flocalhost%2F&description=desc&category=cat&language=de_DE&tags=a%2Cb', error=True)) with mocker: ret = view.createThing(u'Hello', url=u'http://localhost/', description='desc', category='cat', language='de_DE', tags='a,b', hidden=True) self.assertEquals(ret, {})
def test_getThing_with_next(self): from collective.flattr.browser.flattr import Flattr mocker = Mocker() view = Flattr(self.portal, self.layer['request']) obj = mocker.patch(view) obj.opener mocker.result(MockOpener('[ { "type": "thing", "resource": "https://api.flattr.dev/rest/v2/things/1", "link": "https://flattr.dev/thing/1", "id": 1 }, { "type": "thing", "resource": "https://api.flattr.dev/rest/v2/things/2", "link": "https://flattr.dev/thing/2", "id": 2} ]', verify_data=lambda x: 'count=30&page=' in x.get_data())) mocker.count(2) # if the same thing is called twice, it is called for the first page # and again for the second page. So there is a result, what means that # there is a next page with mocker: ret = view.getThings() self.failUnless(u'data' in ret) self.failUnless(u'next_page' in ret) self.assertTrue(ret['next_page']) self.assertEquals(ret['data'][0], { "type": "thing", "resource": "https://api.flattr.dev/rest/v2/things/1", "link": "https://flattr.dev/thing/1", "id": 1 }) self.assertEquals(ret['data'][1], { "type": "thing", "resource": "https://api.flattr.dev/rest/v2/things/2", "link": "https://flattr.dev/thing/2", "id": 2})
def test_getThing(self): from collective.flattr.browser.flattr import Flattr mocker = Mocker() view = Flattr(self.portal, self.layer['request']) def test_func(x): return 'count=30&page=' in x.get_data() obj = mocker.patch(view) obj.opener mocker.result(MockOpener('[ { "type": "thing", "resource": "https://api.flattr.dev/rest/v2/things/1", "link": "https://flattr.dev/thing/1", "id": 1 }, { "type": "thing", "resource": "https://api.flattr.dev/rest/v2/things/2", "link": "https://flattr.dev/thing/2", "id": 2} ]', verify_data=test_func)) obj.opener mocker.result(MockOpener('', verify_data=test_func, error=True)) with mocker: ret = view.getThings() self.failUnless(u'data' in ret) self.failUnless(u'next_page' in ret) self.assertFalse(ret['next_page']) self.assertEquals(ret['data'][0], { "type": "thing", "resource": "https://api.flattr.dev/rest/v2/things/1", "link": "https://flattr.dev/thing/1", "id": 1 }) self.assertEquals(ret['data'][1], { "type": "thing", "resource": "https://api.flattr.dev/rest/v2/things/2", "link": "https://flattr.dev/thing/2", "id": 2})