def test_create(self): """ POST /enterprises create enterprise """ user = self.user enterprise = get_valid_enterprise(id=1, name=u"Enterprise") mock = MockUtils.create_mock_response(status_code=201, data=enterprise) with patch('requests.request', mock): (obj, connection) = user.create_child(enterprise) method = MockUtils.get_mock_parameter(mock, 'method') url = MockUtils.get_mock_parameter(mock, 'url') headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(url, 'https://vsd:8443/api/v3_2/enterprises') self.assertEqual(method, 'POST') self.assertEqual( headers['Authorization'], 'XREST dXNlcjo1MWYzMTA0Mi1iMDQ3LTQ4Y2EtYTg4Yi02ODM2ODYwOGUzZGE=') self.assertEqual(headers['X-Nuage-Organization'], 'enterprise') self.assertEqual(headers['Content-Type'], 'application/json') self.assertEqual(connection.response.status_code, 201) self.assertEqual(obj.id, 1) self.assertEqual(obj.name, enterprise.name) self.assertIn(obj, user.enterprises) self.assertIn(enterprise, user.enterprises) user.enterprises.flush()
def test_create(self): """ POST /enterprises create enterprise """ user = self.user enterprise = get_valid_enterprise(id=1, name=u"Enterprise") mock = MockUtils.create_mock_response(status_code=201, data=enterprise) with patch('requests.request', mock): (obj, connection) = user.create_child(enterprise) method = MockUtils.get_mock_parameter(mock, 'method') url = MockUtils.get_mock_parameter(mock, 'url') headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(url, 'https://vsd:8443/api/v3_2/enterprises') self.assertEqual(method, 'POST') self.assertEqual(headers['Authorization'], 'XREST dXNlcjo1MWYzMTA0Mi1iMDQ3LTQ4Y2EtYTg4Yi02ODM2ODYwOGUzZGE=') self.assertEqual(headers['X-Nuage-Organization'], 'enterprise') self.assertEqual(headers['Content-Type'], 'application/json') self.assertEqual(connection.response.status_code, 201) self.assertEqual(obj.id, 1) self.assertEqual(obj.name, enterprise.name) self.assertIn(obj, user.enterprises) self.assertIn(enterprise, user.enterprises) user.enterprises.flush()
def test_count_all(self): """ HEAD /enterprises count all enterprises """ user = self.user headers = {'X-Nuage-Count': 4} mock = MockUtils.create_mock_response(status_code=200, data=None, headers=headers) with patch('requests.request', mock): (fetcher, user, count) = self.user.enterprises.count() method = MockUtils.get_mock_parameter(mock, 'method') url = MockUtils.get_mock_parameter(mock, 'url') headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(url, 'https://vsd:8443/api/v3_2/enterprises') self.assertEqual(method, 'HEAD') self.assertEqual( headers['Authorization'], 'XREST dXNlcjo1MWYzMTA0Mi1iMDQ3LTQ4Y2EtYTg4Yi02ODM2ODYwOGUzZGE=') self.assertEqual(headers['X-Nuage-Organization'], 'enterprise') self.assertEqual(headers['Content-Type'], 'application/json') self.assertEqual(fetcher, self.user.enterprises) self.assertEqual(user, self.user) self.assertEqual(count, 4)
def test_assign(self): """ PUT /groups/id/users assign users """ mock = MockUtils.create_mock_response(status_code=204, data=None) employee1 = Employee(firstname=u"Steven", lastname=u"Gerrard") employee2 = Employee(firstname=u"Gerrard", lastname=u"Lampard") with patch('requests.request', mock): (objects, connection) = self.group.assign([employee1, employee2], Employee) method = MockUtils.get_mock_parameter(mock, 'method') url = MockUtils.get_mock_parameter(mock, 'url') headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(connection.response.status_code, 204) self.assertEqual(url, 'https://vsd:8443/api/v3_2/groups/' + self.group.id + '/users') self.assertEqual(method, 'PUT') self.assertEqual(headers['Authorization'], 'XREST dXNlcjo1MWYzMTA0Mi1iMDQ3LTQ4Y2EtYTg4Yi02ODM2ODYwOGUzZGE=') self.assertEqual(headers['X-Nuage-Organization'], 'enterprise') self.assertEqual(headers['Content-Type'], 'application/json') self.assertEqual(objects, [employee1, employee2]) self.assertEqual(self.group.employees, [employee1, employee2]) self.group.employees.flush()
def test_fetch_all(self): """ GET /enterprises fetch all enterprises """ mock = MockUtils.create_mock_response(status_code=200, data=self.enterprises) with patch('requests.Session.request', mock): (fetcher, user, enterprises) = self.user.enterprises.fetch() connection = fetcher.current_connection method = MockUtils.get_mock_parameter(mock, 'method') url = MockUtils.get_mock_parameter(mock, 'url') headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(url, 'https://vsd:8443/api/v3_2/enterprises') self.assertEqual(method, 'GET') self.assertEqual( headers['Authorization'], 'XREST dXNlcjo1MWYzMTA0Mi1iMDQ3LTQ4Y2EtYTg4Yi02ODM2ODYwOGUzZGE=') self.assertEqual(headers['X-Nuage-Organization'], 'enterprise') self.assertEqual(headers['Content-Type'], 'application/json') self.assertEqual(fetcher, self.user.enterprises) self.assertEqual(user, self.user) self.assertEqual(len(enterprises), 4) self.assertEqual(connection.response.status_code, 200)
def test_impersonate(self): """ GET /enterprises with impersonation """ session = start_session() session.impersonate(username='******', enterprise='enterprise') mock = MockUtils.create_mock_response(status_code=200, data=[]) user = User() with patch('requests.request', mock): user.enterprises.fetch() headers = MockUtils.get_mock_parameter(mock=mock, name='headers') self.assertIn('X-Nuage-ProxyUser', headers) self.assertEquals(headers['X-Nuage-ProxyUser'], 'johndoe@enterprise') self.assertEquals(session.is_impersonating, True) session.stop_impersonate() self.assertEquals(session.is_impersonating, False) with patch('requests.request', mock): user.enterprises.fetch() headers = MockUtils.get_mock_parameter(mock=mock, name='headers') self.assertNotIn('X-Nuage-ProxyUser', headers)
def test_update(self): """ PUT /enterprises update enterprise """ enterprise = self.enterprise enterprise.name = "Another name" mock = MockUtils.create_mock_response(status_code=200, data=enterprise) with patch('requests.request', mock): (obj, connection) = enterprise.save() method = MockUtils.get_mock_parameter(mock, 'method') url = MockUtils.get_mock_parameter(mock, 'url') headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual( url, 'https://vsd:8443/api/v3_2/enterprises/%s' % enterprise.id) self.assertEqual(method, 'PUT') self.assertEqual( headers['Authorization'], 'XREST dXNlcjo1MWYzMTA0Mi1iMDQ3LTQ4Y2EtYTg4Yi02ODM2ODYwOGUzZGE=') self.assertEqual(headers['X-Nuage-Organization'], 'enterprise') self.assertEqual(headers['Content-Type'], 'application/json') self.assertEqual(obj.name, "Another name") self.assertEqual(enterprise.name, "Another name") self.assertEqual(connection.response.status_code, 200)
def test_assign(self): """ PUT /groups/id/users assign users """ mock = MockUtils.create_mock_response(status_code=204, data=None) employee1 = Employee(firstname=u"Steven", lastname=u"Gerrard") employee2 = Employee(firstname=u"Gerrard", lastname=u"Lampard") with patch('requests.Session.request', mock): (objects, connection) = self.group.assign([employee1, employee2], Employee) method = MockUtils.get_mock_parameter(mock, 'method') url = MockUtils.get_mock_parameter(mock, 'url') headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(connection.response.status_code, 204) self.assertEqual( url, 'https://vsd:8443/api/v3_2/groups/' + self.group.id + '/users') self.assertEqual(method, 'PUT') self.assertEqual( headers['Authorization'], 'XREST dXNlcjo1MWYzMTA0Mi1iMDQ3LTQ4Y2EtYTg4Yi02ODM2ODYwOGUzZGE=') self.assertEqual(headers['X-Nuage-Organization'], 'enterprise') self.assertEqual(headers['Content-Type'], 'application/json') self.assertEqual(objects, [employee1, employee2]) self.assertEqual(self.group.employees, [employee1, employee2]) self.group.employees.flush()
def test_impersonate(self): """ GET /enterprises with impersonation """ session = start_session() with patch.object(NURESTTestSession, "_authenticate", return_value=True): session.start() session.impersonate(username='******', enterprise='enterprise') mock = MockUtils.create_mock_response(status_code=200, data=[]) user = User() with patch('requests.Session.request', mock): user.enterprises.fetch() headers = MockUtils.get_mock_parameter(mock=mock, name='headers') self.assertIn('X-Nuage-ProxyUser', headers) self.assertEquals(headers['X-Nuage-ProxyUser'], 'johndoe@enterprise') self.assertEquals(session.is_impersonating, True) session.stop_impersonate() self.assertEquals(session.is_impersonating, False) with patch('requests.Session.request', mock): user.enterprises.fetch() headers = MockUtils.get_mock_parameter(mock=mock, name='headers') self.assertNotIn('X-Nuage-ProxyUser', headers)
def test_delete(self): """ DELETE /enterprises delete enterprise """ mock = MockUtils.create_mock_response(status_code=204, data=self.enterprise) with patch('requests.Session.request', mock): (obj, connection) = self.enterprise.delete(response_choice=1) method = MockUtils.get_mock_parameter(mock, 'method') url = MockUtils.get_mock_parameter(mock, 'url') headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual( url, 'https://vsd:8443/api/v3_2/enterprises/%s?responseChoice=1' % self.enterprise.id) self.assertEqual(method, 'DELETE') self.assertEqual( headers['Authorization'], 'XREST dXNlcjo1MWYzMTA0Mi1iMDQ3LTQ4Y2EtYTg4Yi02ODM2ODYwOGUzZGE=') self.assertEqual(headers['X-Nuage-Organization'], 'enterprise') self.assertEqual(headers['Content-Type'], 'application/json') self.assertEqual(obj.name, self.enterprise.name) self.assertEqual(obj.id, self.enterprise.id) self.assertEqual(connection.response.status_code, 204)
def test_fetch_with_page(self): """ GET /enterprises retrieve enterprises with page """ mock = MockUtils.create_mock_response(status_code=200, data=self.enterprises) with patch('requests.request', mock): (fetcher, user, enterprises) = self.user.enterprises.fetch(page=2) headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(headers['X-Nuage-Page'], '2')
def test_fetch_with_page(self): """ GET /enterprises retrieve enterprises with page """ mock = MockUtils.create_mock_response(status_code=200, data=self.enterprises) with patch('requests.request', mock): (fetcher, user, enterprises) = self.user.enterprises.fetch(page=2) headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(headers['X-Nuage-Page'], 2)
def test_fetch_with_group_by(self): """ GET /enterprises retrieve enterprises with group_by """ mock = MockUtils.create_mock_response(status_code=200, data=self.enterprises) with patch('requests.request', mock): (fetcher, user, enterprises) = self.user.enterprises.fetch(group_by=['field1', 'field2']) headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(headers['X-Nuage-GroupBy'], 'true') self.assertEqual(headers['X-Nuage-Attributes'], 'field1, field2')
def test_fetch_with_order_by(self): """ GET /enterprises retrieve enterprises with order_by """ mock = MockUtils.create_mock_response(status_code=200, data=self.enterprises) with patch('requests.Session.request', mock): (fetcher, user, enterprises) = self.user.enterprises.fetch(order_by='name ASC') headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(headers['X-Nuage-OrderBy'], 'name ASC')
def test_fetch_with_filter(self): """ GET /enterprises retrieve enterprises with filters """ mock = MockUtils.create_mock_response(status_code=200, data=[self.enterprises[1]]) with patch('requests.request', mock): (fetcher, user, enterprises) = self.user.enterprises.fetch(filter=u"name == 'Enterprise 2'") headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(headers['X-Nuage-Filter'],"name == 'Enterprise 2'") self.assertEqual(len(enterprises), 1) self.assertEqual(enterprises[0].name,"Enterprise 2")
def test_fetch(self): """ GET /enterprises/id fetch enterprise """ enterprise = Enterprise(id=1) mock = MockUtils.create_mock_response(status_code=200, data=self.enterprise) with patch('requests.request', mock): (obj, connection) = enterprise.fetch() method = MockUtils.get_mock_parameter(mock, 'method') url = MockUtils.get_mock_parameter(mock, 'url') headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(url, 'https://vsd:8443/api/v3_2/enterprises/%s' % enterprise.id) self.assertEqual(method, 'GET') self.assertEqual(headers['Authorization'], 'XREST dXNlcjo1MWYzMTA0Mi1iMDQ3LTQ4Y2EtYTg4Yi02ODM2ODYwOGUzZGE=') self.assertEqual(headers['X-Nuage-Organization'], 'enterprise') self.assertEqual(headers['Content-Type'], 'application/json') self.assertEqual(connection.response.status_code, 200) self.assertEqual(enterprise.name, obj.name)
def test_delete(self): """ DELETE /enterprises delete enterprise """ mock = MockUtils.create_mock_response(status_code=204, data=self.enterprise) with patch('requests.request', mock): (obj, connection) = self.enterprise.delete(response_choice=1) method = MockUtils.get_mock_parameter(mock, 'method') url = MockUtils.get_mock_parameter(mock, 'url') headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(url, 'https://vsd:8443/api/v3_2/enterprises/%s?responseChoice=1' % self.enterprise.id) self.assertEqual(method, 'DELETE') self.assertEqual(headers['Authorization'], 'XREST dXNlcjo1MWYzMTA0Mi1iMDQ3LTQ4Y2EtYTg4Yi02ODM2ODYwOGUzZGE=') self.assertEqual(headers['X-Nuage-Organization'], 'enterprise') self.assertEqual(headers['Content-Type'], 'application/json') self.assertEqual(obj.name, self.enterprise.name) self.assertEqual(obj.id, self.enterprise.id) self.assertEqual(connection.response.status_code, 204)
def test_count_with_page(self): """ HEAD /enterprises count enterprises with page """ user = self.user headers = {'X-Nuage-Count': 2} mock = MockUtils.create_mock_response(status_code=200, data=None, headers=headers) with patch('requests.Session.request', mock): (fetcher, user, count) = self.user.enterprises.count(page=3) headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(headers['X-Nuage-Page'], '3')
def test_count_with_page(self): """ HEAD /enterprises count enterprises with page """ user = self.user headers = {'X-Nuage-Count': 2} mock = MockUtils.create_mock_response(status_code=200, data=None, headers=headers) with patch('requests.request', mock): (fetcher, user, count) = self.user.enterprises.count(page=3) headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(headers['X-Nuage-Page'], '3')
def test_update(self): """ PUT /me update current user """ self.user.prepare_change_password('test') mock = MockUtils.create_mock_response(status_code=204, data=None) with patch('requests.request', mock): (obj, connection) = self.user.save() method = MockUtils.get_mock_parameter(mock, 'method') url = MockUtils.get_mock_parameter(mock, 'url') headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(connection.response.status_code, 204) self.assertEqual(url, 'https://vsd:8443/api/v3_2/me') self.assertEqual(method, 'PUT') self.assertEqual(headers['Authorization'], 'XREST dXNlcjp0ZXN0') self.assertEqual(headers['X-Nuage-Organization'], 'enterprise') self.assertEqual(headers['Content-Type'], 'application/json') self.assertEqual(self.user.password,"a94a8fe5ccb19ba61c4c0873d391e987982fbbd3") # Encrypted password
def test_count_with_group_by(self): """ HEAD /enterprises count enterprises with group_by """ user = self.user headers = {'X-Nuage-Count': 2} mock = MockUtils.create_mock_response(status_code=200, data=None, headers=headers) with patch('requests.request', mock): (fetcher, user, count) = self.user.enterprises.count(group_by=['field1', 'field2']) headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(headers['X-Nuage-GroupBy'], 'true') self.assertEqual(headers['X-Nuage-Attributes'], 'field1, field2')
def test_count_with_filter(self): """ HEAD /enterprises count enterprises with filters """ user = self.user headers = {'X-Nuage-Count': 2} mock = MockUtils.create_mock_response(status_code=200, data=None, headers=headers) with patch('requests.request', mock): (fetcher, user, count) = self.user.enterprises.count(filter=u"name == 'Enterprise 2'") headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(headers['X-Nuage-Filter'],"name == 'Enterprise 2'") self.assertEqual(count, 2)
def test_count_with_group_by(self): """ HEAD /enterprises count enterprises with group_by """ user = self.user headers = {'X-Nuage-Count': 2} mock = MockUtils.create_mock_response(status_code=200, data=None, headers=headers) with patch('requests.Session.request', mock): (fetcher, user, count) = self.user.enterprises.count(group_by=['field1', 'field2']) headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(headers['X-Nuage-GroupBy'], 'true') self.assertEqual(headers['X-Nuage-Attributes'], 'field1, field2')
def test_count_with_filter(self): """ HEAD /enterprises count enterprises with filters """ user = self.user headers = {'X-Nuage-Count': 2} mock = MockUtils.create_mock_response(status_code=200, data=None, headers=headers) with patch('requests.Session.request', mock): (fetcher, user, count) = self.user.enterprises.count(filter=u"name == 'Enterprise 2'") headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(headers['X-Nuage-Filter'],"name == 'Enterprise 2'") self.assertEqual(count, 2)
def test_fetch_all(self): """ GET /enterprises fetch all enterprises """ mock = MockUtils.create_mock_response(status_code=200, data=self.enterprises) with patch('requests.request', mock): (fetcher, user, enterprises) = self.user.enterprises.fetch() connection = fetcher.current_connection method = MockUtils.get_mock_parameter(mock, 'method') url = MockUtils.get_mock_parameter(mock, 'url') headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(url, 'https://vsd:8443/api/v3_2/enterprises') self.assertEqual(method, 'GET') self.assertEqual(headers['Authorization'], 'XREST dXNlcjo1MWYzMTA0Mi1iMDQ3LTQ4Y2EtYTg4Yi02ODM2ODYwOGUzZGE=') self.assertEqual(headers['X-Nuage-Organization'], 'enterprise') self.assertEqual(headers['Content-Type'], 'application/json') self.assertEqual(fetcher, self.user.enterprises) self.assertEqual(user, self.user) self.assertEqual(len(enterprises), 4) self.assertEqual(connection.response.status_code, 200)
def test_count_all(self): """ HEAD /enterprises count all enterprises """ user = self.user headers = {'X-Nuage-Count': 4} mock = MockUtils.create_mock_response(status_code=200, data=None, headers=headers) with patch('requests.request', mock): (fetcher, user, count) = self.user.enterprises.count() method = MockUtils.get_mock_parameter(mock, 'method') url = MockUtils.get_mock_parameter(mock, 'url') headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(url, 'https://vsd:8443/api/v3_2/enterprises') self.assertEqual(method, 'HEAD') self.assertEqual(headers['Authorization'], 'XREST dXNlcjo1MWYzMTA0Mi1iMDQ3LTQ4Y2EtYTg4Yi02ODM2ODYwOGUzZGE=') self.assertEqual(headers['X-Nuage-Organization'], 'enterprise') self.assertEqual(headers['Content-Type'], 'application/json') self.assertEqual(fetcher, self.user.enterprises) self.assertEqual(user, self.user) self.assertEqual(count, 4)
def test_update(self): """ PUT /me update current user """ self.user.prepare_change_password('test') mock = MockUtils.create_mock_response(status_code=204, data=None) with patch('requests.Session.request', mock): (obj, connection) = self.user.save() method = MockUtils.get_mock_parameter(mock, 'method') url = MockUtils.get_mock_parameter(mock, 'url') headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(connection.response.status_code, 204) self.assertEqual(url, 'https://vsd:8443/api/v3_2/me') self.assertEqual(method, 'PUT') self.assertEqual(headers['Authorization'], 'XREST dXNlcjp0ZXN0') self.assertEqual(headers['X-Nuage-Organization'], 'enterprise') self.assertEqual(headers['Content-Type'], 'application/json') self.assertEqual( self.user.password, "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3") # Encrypted password
def test_count_with_order_by(self): """ HEAD /enterprises count enterprises with order_by """ user = self.user headers = {'X-Nuage-Count': 2} mock = MockUtils.create_mock_response(status_code=200, data=None, headers=headers) with patch('requests.request', mock): (fetcher, user, count) = self.user.enterprises.count(order_by='name ASC') headers = MockUtils.get_mock_parameter(mock, 'headers') self.assertEqual(headers['X-Nuage-OrderBy'], 'name ASC')