Skip to content

Commit 095fbef

Browse files
committed
fixed code style
Signed-off-by: Tushar912 <tushar.912u@gmail.com>
1 parent 1288789 commit 095fbef

4 files changed

Lines changed: 68 additions & 51 deletions

File tree

vulnerabilities/importer_yielder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@
227227
'data_source_cfg': {},
228228
},
229229
{
230-
'name': 'elixir_security' ,
230+
'name': 'elixir_security',
231231
'license': '',
232232
'last_run': None,
233233
'data_source': 'ElixirSecurityDataSource',

vulnerabilities/importers/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,4 @@
4343
from vulnerabilities.importers.kaybee import KaybeeDataSource
4444
from vulnerabilities.importers.nginx import NginxDataSource
4545
from vulnerabilities.importers.postgresql import PostgreSQLDataSource
46-
from vulnerabilities.importers.elixir_security import ElixirSecurityDataSource
46+
from vulnerabilities.importers.elixir_security import ElixirSecurityDataSource

vulnerabilities/importers/elixir_security.py

Lines changed: 38 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,16 @@
3434
from vulnerabilities.data_source import Advisory
3535
from vulnerabilities.data_source import Reference
3636

37+
3738
class ElixirSecurityDataSource(GitDataSource):
3839
def __enter__(self):
3940
super(ElixirSecurityDataSource, self).__enter__()
4041

4142
if not getattr(self, "_added_files", None):
4243
self._added_files, self._updated_files = self.file_changes(
43-
recursive=True, file_ext="yml",subdir="./packages"
44+
recursive=True, file_ext="yml", subdir="./packages"
4445
)
4546

46-
4747
def updated_advisories(self) -> Set[Advisory]:
4848
files = self._updated_files
4949
advisories = []
@@ -62,61 +62,67 @@ def added_advisories(self) -> Set[Advisory]:
6262
advisories.append(processed_data)
6363
return self.batch_advisories(advisories)
6464

65-
@staticmethod
65+
@staticmethod
6666
def generate_all_versions_list(pkg_name):
6767
resp = requests.get(f"https://hex.pm/api/packages/{pkg_name}")
6868
resp = resp.content
6969
json_resp = json.loads(resp)
7070
versions_list = []
71-
for release in json_resp['releases']:
72-
versions_list.append(release['version'])
71+
for release in json_resp["releases"]:
72+
versions_list.append(release["version"])
7373
return versions_list
7474

75-
76-
def get_pkg_from_range(self,versions_list,pkg_name):
75+
def get_pkg_from_range(self, versions_list, pkg_name):
7776
pkg_versions = []
7877
all_versions_list = self.generate_all_versions_list(pkg_name)
7978
if versions_list is None:
8079
return
8180
for version in versions_list:
82-
if re.match('^>=',version):
81+
if re.match("^>=", version):
8382
index = all_versions_list.index(version[3:])
84-
pkg_versions = pkg_versions + all_versions_list[0:index+1]
85-
elif re.match('^>',version):
83+
pkg_versions = pkg_versions + all_versions_list[0: index + 1]
84+
elif re.match("^>", version):
8685
index = all_versions_list.index(version[2:])
8786
pkg_versions = pkg_versions + all_versions_list[0:index]
88-
elif re.match('^<',version):
87+
elif re.match("^<", version):
8988
index = all_versions_list.index(version[2:])
90-
pkg_versions = pkg_versions + all_versions_list[index+1:-1]
91-
else :
89+
pkg_versions = pkg_versions + all_versions_list[index + 1: -1]
90+
else:
9291
pkg_versions.append(version[3:])
9392
return pkg_versions
94-
95-
96-
def process_file(self,path):
93+
94+
def process_file(self, path):
9795
with open(path) as f:
9896
yaml_file = yaml.safe_load(f)
99-
pkg_name = yaml_file['package']
100-
safe_pkg_versions =[]
101-
if yaml_file.get('unaffected_versions'):
102-
safe_pkg_versions = self.get_pkg_from_range(yaml_file['patched_versions']+yaml_file['unaffected_versions'],pkg_name)
97+
pkg_name = yaml_file["package"]
98+
safe_pkg_versions = []
99+
if yaml_file.get("unaffected_versions"):
100+
safe_pkg_versions = self.get_pkg_from_range(
101+
yaml_file["patched_versions"] + yaml_file["unaffected_versions"],
102+
pkg_name,
103+
)
103104
else:
104-
safe_pkg_versions = self.get_pkg_from_range(yaml_file['patched_versions'],pkg_name)
105-
cve_id = yaml_file['cve']
105+
safe_pkg_versions = self.get_pkg_from_range(
106+
yaml_file["patched_versions"], pkg_name
107+
)
108+
cve_id = yaml_file["cve"]
106109
safe_purls = []
107110
if safe_pkg_versions is not None:
108-
safe_purls ={ PackageURL(name=pkg_name,
109-
type='hex',
110-
version=version)
111-
for version in safe_pkg_versions}
112-
113-
vuln_reference = [Reference(
114-
url=yaml_file['link'],
115-
)]
111+
safe_purls = {
112+
PackageURL(name=pkg_name, type="hex", version=version)
113+
for version in safe_pkg_versions
114+
}
115+
116+
vuln_reference = [
117+
Reference(
118+
url=yaml_file["link"],
119+
)
120+
]
116121

117122
return Advisory(
118-
summary=yaml_file['description'],
123+
summary=yaml_file["description"],
119124
impacted_package_urls=[],
120125
resolved_package_urls=safe_purls,
121126
cve_id=cve_id,
122-
vuln_references=vuln_reference)
127+
vuln_references=vuln_reference,
128+
)

