Beispiel #1
0
    def test_file_blacklist(self, mock_identify_revision, mock_get_vcs):
        repo = self.create_repo()
        revision = self.create_revision(repository=repo)
        project = self.create_project(repository=repo)
        self.create_plan(project)

        mock_vcs = self.get_fake_vcs()
        mock_vcs.export.side_effect = None
        mock_vcs.export.return_value = SAMPLE_DIFF
        mock_vcs.get_changed_files.side_effect = lambda id: Vcs.get_changed_files(mock_vcs, id)
        mock_vcs.update.side_effect = None
        mock_identify_revision.return_value = revision
        mock_vcs.read_file.side_effect = None
        mock_vcs.read_file.return_value = yaml.safe_dump({
            'build.file-blacklist': ['ci/*'],
        })
        mock_get_vcs.return_value = mock_vcs

        revision_created_handler(revision_sha=revision.sha, repository_id=repo.id)

        mock_vcs.export.assert_called_once_with(revision.sha)

        assert not Build.query.first()

        mock_vcs.read_file.return_value = yaml.safe_dump({
            'build.file-blacklist': ['ci/not-real'],
        })

        revision_created_handler(revision_sha=revision.sha, repository_id=repo.id)

        mock_identify_revision.assert_called_once_with(repo, revision.sha)

        assert Build.query.first()
Beispiel #2
0
    def test_file_whitelist(self, mock_identify_revision, mock_get_vcs):
        repo = self.create_repo()
        revision = self.create_revision(repository=repo)
        project = self.create_project(repository=repo)
        self.create_plan(project)

        option = ProjectOption(project=project, name='build.file-whitelist', value='foo.txt')

        mock_vcs = Mock()
        mock_vcs.export.return_value = SAMPLE_DIFF
        mock_identify_revision.return_value = revision
        mock_get_vcs.return_value = mock_vcs

        db.session.add(option)
        db.session.flush()

        revision_created_handler(revision_sha=revision.sha, repository_id=repo.id)

        mock_vcs.export.assert_called_once_with(revision.sha)

        assert not Build.query.first()

        option.value = 'ci/*'
        db.session.add(option)
        db.session.flush()

        revision_created_handler(revision_sha=revision.sha, repository_id=repo.id)

        mock_identify_revision.assert_called_once_with(repo, revision.sha)

        assert Build.query.first()
Beispiel #3
0
    def test_disabled(self):
        repo = self.create_repo()
        revision = self.create_revision(repository=repo)
        project = self.create_project(repository=repo)
        self.create_plan(project)

        db.session.add(ProjectOption(project=project, name='build.commit-trigger', value='0'))
        db.session.flush()

        revision_created_handler(revision_sha=revision.sha, repository_id=repo.id)

        assert not Build.query.first()
Beispiel #4
0
    def test_simple(self):
        repo = self.create_repo()
        revision = self.create_revision(repository=repo)
        project = self.create_project(repository=repo)
        self.create_plan(project)

        revision_created_handler(revision_sha=revision.sha, repository_id=repo.id)

        build_list = list(Build.query.filter(
            Build.project == project,
        ))

        assert len(build_list) == 1
    def test_simple(self):
        repo = self.create_repo()
        revision = self.create_revision(repository=repo)
        project = self.create_project(repository=repo)
        plan = self.create_plan()
        plan.projects.append(project)

        revision_created_handler(revision)

        build_list = list(Build.query.filter(
            Build.project == project,
        ))

        assert len(build_list) == 1
    def test_simple(self, get_vcs):
        repo = self.create_repo()
        revision = self.create_revision(repository=repo)
        project = self.create_project(repository=repo)
        self.create_plan(project)

        get_vcs.return_value = self.get_fake_vcs()

        revision_created_handler(revision_sha=revision.sha,
                                 repository_id=repo.id)

        build_list = list(Build.query.filter(Build.project == project, ))

        assert len(build_list) == 1
Beispiel #7
0
    def test_disabled(self, get_vcs):
        repo = self.create_repo()
        revision = self.create_revision(repository=repo)
        project = self.create_project(repository=repo)
        self.create_plan(project)

        get_vcs.return_value = self.get_fake_vcs()

        db.session.add(ProjectOption(project=project, name='build.commit-trigger', value='0'))
        db.session.flush()

        revision_created_handler(revision_sha=revision.sha, repository_id=repo.id)

        assert not Build.query.first()
