def test_create_change_project_object(self): req = mock.Mock() req.status_code = 201 req.content = ')]}\'{"change_id": "I01440b5fd46a67ee38c9ef2c22eb145b8547cbb2"}'.encode('utf-8') gerrit_con = mock.Mock() gerrit_con.call.return_value = req req_project = mock.Mock() req_project.status_code = 200 req_project.content = ')]}\'{"name": "gerritproject"}'.encode('utf-8') gerrit_con_project = mock.Mock() gerrit_con_project.call.return_value = req_project with mock.patch.object(Change, 'get_change') as mock_get_change: pjt = Project(gerrit_con_project) project = pjt.get_project('gerritproject') cng = Change(gerrit_con) change = cng.create_change( project, 'My change', 'master', {'status': 'DRAFT'} ) mock_get_change.assert_called_with( 'gerritproject', 'master', 'I01440b5fd46a67ee38c9ef2c22eb145b8547cbb2', )
def test_get_project_raises_on_nonexisting_project(self): req = mock.Mock() req.status_code = 404 req.content = 'Project not found'.encode('utf-8') gerrit_con = mock.Mock() gerrit_con.call.return_value = req with self.assertRaises(ValueError): pjt = Project(gerrit_con) pjt.get_project('gerritproject')
def test_get_project_raises_on_unknown_error(self): req = mock.Mock() req.status_code = 503 req.content = 'Internal server error'.encode('utf-8') gerrit_con = mock.Mock() gerrit_con.call.return_value = req with self.assertRaises(UnhandledError): pjt = Project(gerrit_con) pjt.get_project('gerritproject')
def test_create_project_exists(self, mock_requests): gerrit_con = mock.Mock() req = mock.Mock() req.status_code = 409 req.content = ')]}\'{}'.encode('utf-8') gerrit_con.call.return_value = req with self.assertRaises(AlreadyExists): prj = Project(gerrit_con) prj.create_project('gerritproject', None)
def test_create_project_unknown_error(self, mock_requests, mock_get_netrc_auth): gerrit_con = mock.Mock() req = mock.Mock() req.status_code = 503 req.content = ')]}\'{}'.encode('utf-8') gerrit_con.call.return_value = req with self.assertRaises(UnhandledError): prj = Project(gerrit_con) prj.create_project('gerritproject', None)
def test_create_project_exists(self, mock_requests): gerrit_con = mock.Mock() req = mock.Mock() req.status_code = 409 req.content = ')]}\'{}'.encode('utf-8') gerrit_con.call.return_value = req with self.assertRaises(AlreadyExists): prj = Project(gerrit_con) prj.create_project('gerritproject', None)
def test_get_project_raises_on_unknown_error(self): req = mock.Mock() req.status_code = 503 req.content = 'Internal server error'.encode('utf-8') gerrit_con = mock.Mock() gerrit_con.call.return_value = req with self.assertRaises(UnhandledError): pjt = Project(gerrit_con) pjt.get_project('gerritproject')
def test_get_project_raises_on_nonexisting_project(self): req = mock.Mock() req.status_code = 404 req.content = 'Project not found'.encode('utf-8') gerrit_con = mock.Mock() gerrit_con.call.return_value = req with self.assertRaises(ValueError): pjt = Project(gerrit_con) pjt.get_project('gerritproject')
def test_project_eq(self): """ Test that projects can be compared """ self.req.content = self.project_content project = Project(self.gerrit_con) project1 = project.get_project(self.PROJECT) project2 = project.get_project(self.PROJECT) self.assertEqual(project1, project2)
def test_project_eq(self): req = mock.Mock() req.status_code = 200 req.content = ')]}\'{"name": "gerritproject"}'.encode('utf-8') gerrit_con = mock.Mock() gerrit_con.call.return_value = req pjt = Project(gerrit_con) project1 = pjt.get_project('gerritproject') project2 = pjt.get_project('gerritproject') self.assertEqual(project1, project2)
def test_create_project_unknown_error(self, mock_requests, mock_get_netrc_auth): gerrit_con = mock.Mock() req = mock.Mock() req.status_code = 503 req.content = ')]}\'{}'.encode('utf-8') gerrit_con.call.return_value = req with self.assertRaises(UnhandledError): prj = Project(gerrit_con) prj.create_project('gerritproject', None)
def test_project_eq(self): req = mock.Mock() req.status_code = 200 req.content = ')]}\'{"name": "gerritproject"}'.encode('utf-8') gerrit_con = mock.Mock() gerrit_con.call.return_value = req pjt = Project(gerrit_con) project1 = pjt.get_project('gerritproject') project2 = pjt.get_project('gerritproject') self.assertEqual(project1, project2)
def get_project(self, name): """ Get a project :param name: Project name to get :type name: str :return: Project object :rtype: gerrit.projects.Project """ project = Project(self) return project.get_project(name)
def test_delete_fails(self): """ Test that failing to delete a project raises """ self.req_delete.status_code = 400 self.req.content = self.project_content self.gerrit_con.call.side_effect = [self.req, self.req_delete] project = Project(self.gerrit_con) project = project.get_project(self.PROJECT) with self.assertRaises(UnhandledError): project.delete()
def get_project(self, name): """ Get a project :param name: Project name to get :type name: str :return: Project object :rtype: gerrit.projects.Project """ project = Project(self) return project.get_project(name)
def test_delete_fails(self): get = mock.Mock() get.status_code = 200 get.content = ')]}\'{"name": "gerritproject", "parent": "All-Projects", "description": "My gerrit project", "state": "ACTIVE"}'.encode('utf-8') delete = mock.Mock() delete.status_code = 400 gerrit_con = mock.Mock() gerrit_con.call.side_effect = [get, delete] pjt = Project(gerrit_con) project = pjt.get_project('gerritproject') with self.assertRaises(UnhandledError): project.delete()
def test_get_returns_project(self): """ Test that a project can be fetched """ self.req.content = self.project_content project = Project(self.gerrit_con) project = project.get_project(self.PROJECT) self.assertEqual(project.name, self.PROJECT) self.assertEqual(project.parent, self.PARENT) self.assertEqual(project.description, self.DESCRIPTION) self.assertEqual(project.state, self.STATE) self.assertEqual(project.branches, None) self.assertEqual(project.web_links, None)
def test_delete_fails(self): get = mock.Mock() get.status_code = 200 get.content = ')]}\'{"name": "gerritproject", "parent": "All-Projects", "description": "My gerrit project", "state": "ACTIVE"}'.encode( 'utf-8') delete = mock.Mock() delete.status_code = 400 gerrit_con = mock.Mock() gerrit_con.call.side_effect = [get, delete] pjt = Project(gerrit_con) project = pjt.get_project('gerritproject') with self.assertRaises(UnhandledError): project.delete()
def test_get_project_returns_project(self): req = mock.Mock() req.status_code = 200 req.content = ')]}\'{"name": "gerritproject", "parent": "All-Projects", "description": "My gerrit project", "state": "ACTIVE"}'.encode('utf-8') gerrit_con = mock.Mock() gerrit_con.call.return_value = req pjt = Project(gerrit_con) project = pjt.get_project('gerritproject') self.assertEqual(project.name, 'gerritproject') self.assertEqual(project.parent, 'All-Projects') self.assertEqual(project.description, 'My gerrit project') self.assertEqual(project.state, 'ACTIVE') self.assertEqual(project.branches, None) self.assertEqual(project.web_links, None)
def create_project(self, name, options=None): """ Create a project :param name: Name of the project :type name: str :param options: Additional options :type options: dict :return: Project if successful :rtype: gerrit.projects.Project :exception: AlreadyExists, UnhandledError """ project = Project(self) return project.create_project(name, options)
def create_project(self, name, options=None): """ Create a project :param name: Name of the project :type name: str :param options: Additional options :type options: dict :return: Project if successful :rtype: gerrit.projects.Project :exception: AlreadyExists, UnhandledError """ project = Project(self) return project.create_project(name, options)
def test_get_change_project_object(self): req = mock.Mock() req.status_code = 200 req.content = ')]}\'{"id": "gerritproject~master~I01440b5fd46a67ee38c9ef2c22eb145b8547cbb2"}'.encode('utf-8') gerrit_con = mock.Mock() gerrit_con.call.return_value = req pjt = Project(gerrit_con) project = pjt.get_project('gerritproject') cng = Change(gerrit_con) change = cng.get_change( project, 'master', 'I01440b5fd46a67ee38c9ef2c22eb145b8547cbb2' ) self.assertEqual(change.full_id, 'gerritproject~master~I01440b5fd46a67ee38c9ef2c22eb145b8547cbb2')
def test_get_change_project_object(self): req = mock.Mock() req.status_code = 200 req.content = ')]}\'{"id": "gerritproject~master~I01440b5fd46a67ee38c9ef2c22eb145b8547cbb2"}'.encode( 'utf-8') gerrit_con = mock.Mock() gerrit_con.call.return_value = req pjt = Project(gerrit_con) project = pjt.get_project('gerritproject') cng = Change(gerrit_con) change = cng.get_change(project, 'master', 'I01440b5fd46a67ee38c9ef2c22eb145b8547cbb2') self.assertEqual( change.full_id, 'gerritproject~master~I01440b5fd46a67ee38c9ef2c22eb145b8547cbb2')
def test_delete_success_options(self): """ Test that it is possible to delete a project with options """ self.req.content = self.project_content self.gerrit_con.call.side_effect = [self.req, self.req_delete] project = Project(self.gerrit_con) project = project.get_project(self.PROJECT) self.assertTrue(project.delete({'force': True})) self.gerrit_con.call.assert_called_with( request='delete', r_endpoint='/a/projects/{}'.format(self.PROJECT), r_headers={}, r_payload={'force': True}, )
def test_get_project_returns_project(self): req = mock.Mock() req.status_code = 200 req.content = ')]}\'{"name": "gerritproject", "parent": "All-Projects", "description": "My gerrit project", "state": "ACTIVE"}'.encode( 'utf-8') gerrit_con = mock.Mock() gerrit_con.call.return_value = req pjt = Project(gerrit_con) project = pjt.get_project('gerritproject') self.assertEqual(project.name, 'gerritproject') self.assertEqual(project.parent, 'All-Projects') self.assertEqual(project.description, 'My gerrit project') self.assertEqual(project.state, 'ACTIVE') self.assertEqual(project.branches, None) self.assertEqual(project.web_links, None)
def test_create_without_options(self): """ Test that a project can be created without options """ self.req.status_code = 201 with mock.patch.object(Project, 'get_project') as mock_get_project: project = Project(self.gerrit_con) project.create_project( self.PROJECT, None, ) self.gerrit_con.call.assert_called_with( request='put', r_payload={}, r_endpoint='/a/projects/{}'.format(self.PROJECT), ) mock_get_project.assert_called_with(self.PROJECT)
def test_create(self): """ Test that a project can be created """ self.req.status_code = 201 with mock.patch.object(Project, 'get_project') as mock_get_project: project = Project(self.gerrit_con) project.create_project( self.PROJECT, {'description': self.DESCRIPTION}, ) self.gerrit_con.call.assert_called_with( request='put', r_payload={'description': self.DESCRIPTION}, r_endpoint='/a/projects/{}'.format(self.PROJECT), ) mock_get_project.assert_called_with(self.PROJECT)
def test_get_change_project_object(self): """ Test that a change can be fetched when using a project object """ project = Project(self.gerrit_con).get_project(self.PROJECT) change = Change(self.gerrit_con).get_change(project, self.BRANCH, self.CHANGE_ID) self.assertEqual(change.full_id, self.FULL_ID)
def test_delete_success_with_options(self): get = mock.Mock() get.status_code = 200 get.content = ')]}\'{"name": "gerritproject", "parent": "All-Projects", "description": "My gerrit project", "state": "ACTIVE"}'.encode('utf-8') delete = mock.Mock() delete.status_code = 204 gerrit_con = mock.Mock() gerrit_con.call.side_effect = [get, delete] pjt = Project(gerrit_con) project = pjt.get_project('gerritproject') self.assertTrue(project.delete({'force': True})) gerrit_con.call.assert_called_with( request='delete', r_endpoint='/a/projects/gerritproject', r_headers={}, r_payload={'force': True}, )
def test_create_project_without_options(self): gerrit_con = mock.Mock() req = mock.Mock() req.status_code = 201 req.content = ')]}\'{}'.encode('utf-8') gerrit_con.call.return_value = req with mock.patch.object(Project, 'get_project') as mock_get_project: prj = Project(gerrit_con) project = prj.create_project( 'gerritproject', None, ) gerrit_con.call.assert_called_with( request='put', r_payload={}, r_endpoint='/a/projects/gerritproject', ) mock_get_project.assert_called_with('gerritproject')
def test_create_project_without_options(self): gerrit_con = mock.Mock() req = mock.Mock() req.status_code = 201 req.content = ')]}\'{}'.encode('utf-8') gerrit_con.call.return_value = req with mock.patch.object(Project, 'get_project') as mock_get_project: prj = Project(gerrit_con) project = prj.create_project( 'gerritproject', None, ) gerrit_con.call.assert_called_with( request='put', r_payload={}, r_endpoint='/a/projects/gerritproject', ) mock_get_project.assert_called_with('gerritproject')
def test_delete_success_with_options(self): get = mock.Mock() get.status_code = 200 get.content = ')]}\'{"name": "gerritproject", "parent": "All-Projects", "description": "My gerrit project", "state": "ACTIVE"}'.encode( 'utf-8') delete = mock.Mock() delete.status_code = 204 gerrit_con = mock.Mock() gerrit_con.call.side_effect = [get, delete] pjt = Project(gerrit_con) project = pjt.get_project('gerritproject') self.assertTrue(project.delete({'force': True})) gerrit_con.call.assert_called_with( request='delete', r_endpoint='/a/projects/gerritproject', r_headers={}, r_payload={'force': True}, )
def test_create_change_project_obj(self): """ Test that a change is successfully created when using a project object """ self.req.status_code = 201 with mock.patch.object(Change, 'get_change') as mock_get_change: project = Project(self.gerrit_con_project).get_project( self.PROJECT) Change(self.gerrit_con).create_change(project, self.SUBJECT, self.BRANCH, {'status': 'DRAFT'}) mock_get_change.assert_called_with( self.PROJECT, self.BRANCH, self.CHANGE_ID, )
def test_get_project_raises_on_empty_name(self): gerrit_con = mock.Mock() with self.assertRaises(KeyError): pjt = Project(gerrit_con) pjt.get_project('')
def test_get_project_raises_on_empty_name(self): gerrit_con = mock.Mock() with self.assertRaises(KeyError): pjt = Project(gerrit_con) pjt.get_project('')