コード例 #1
0
ファイル: test_config.py プロジェクト: minichate/lint-review
 def test_default_settings_overridden(self):
     config = ReviewConfig(sample_ini, defaults_ini)
     res = config.linter_config('jshint')
     expected = {
         'config': './jshint.json',
     }
     eq_(res, expected)
コード例 #2
0
ファイル: tasks.py プロジェクト: stefanor/lint-review
def process_pull_request(user, repo, number, lintrc):
    """
    Starts processing a pull request and running the various
    lint tools against it.
    """
    log.info('Starting to process lint for %s/%s/%s', user, repo, number)
    log.debug("lintrc contents '%s'", lintrc)
    review_config = ReviewConfig(lintrc)

    if len(review_config.linters()) == 0:
        log.info('No configured linters, skipping processing.')
        return

    gh = github.get_client(config, user, repo)
    try:
        log.info('Loading pull request data from github.')
        pull_request = gh.pull_requests.get(number)
        head_repo = pull_request.head['repo']['clone_url']
        private_repo = pull_request.head['repo']['private']
        pr_head = pull_request.head['sha']

        # Clone/Update repository
        target_path = git.get_repo_path(user, repo, number, config)
        git.clone_or_update(config, head_repo, target_path, pr_head,
                            private_repo)

        processor = Processor(gh, number, pr_head, target_path, config)
        processor.load_changes()
        processor.run_tools(review_config)
        processor.publish()

        log.info('Completed lint processing for %s/%s/%s' % (
            user, repo, number))
    except BaseException, e:
        log.exception(e)
コード例 #3
0
ファイル: test_config.py プロジェクト: f3ndot/lint-review
 def test_default_settings_overridden(self):
     config = ReviewConfig(sample_ini, defaults_ini)
     res = config.linter_config('jshint')
     expected = {
         'config': './jshint.json',
     }
     eq_(res, expected)
コード例 #4
0
ファイル: test_config.py プロジェクト: f3ndot/lint-review
 def test_default_settings(self):
     config = ReviewConfig(simple_ini, defaults_ini)
     res = config.linter_config('jshint')
     expected = {
         'config': '/etc/jshint.json',
     }
     eq_(res, expected)
コード例 #5
0
def process_pull_request(user, repo, number, lintrc):
    """
    Starts processing a pull request and running the various
    lint tools against it.
    """
    log.info('Starting to process lint for %s/%s/%s', user, repo, number)
    log.debug("lintrc contents '%s'", lintrc)
    review_config = ReviewConfig(lintrc)

    if len(review_config.linters()) == 0:
        log.info('No configured linters, skipping processing.')
        return

    gh = github.get_client(config, user, repo)
    try:
        log.info('Loading pull request data from github.')
        pull_request = gh.pull_requests.get(number)
        head_repo = pull_request.head['repo']['git_url']
        pr_head = pull_request.head['sha']

        # Clone/Update repository
        target_path = git.get_repo_path(user, repo, number, config)
        git.clone_or_update(head_repo, target_path, pr_head)

        processor = Processor(gh, number, pr_head, target_path, config)
        processor.load_changes()
        processor.run_tools(review_config)
        processor.publish()

        log.info('Completed lint processing for %s/%s/%s' %
                 (user, repo, number))
    except BaseException, e:
        log.exception(e)
コード例 #6
0
ファイル: test_config.py プロジェクト: minichate/lint-review
 def test_default_settings(self):
     config = ReviewConfig(simple_ini, defaults_ini)
     res = config.linter_config('jshint')
     expected = {
         'config': '/etc/jshint.json',
     }
     eq_(res, expected)
コード例 #7
0
    def test_linter_config(self):
        config = ReviewConfig(sample_ini)
        res = config.linter_config('phpcs')
        expected = {
            'standard': 'test/CodeStandards',
            'config': 'test/phpcs.xml'
        }
        eq_(res, expected)

        res = config.linter_config('not there')
        eq_(res, [])
コード例 #8
0
    def test_linter_config(self):
        config = ReviewConfig(sample_ini)
        res = config.linter_config('phpcs')
        expected = {
            'standard': 'test/CodeStandards',
            'config': 'test/phpcs.xml'
        }
        eq_(res, expected)

        res = config.linter_config('not there')
        eq_(res, [])
コード例 #9
0
ファイル: test_tools.py プロジェクト: minichate/lint-review
def test_factory_generates_tools():
    gh = Mock(spec=github3.GitHub)
    config = ReviewConfig(sample_ini)
    linters = tools.factory(Review(gh, None), config, '')
    eq_(2, len(linters))
    assert isinstance(linters[0], tools.pep8.Pep8)
    assert isinstance(linters[1], tools.jshint.Jshint)
コード例 #10
0
def process_pull_request(user, repo, number, lintrc):
    """
    Starts processing a pull request and running the various
    lint tools against it.
    """
    log.info('Starting to process lint for %s/%s/%s', user, repo, number)
    log.debug("lintrc contents '%s'", lintrc)
    lintrc_defaults = get_lintrc_defaults(config)
    review_config = ReviewConfig(lintrc, lintrc_defaults)

    if len(review_config.linters()) == 0:
        log.info('No configured linters, skipping processing.')
        return

    try:
        log.info('Loading pull request data from github. user=%s '
                 'repo=%s number=%s', user, repo, number)
        gh = github.get_repository(config, user, repo)
        pull_request = gh.pull_request(number)

        pr_dict = pull_request.as_dict()
        head_repo = pr_dict['head']['repo']['clone_url']
        private_repo = pr_dict['head']['repo']['private']
        pr_head = pr_dict['head']['sha']

        target_branch = pr_dict['base']['ref']
        if target_branch in review_config.ignore_branches():
            log.info('Pull request into ignored branch %s, skipping processing.' %
                     target_branch)
            return

        # Clone/Update repository
        target_path = git.get_repo_path(user, repo, number, config)
        git.clone_or_update(config, head_repo, target_path, pr_head,
                            private_repo)

        processor = Processor(gh, number, pr_head,
                              target_path, config)
        processor.load_changes()
        processor.run_tools(review_config)
        processor.publish()

        log.info('Completed lint processing for %s/%s/%s' % (
            user, repo, number))
    except BaseException, e:
        log.exception(e)