Beispiel #8
0
    def test_disabled(self):
        repo = self.create_repo()
        revision = self.create_revision(repository=repo)
        project = self.create_project(repository=repo)
        plan = self.create_plan()
        plan.projects.append(project)

        db.session.add(
            ProjectOption(project=project,
                          name='build.commit-trigger',
                          value='0'))
        db.session.commit()

        revision_created_handler(revision_sha=revision.sha,
                                 repository_id=repo.id)

        assert not Build.query.first()
    def test_file_whitelist(self, mock_identify_revision, mock_get_vcs):
        repo = self.create_repo()
        revision = self.create_revision(repository=repo)
        project = self.create_project(repository=repo)
        self.create_plan(project)

        option = ProjectOption(project=project,
                               name='build.file-whitelist',
                               value='foo.txt')

        mock_vcs = self.get_fake_vcs()
        mock_vcs.export.side_effect = None
        mock_vcs.export.return_value = SAMPLE_DIFF
        mock_vcs.get_changed_files.side_effect = lambda id: Vcs.get_changed_files(
            mock_vcs, id)
        mock_vcs.update.side_effect = None
        mock_identify_revision.return_value = revision
        mock_get_vcs.return_value = mock_vcs

        db.session.add(option)
        db.session.flush()

        revision_created_handler(revision_sha=revision.sha,
                                 repository_id=repo.id)

        mock_vcs.export.assert_called_once_with(revision.sha)

        assert not Build.query.first()

        option.value = 'ci/*'
        db.session.add(option)
        db.session.flush()

        revision_created_handler(revision_sha=revision.sha,
                                 repository_id=repo.id)

        mock_identify_revision.assert_called_once_with(repo, revision.sha)

        assert Build.query.first()
Beispiel #10
0
    def test_invalid_config(self, mock_identify_revision, mock_get_vcs):
        repo = self.create_repo()
        revision = self.create_revision(repository=repo)
        project = self.create_project(repository=repo)
        project2 = self.create_project(repository=repo)
        self.create_plan(project)
        self.create_plan(project2)

        mock_vcs = self.get_fake_vcs()
        mock_vcs.export.side_effect = None
        mock_vcs.export.return_value = SAMPLE_DIFF
        mock_vcs.update.side_effect = None
        mock_identify_revision.return_value = revision
        mock_vcs.read_file.side_effect = ('{{invalid yaml}}', yaml.safe_dump({
            'build.file-blacklist': ['ci/not-real'],
        }))
        mock_get_vcs.return_value = mock_vcs

        revision_created_handler(revision_sha=revision.sha, repository_id=repo.id)

        mock_vcs.export.assert_called_once_with(revision.sha)

        assert len(list(Build.query)) == 2
    def test_file_blacklist(self, mock_identify_revision, mock_get_vcs):
        repo = self.create_repo()
        revision = self.create_revision(repository=repo)
        project = self.create_project(repository=repo)
        self.create_plan(project)

        mock_vcs = self.get_fake_vcs()
        mock_vcs.export.side_effect = None
        mock_vcs.export.return_value = SAMPLE_DIFF
        mock_vcs.get_changed_files.side_effect = lambda id: Vcs.get_changed_files(
            mock_vcs, id)
        mock_vcs.update.side_effect = None
        mock_identify_revision.return_value = revision
        mock_vcs.read_file.side_effect = None
        mock_vcs.read_file.return_value = yaml.safe_dump({
            'build.file-blacklist': ['ci/*'],
        })
        mock_get_vcs.return_value = mock_vcs

        revision_created_handler(revision_sha=revision.sha,
                                 repository_id=repo.id)

        mock_vcs.export.assert_called_once_with(revision.sha)

        assert not Build.query.first()

        mock_vcs.read_file.return_value = yaml.safe_dump({
            'build.file-blacklist': ['ci/not-real'],
        })

        revision_created_handler(revision_sha=revision.sha,
                                 repository_id=repo.id)

        mock_identify_revision.assert_called_once_with(repo, revision.sha)

        assert Build.query.first()