コード例 #1
0
    def test_no_release(self):
        """If a build does not have a Release, the validator should set one."""
        release = models.Release.query.first()
        request = mock.Mock()
        request.db = self.db
        request.errors = Errors()
        request.koji.listTags.return_value = [{'name': release.candidate_tag}]
        build = models.Build.query.first()
        build.release = None
        self.db.commit()

        validators._validate_override_build(request, build.nvr, self.db)

        self.assertEqual(len(request.errors), 0)
        build = models.Build.query.filter_by(nvr=build.nvr).one()
        self.assertEqual(build.release.name, release.name)
コード例 #2
0
ファイル: test_validators.py プロジェクト: jhonsnow456/bodhi
    def test_no_build_exception(self):
        """Assert exception handling when the build is not found and koji is unavailable."""
        request = mock.Mock()
        request.db = self.db
        request.errors = Errors()
        request.koji.listTags.side_effect = IOError('You forgot to pay your ISP.')
        request.validated = {'edited': None}

        validators._validate_override_build(request, 'does not exist', self.db)

        assert request.errors == [
            {'location': 'body', 'name': 'nvr',
             'description': ("Couldn't determine koji tags for does not exist, 'You forgot to pay "
                             "your ISP.'")}
        ]
        assert request.errors.status == exceptions.HTTPBadRequest.code
コード例 #3
0
ファイル: test_validators.py プロジェクト: jhonsnow456/bodhi
    def test_test_gating_status_is_failed(self):
        """If a build's test gating status is failed, the validator should complain."""
        request = mock.Mock()
        request.db = self.db
        request.errors = Errors()
        request.validated = {'edited': None}
        build = models.Build.query.first()
        build.update.test_gating_status = models.TestGatingStatus.failed
        self.db.commit()

        validators._validate_override_build(request, build.nvr, self.db)

        assert request.errors == [
            {'location': 'body', 'name': 'nvr',
             'description': "Cannot create a buildroot override if build's "
                            "test gating status is failed."}
        ]
        assert request.errors.status == exceptions.HTTPBadRequest.code
コード例 #4
0
ファイル: test_validators.py プロジェクト: jhonsnow456/bodhi
    def test_wrong_tag(self, get_session):
        """If a build does not have a candidate or testing tag, the validator should complain."""
        release = models.Release.query.first()
        request = mock.Mock()
        request.db = self.db
        request.errors = Errors()
        request.koji.listTags.return_value = [{'name': release.stable_tag}]
        request.validated = {'edited': None}
        get_session.return_value.listTags.return_value = request.koji.listTags.return_value
        build = models.Build.query.first()

        validators._validate_override_build(request, build.nvr, self.db)

        assert request.errors == [
            {'location': 'body', 'name': 'nvr',
             'description': "Invalid build.  It must be tagged as either candidate or testing."}
        ]
        assert request.errors.status == exceptions.HTTPBadRequest.code
コード例 #5
0
ファイル: test_validators.py プロジェクト: jhonsnow456/bodhi
    def test_indeterminate_release(self):
        """If a build does not have tags that identify a Release, the validator should complain."""
        request = mock.Mock()
        request.db = self.db
        request.errors = Errors()
        request.koji.listTags.return_value = [{'name': 'invalid'}]
        request.validated = {'edited': None}
        build = models.Build.query.first()
        build.release = None
        self.db.commit()

        validators._validate_override_build(request, build.nvr, self.db)

        assert request.errors == [
            {'location': 'body', 'name': 'nvr',
             'description': "Invalid build.  Couldn't determine release from koji tags."}
        ]
        build = models.Build.query.filter_by(nvr=build.nvr).one()
        assert build.release is None
        assert request.errors.status == exceptions.HTTPBadRequest.code