コード例 #11
0
def test_run__filter_files():
    config = ReviewConfig(simple_ini)
    problems = Problems()
    files = [
        './tests/fixtures/pep8/has_errors.py',
        './tests/fixtures/phpcs/has_errors.php'
    ]
    tools.run(config, problems, files, [], '')
    eq_(6, len(problems))
コード例 #12
0
 def test_load_ini__multiple_merges_settings(self):
     config = ReviewConfig()
     config.load_ini(defaults_ini)
     config.load_ini(simple_ini)
     res = config.linter_config('jshint')
     expected = {
         'config': '/etc/jshint.json',
     }
     eq_(res, expected)
コード例 #13
0
 def test_load_ini__override(self):
     config = ReviewConfig()
     config.load_ini(defaults_ini)
     config.load_ini(sample_ini)
     res = config.linter_config('jshint')
     expected = {
         'config': './jshint.json',
     }
     eq_(res, expected)
コード例 #14
0
ファイル: test_config.py プロジェクト: jpos15/lint-review
 def test_ignore_patterns_missing(self):
     config = ReviewConfig()
     res = config.ignore_patterns()
     self.assertEqual(res, [])
コード例 #15
0
 def test_linter_config_bad(self):
     config = ReviewConfig(bad_ini)
     res = config.linter_config('phpcs')
     eq_(res, [])
コード例 #16
0
 def test_linter_listing(self):
     config = ReviewConfig(sample_ini)
     res = config.linters()
     expected = ['phpcs', 'pep8', 'jshint']
     eq_(res, expected)
コード例 #17
0
def test_factory_raises_error_on_bad_linter():
    config = ReviewConfig(bad_ini)
    tools.factory(Review(None, None), config, '')
コード例 #18
0
 def test_ignore_patterns(self):
     config = ReviewConfig(sample_ini)
     res = config.ignore_patterns()
     expected = ['test/CodeStandards/test/**', 'vendor/**']
     eq_(res, expected)
コード例 #19
0
 def test_linter_config_bad(self):
     config = ReviewConfig(bad_ini)
     res = config.linter_config('phpcs')
     eq_(res, [])
コード例 #20
0
 def test_linter_listing_bad(self):
     config = ReviewConfig(bad_ini)
     res = config.linters()
     eq_(res, [])
コード例 #21
0
ファイル: test_config.py プロジェクト: markstory/lint-review
 def test_ignore_patterns_missing(self):
     config = ReviewConfig()
     res = config.ignore_patterns()
     self.assertEqual(res, [])
コード例 #22
0
def test_factory_generates_tools():
    config = ReviewConfig(sample_ini)
    linters = tools.factory(Review(None, None), config, '')
    eq_(2, len(linters))
    assert isinstance(linters[0], tools.pep8.Pep8)
    assert isinstance(linters[1], tools.jshint.Jshint)
コード例 #23
0
 def test_ignore_patterns_missing(self):
     config = ReviewConfig()
     res = config.ignore_patterns()
     eq_(res, [])
コード例 #24
0
 def test_linter_listing_bad(self):
     config = ReviewConfig(bad_ini)
     res = config.linters()
     eq_(res, [])
コード例 #25
0
 def test_factory_raises_error_on_bad_linter(self):
     gh = Mock(spec=github3.GitHub)
     config = ReviewConfig()
     config.load_ini(bad_ini)
     self.assertRaises(ImportError, tools.factory, config,
                       Review(gh, None, config), '')
コード例 #26
0
 def test_linter_listing(self):
     config = ReviewConfig(sample_ini)
     res = config.linters()
     expected = ['phpcs', 'pep8', 'jshint']
     eq_(res, expected)
コード例 #27
0
 def test_ignore_patterns(self):
     config = ReviewConfig(sample_ini)
     res = config.ignore_patterns()
     expected = ['test/CodeStandards/test/**', 'vendor/**']
     eq_(res, expected)
コード例 #28
0
ファイル: test_tools.py プロジェクト: Ronan-/lint-review
def test_factory_raises_error_on_bad_linter():
    gh = Mock(spec=github3.GitHub)
    config = build_review_config(bad_ini)
    config = ReviewConfig()
    config.load_ini(bad_ini)
    tools.factory(Review(gh, None), config, '')
コード例 #29
0
def test_factory_raises_error_on_bad_linter():
    gh = Mock(spec=github3.GitHub)
    config = build_review_config(bad_ini)
    config = ReviewConfig()
    config.load_ini(bad_ini)
    tools.factory(Review(gh, None), config, '')
コード例 #30
0
 def test_ignore_patterns_missing(self):
     config = ReviewConfig("")
     res = config.ignore_patterns()
     eq_(res, [])
コード例 #31
0
ファイル: test_tools.py プロジェクト: markstory/lint-review
 def test_factory_raises_error_on_bad_linter(self):
     gh = Mock(spec=github3.GitHub)
     config = ReviewConfig()
     config.load_ini(bad_ini)
     self.assertRaises(ImportError, tools.factory, config,
                       Review(gh, None, config), '')