Skip to content

Commit

Permalink
GixyBear.py: Add GixyBear
Browse files Browse the repository at this point in the history
This commit adds GixyBear.

Closes #1724
  • Loading branch information
suggoitanoshi committed Nov 5, 2018
1 parent dc8c95c commit 0077b2b
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 0 deletions.
33 changes: 33 additions & 0 deletions bears/configfiles/GixyBear.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import json

from coalib.bearlib.abstractions.Linter import linter
from dependency_management.requirements.PipRequirement import PipRequirement
from coalib.results.RESULT_SEVERITY import RESULT_SEVERITY
from coalib.results.Result import Result


@linter(executable='gixy')
class GixyBear:
"""
A wrapper for coala around Gixy
see <https://github.com/yandex/gixy> for more information about the tool
"""
REQUIREMENTS = {PipRequirement('gixy', '0.1.*')}

severity_map = {'HIGH': RESULT_SEVERITY.MAJOR,
'MEDIUM': RESULT_SEVERITY.NORMAL,
'LOW': RESULT_SEVERITY.INFO}

@staticmethod
def create_arguments(filename, file, config_file):
return ('--format=json', filename)

def process_output(self, output, filename, file):
output = json.loads(output) if output else []
for issue in output:
yield Result.from_values(
origin=self,
message=issue['summary'],
severity=self.severity_map[issue['severity']],
file=filename)
25 changes: 25 additions & 0 deletions tests/configfiles/GixyBearTest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

from bears.configfiles.GixyBear import GixyBear
from coalib.testing.LocalBearTestHelper import verify_local_bear

good_file = """
server {
location ~ \.(gif|jpg|png)$ {
root /data/images;
}
}
"""

bad_file = """
http{
server{
location ~ /proxy/(.*)/(.*)/(.*)$ {
proxy_pass $1://$2/$3;
}
}
}
"""

GixyBearTest = verify_local_bear(GixyBear,
valid_files=(good_file, ),
invalid_files=(bad_file, ))

0 comments on commit 0077b2b

Please sign in to comment.