Skip to content

Commit d2befde

Browse files
committed
Address review: real test data, data-driven tests, remove unused import
Signed-off-by: Aditya kumar singh <143548997+Adityakk9031@users.noreply.github.com>
1 parent 912acd8 commit d2befde

5 files changed

Lines changed: 104 additions & 49 deletions

File tree

minecode_pipelines/pipelines/mine_meson.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424

2525
from minecode_pipelines.pipes import meson
2626
from minecode_pipelines.pipelines import MineCodeBasePipeline
27-
from scanpipe.pipes import federatedcode
2827

2928

3029
class MineMeson(MineCodeBasePipeline):
@@ -56,6 +55,10 @@ def fetch_wrapdb_releases(self):
5655
self.releases = {}
5756

5857
def packages_count(self):
58+
"""Return the number of packages in the WrapDB releases index.
59+
60+
Used by MineCodeBasePipeline to report mining progress.
61+
"""
5962
return len(self.releases) if hasattr(self, "releases") and self.releases else 0
6063

6164
def mine_packageurls(self):

minecode_pipelines/pipes/meson.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,6 @@
2323
from packageurl import PackageURL
2424

2525

26-
MESON_WRAPDB_RELEASES_URL = (
27-
"https://raw.githubusercontent.com/mesonbuild/wrapdb/master/releases.json"
28-
)
29-
30-
3126
def get_meson_packages(package_name, package_data):
3227
"""
3328
Return a tuple of (base_purl, [versioned_purl_strings]) for a single

minecode_pipelines/tests/pipes/test_meson.py

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,9 @@
1515
from minecode_pipelines.pipes.meson import get_meson_packages
1616

1717
DATA_DIR = Path(__file__).parent.parent / "test_data" / "meson"
18-
EXPECTED_PATH = DATA_DIR / "expected_purls.json"
1918

2019

2120
class MesonPipeTests(TestCase):
22-
def test_get_meson_packages_basic(self):
23-
"""Test that get_meson_packages correctly parses a single package entry."""
24-
package_data = {
25-
"dependency_names": ["ogg"],
26-
"versions": ["1.3.6-1", "1.3.5-3", "1.3.5-2", "1.3.5-1"],
27-
}
28-
base_purl, versioned_purls = get_meson_packages("ogg", package_data)
29-
30-
self.assertEqual(str(base_purl), "pkg:meson/ogg")
31-
self.assertEqual(len(versioned_purls), 4)
32-
self.assertIn("pkg:meson/ogg@1.3.6-1", versioned_purls)
33-
self.assertIn("pkg:meson/ogg@1.3.5-1", versioned_purls)
34-
3521
def test_get_meson_packages_empty_versions(self):
3622
"""Test that get_meson_packages handles empty version lists."""
3723
package_data = {
@@ -54,11 +40,17 @@ def test_get_meson_packages_no_versions_key(self):
5440
self.assertEqual(versioned_purls, [])
5541

5642
def test_get_meson_packages_from_releases_json(self):
57-
"""Test parsing packages from the test releases.json fixture with data-driven expected output."""
43+
"""Test parsing packages from the real WrapDB releases.json fixture
44+
using data-driven expected output."""
5845
releases_path = DATA_DIR / "releases.json"
46+
expected_path = DATA_DIR / "expected_purls.json"
47+
5948
with open(releases_path, encoding="utf-8") as f:
6049
releases = json.load(f)
6150

51+
with open(expected_path, encoding="utf-8") as f:
52+
expected = json.load(f)
53+
6254
actual = {}
6355
for package_name, package_data in releases.items():
6456
if not package_data:
@@ -69,7 +61,4 @@ def test_get_meson_packages_from_releases_json(self):
6961
)
7062
actual[str(base_purl)] = sorted(versioned_purls)
7163

72-
with open(EXPECTED_PATH, encoding="utf-8") as ef:
73-
expected = json.load(ef)
74-
filtered_actual = {k: actual[k] for k in expected.keys()}
75-
self.assertEqual(filtered_actual, expected)
64+
self.assertEqual(actual, expected)
Lines changed: 40 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,46 @@
11
{
2-
"pkg:meson/ogg": [
3-
"pkg:meson/ogg@1.3.5-1",
4-
"pkg:meson/ogg@1.3.5-2",
5-
"pkg:meson/ogg@1.3.5-3",
6-
"pkg:meson/ogg@1.3.6-1"
2+
"pkg:meson/adamyaxley-obfuscate": [
3+
"pkg:meson/adamyaxley-obfuscate@1.0.0-1"
74
],
8-
"pkg:meson/zlib": [
9-
"pkg:meson/zlib@1.2.13-1",
10-
"pkg:meson/zlib@1.2.13-2",
11-
"pkg:meson/zlib@1.3.1-1"
5+
"pkg:meson/aklomp-base64": [
6+
"pkg:meson/aklomp-base64@0.5.2-1"
7+
],
8+
"pkg:meson/apache-orc": [
9+
"pkg:meson/apache-orc@2.2.0-1",
10+
"pkg:meson/apache-orc@2.2.1-1",
11+
"pkg:meson/apache-orc@2.2.2-1"
12+
],
13+
"pkg:meson/bzip2": [
14+
"pkg:meson/bzip2@1.0.8-1"
1215
],
1316
"pkg:meson/catch2": [
17+
"pkg:meson/catch2@2.11.1-1",
18+
"pkg:meson/catch2@2.11.3-1",
19+
"pkg:meson/catch2@2.13.3-1",
20+
"pkg:meson/catch2@2.13.3-2",
21+
"pkg:meson/catch2@2.13.7-1",
22+
"pkg:meson/catch2@2.13.8-1",
23+
"pkg:meson/catch2@2.4.1-1",
24+
"pkg:meson/catch2@2.5.0-1",
25+
"pkg:meson/catch2@2.7.2-1",
26+
"pkg:meson/catch2@2.8.0-1",
27+
"pkg:meson/catch2@2.9.0-1",
28+
"pkg:meson/catch2@3.1.0-1",
29+
"pkg:meson/catch2@3.10.0-1",
30+
"pkg:meson/catch2@3.11.0-1",
31+
"pkg:meson/catch2@3.12.0-1",
32+
"pkg:meson/catch2@3.13.0-1",
33+
"pkg:meson/catch2@3.2.0-1",
34+
"pkg:meson/catch2@3.3.2-1",
1435
"pkg:meson/catch2@3.4.0-1",
15-
"pkg:meson/catch2@3.5.2-1"
36+
"pkg:meson/catch2@3.5.2-1",
37+
"pkg:meson/catch2@3.5.3-1",
38+
"pkg:meson/catch2@3.5.4-1",
39+
"pkg:meson/catch2@3.6.0-1",
40+
"pkg:meson/catch2@3.7.0-1",
41+
"pkg:meson/catch2@3.7.1-1",
42+
"pkg:meson/catch2@3.8.0-1",
43+
"pkg:meson/catch2@3.8.1-1",
44+
"pkg:meson/catch2@3.9.1-1"
1645
]
17-
}
46+
}
Lines changed: 52 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,36 @@
11
{
2-
"ogg": {
2+
"adamyaxley-obfuscate": {
33
"dependency_names": [
4-
"ogg"
4+
"Obfuscate"
55
],
66
"versions": [
7-
"1.3.6-1",
8-
"1.3.5-3",
9-
"1.3.5-2",
10-
"1.3.5-1"
7+
"1.0.0-1"
118
]
129
},
13-
"zlib": {
10+
"aklomp-base64": {
1411
"dependency_names": [
15-
"zlib"
12+
"base64"
1613
],
1714
"versions": [
18-
"1.3.1-1",
19-
"1.2.13-2",
20-
"1.2.13-1"
15+
"0.5.2-1"
16+
]
17+
},
18+
"apache-orc": {
19+
"dependency_names": [
20+
"orc"
21+
],
22+
"versions": [
23+
"2.2.2-1",
24+
"2.2.1-1",
25+
"2.2.0-1"
26+
]
27+
},
28+
"bzip2": {
29+
"dependency_names": [
30+
"bzip2"
31+
],
32+
"versions": [
33+
"1.0.8-1"
2134
]
2235
},
2336
"catch2": {
@@ -26,8 +39,34 @@
2639
"catch2-with-main"
2740
],
2841
"versions": [
42+
"3.13.0-1",
43+
"3.12.0-1",
44+
"3.11.0-1",
45+
"3.10.0-1",
46+
"3.9.1-1",
47+
"3.8.1-1",
48+
"3.8.0-1",
49+
"3.7.1-1",
50+
"3.7.0-1",
51+
"3.6.0-1",
52+
"3.5.4-1",
53+
"3.5.3-1",
2954
"3.5.2-1",
30-
"3.4.0-1"
55+
"3.4.0-1",
56+
"3.3.2-1",
57+
"3.2.0-1",
58+
"3.1.0-1",
59+
"2.13.8-1",
60+
"2.13.7-1",
61+
"2.13.3-2",
62+
"2.13.3-1",
63+
"2.11.3-1",
64+
"2.11.1-1",
65+
"2.9.0-1",
66+
"2.8.0-1",
67+
"2.7.2-1",
68+
"2.5.0-1",
69+
"2.4.1-1"
3170
]
3271
}
33-
}
72+
}

0 commit comments

Comments
 (0)