vulnerabilities/tests/test_elixir_security.py

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -34,41 +34,52 @@
3434

3535

3636
class TestElixirSecurityDataSource(TestCase):
37-
3837
@classmethod
3938
def setUpClass(cls):
4039
data_source_cfg = {
41-
'repository_url': 'https://test.net', }
40+
"repository_url": "https://test.net",
41+
}
4242
cls.data_src = ElixirSecurityDataSource(1, config=data_source_cfg)
4343

4444
def test_generate_all_versions_list(self):
45-
package = 'coherence'
45+
package = "coherence"
4646
actual_list = self.data_src.generate_all_versions_list(package)
47-
expected_list = ['0.5.2', '0.5.1', '0.5.0', '0.4.0', '0.3.1', '0.3.0', '0.2.0', '0.1.3', '0.1.2', '0.1.1', '0.1.0']
47+
expected_list = [
48+
"0.5.2",
49+
"0.5.1",
50+
"0.5.0",
51+
"0.4.0",
52+
"0.3.1",
53+
"0.3.0",
54+
"0.2.0",
55+
"0.1.3",
56+
"0.1.2",
57+
"0.1.1",
58+
"0.1.0",
59+
]
4860
assert actual_list == expected_list
4961

5062
def test_process_file(self):
5163

5264
path = os.path.join(BASE_DIR, "test_data/elixir_security/test_file.yml")
5365
expected_data = Advisory(
54-
summary=('The Coherence library has "Mass Assignment"-like vulnerabilities.\n'),
55-
66+
summary=(
67+
'The Coherence library has "Mass Assignment"-like vulnerabilities.\n'
68+
),
5669
impacted_package_urls=[],
57-
5870
resolved_package_urls={
5971
PackageURL(
60-
type='hex',
61-
name='coherence',
62-
version='0.5.2',
63-
),
64-
},
72+
type="hex",
73+
name="coherence",
74+
version="0.5.2",
75+
),
76+
},
6577
vuln_references=[
66-
Reference(
67-
url="https://github.com/smpallen99/coherence/issues/270"
68-
)
78+
Reference(url="https://github.com/smpallen99/coherence/issues/270")
6979
],
70-
cve_id='2018-20301')
80+
cve_id="2018-20301",
81+
)
7182

7283
found_data = self.data_src.process_file(path)
7384

74-
assert expected_data == found_data
85+
assert expected_data == found_data

0 commit comments

Comments
 (0)