Ejemplo n.º 1
0
    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',
            )
Ejemplo n.º 2
0
    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')
Ejemplo n.º 3
0
    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')
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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')
Ejemplo n.º 8
0
    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')
Ejemplo n.º 9
0
    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)
Ejemplo n.º 10
0
    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)
Ejemplo n.º 11
0
    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)
Ejemplo n.º 12
0
    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)
Ejemplo n.º 13
0
    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)
Ejemplo n.º 14
0
    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()
Ejemplo n.º 15
0
    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)
Ejemplo n.º 16
0
    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()
Ejemplo n.º 17
0
    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)
Ejemplo n.º 18
0
    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()
Ejemplo n.º 19
0
    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)
Ejemplo n.º 20
0
    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)
Ejemplo n.º 21
0
    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)
Ejemplo n.º 22
0
    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')
Ejemplo n.º 23
0
    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')
Ejemplo n.º 24
0
    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},
        )
Ejemplo n.º 25
0
    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)
Ejemplo n.º 26
0
 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)
Ejemplo n.º 27
0
 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)
Ejemplo n.º 28
0
 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)
Ejemplo n.º 29
0
    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},
        )
Ejemplo n.º 30
0
    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')
Ejemplo n.º 31
0
    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')
Ejemplo n.º 32
0
    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},
        )
Ejemplo n.º 33
0
    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,
            )
Ejemplo n.º 34
0
    def test_get_project_raises_on_empty_name(self):
        gerrit_con = mock.Mock()

        with self.assertRaises(KeyError):
            pjt = Project(gerrit_con)
            pjt.get_project('')
Ejemplo n.º 35
0
    def test_get_project_raises_on_empty_name(self):
        gerrit_con = mock.Mock()

        with self.assertRaises(KeyError):
            pjt = Project(gerrit_con)
            pjt.get_project('')