예제 #1
0
 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')
예제 #2
0
 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')
예제 #3
0
 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')
예제 #4
0
 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')
예제 #5
0
 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')
예제 #6
0
 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')
예제 #7
0
 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')
예제 #8
0
 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')
예제 #9
0
 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')
예제 #10
0
 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')
예제 #11
0
 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')