def test_add_new_sector(self): import json from ..authentication import generate_token self.loginAsPortalOwner() country = self.portal.sectors['nl'] country.invokeFactory('euphorie.countrymanager', 'manager', login='******', password=u'manager') browser = Browser() browser.handleErrors = False browser.raiseHttpErrors = False browser.addHeader('X-Euphorie-Token', generate_token(country['manager'])) browser.post('http://nohost/plone/api/countries/nl/sectors', json.dumps({'title': u'IT development', 'login': '******', 'contact': { 'name': u'Jony Smith', 'email': u'*****@*****.**', }, 'password': u'cobol-for-the-win'})) response = json.loads(browser.contents) self.assertEqual(response['type'], 'sector') self.assertEqual(response['id'], 'it-development') self.assertTrue('it-development' in country) sector = country['it-development'] self.assertEqual(sector.title, u'IT development') self.assertEqual(sector.login, 'it') self.assertEqual(sector.password, u'cobol-for-the-win')
def test_add_new_sector(self): import json from ..authentication import generate_token self.loginAsPortalOwner() country = self.portal.sectors['nl'] country.invokeFactory('euphorie.countrymanager', 'manager', login='******', password=u'manager') browser = Browser() browser.handleErrors = False browser.raiseHttpErrors = False browser.addHeader('X-Euphorie-Token', generate_token(country['manager'])) browser.post('http://nohost/plone/api/countries/nl/sectors', json.dumps({'title': u'IT development', 'login': '******', 'contact': { 'name': 'Jony Smith', 'email': '*****@*****.**', }, 'password': u'cobol-for-the-win'})) response = json.loads(browser.contents) self.assertEqual(response['type'], 'sector') self.assertEqual(response['id'], 'it-development') self.assertTrue('it-development' in country) sector = country['it-development'] self.assertEqual(sector.title, u'IT development') self.assertEqual(sector.login, 'it') self.assertEqual(sector.password, u'cobol-for-the-win')
def test_bad_login(self): browser = Browser() browser.raiseHttpErrors = False browser.post('http://nohost/plone/api/authenticate', '{"login": "******", "password": "******"}') self.assertTrue(browser.headers['Status'].startswith('403')) self.assertEqual(browser.headers['Content-Type'], 'application/json')
def test_authentication_failure(self): import json browser = Browser() browser.raiseHttpErrors = False browser.post('http://nohost/plone/client/api/users/authenticate', '{"login": "******", "password": "******"}') self.assertTrue(browser.headers['Status'].startswith('403')) self.assertEqual(browser.headers['Content-Type'], 'application/json') response = json.loads(browser.contents) self.assertEqual(response['type'], 'error')
def test_authentication_failure(self): import json browser = Browser() browser.raiseHttpErrors = False browser.post('http://nohost/plone/client/api/users/authenticate', '{"login": "******", "password": "******"}') self.assertTrue(browser.headers['Status'].startswith('403')) self.assertEqual(browser.headers['Content-Type'], 'application/json') response = json.loads(browser.contents) self.assertEqual(response['type'], 'error')
def test_authentication_success(self): import json from z3c.saconfig import Session from euphorie.client.model import Account Session.add(Account(loginname='john', password=u'jane')) browser = Browser() browser.handleErrors = False browser.post('http://nohost/plone/client/api/users/authenticate', '{"login": "******", "password": "******"}') response = json.loads(browser.contents) self.assertEqual(response['type'], 'user')
def test_authentication_success(self): import json from z3c.saconfig import Session from euphorie.client.model import Account Session.add(Account(loginname='john', password=u'jane')) browser = Browser() browser.handleErrors = False browser.post('http://nohost/plone/client/api/users/authenticate', '{"login": "******", "password": "******"}') response = json.loads(browser.contents) self.assertEqual(response['type'], 'user')
def test_valid_login(self): import json from ...tests.utils import createSector createSector(self.portal, id='my-sector', country='nl', login='******', password=u'secret') browser = Browser() browser.post('http://nohost/plone/api/authenticate', '{"login": "******", "password": "******"}') response = json.loads(browser.contents) self.assertEqual(set(response), set(['token', 'title', 'login', 'url'])) self.assertEqual( response['url'], 'http://nohost/plone/api/countries/nl/sectors/my-sector')
def test_browser_sector_can_not_modify_manager(self): import mock import json from ...tests.utils import createSector from ..authentication import generate_token self.loginAsPortalOwner() self.portal.sectors['nl'].invokeFactory('euphorie.countrymanager', 'manager') sector = createSector(self.portal, login='******', password=u'sector') browser = Browser() browser.raiseHttpErrors = False browser.addHeader('X-Euphorie-Token', generate_token(sector)) with mock.patch('mechanize._opener.Request.get_method', return_value='PUT'): browser.post('http://nohost/plone/api/countries/nl/managers/manager', '{"title": "Hacked!"}') response = json.loads(browser.contents) self.assertEqual(response['type'], 'error')
def test_browser_sector_can_not_modify_manager(self): import mock import json from ...tests.utils import createSector from ..authentication import generate_token self.loginAsPortalOwner() self.portal.sectors['nl'].invokeFactory('euphorie.countrymanager', 'manager') sector = createSector(self.portal, login='******', password=u'sector') browser = Browser() browser.raiseHttpErrors = False browser.addHeader('X-Euphorie-Token', generate_token(sector)) with mock.patch('mechanize._opener.Request.get_method', return_value='PUT'): browser.post( 'http://nohost/plone/api/countries/nl/managers/manager', '{"title": "Hacked!"}') response = json.loads(browser.contents) self.assertEqual(response['type'], 'error')
def test_add_new_manager(self): import json from ..authentication import generate_token self.loginAsPortalOwner() country = self.portal.sectors['nl'] country.invokeFactory('euphorie.countrymanager', 'manager', login='******', password=u'manager') browser = Browser() browser.handleErrors = False browser.raiseHttpErrors = False browser.addHeader('X-Euphorie-Token', generate_token(country['manager'])) browser.post('http://nohost/plone/api/countries/nl/managers', json.dumps({'title': u'Jane Doe', 'login': '******', 'password': u'johny'})) response = json.loads(browser.contents) self.assertEqual(response['type'], 'countrymanager') self.assertEqual(response['id'], 'jane-doe') self.assertTrue('jane-doe' in country) jane = country['jane-doe'] self.assertEqual(jane.title, u'Jane Doe') self.assertEqual(jane.login, 'jane') self.assertEqual(jane.password, u'johny')