Skip to content

Commit 05076cf

Browse files
author
Anivar A Aravind
committed
test: replace Go tests with YAML test cases for PURL builtins
- Remove v1/topdown/purl_test.go - Add YAML test cases for purl.is_valid and purl.parse - Include tests for valid/invalid PURLs and error cases - Set strict_error flag for parse error test to ensure proper error propagation
1 parent 7b5e2ee commit 05076cf

File tree

3 files changed

+133
-192
lines changed

3 files changed

+133
-192
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
cases:
3+
- note: purlbuiltins/is_valid_npm
4+
query: data.generated.p = x
5+
modules:
6+
- |
7+
package generated
8+
p := x if {
9+
purl.is_valid("pkg:npm/[email protected]", x)
10+
}
11+
want_result:
12+
- x: true
13+
14+
- note: purlbuiltins/is_valid_maven
15+
query: data.generated.p = x
16+
modules:
17+
- |
18+
package generated
19+
p := x if {
20+
purl.is_valid("pkg:maven/org.apache.xmlgraphics/[email protected]", x)
21+
}
22+
want_result:
23+
- x: true
24+
25+
- note: purlbuiltins/is_valid_invalid
26+
query: data.generated.p = x
27+
modules:
28+
- |
29+
package generated
30+
p := x if {
31+
purl.is_valid("not-a-purl", x)
32+
}
33+
want_result:
34+
- x: false
35+
36+
- note: purlbuiltins/is_valid_empty
37+
query: data.generated.p = x
38+
modules:
39+
- |
40+
package generated
41+
p := x if {
42+
purl.is_valid("", x)
43+
}
44+
want_result:
45+
- x: false
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
---
2+
cases:
3+
- note: purlbuiltins/parse_simple
4+
query: data.generated.p = x
5+
modules:
6+
- |
7+
package generated
8+
p := x if {
9+
purl.parse("pkg:npm/[email protected]", x)
10+
}
11+
want_result:
12+
- x:
13+
type: "npm"
14+
name: "foobar"
15+
version: "12.3.1"
16+
17+
- note: purlbuiltins/parse_with_namespace
18+
query: data.generated.p = x
19+
modules:
20+
- |
21+
package generated
22+
p := x if {
23+
purl.parse("pkg:maven/org.apache.xmlgraphics/[email protected]", x)
24+
}
25+
want_result:
26+
- x:
27+
type: "maven"
28+
namespace: "org.apache.xmlgraphics"
29+
name: "batik-anim"
30+
version: "1.9.1"
31+
32+
- note: purlbuiltins/parse_with_qualifiers
33+
query: data.generated.p = x
34+
modules:
35+
- |
36+
package generated
37+
p := x if {
38+
purl.parse("pkg:rpm/fedora/[email protected]?arch=i386&distro=fedora-25", x)
39+
}
40+
want_result:
41+
- x:
42+
type: "rpm"
43+
namespace: "fedora"
44+
name: "curl"
45+
version: "7.50.3-1.fc25"
46+
qualifiers:
47+
arch: "i386"
48+
distro: "fedora-25"
49+
50+
- note: purlbuiltins/parse_with_subpath
51+
query: data.generated.p = x
52+
modules:
53+
- |
54+
package generated
55+
p := x if {
56+
purl.parse("pkg:github/owner/[email protected]#path/to/file.js", x)
57+
}
58+
want_result:
59+
- x:
60+
type: "github"
61+
namespace: "owner"
62+
name: "repo"
63+
version: "v1.0.0"
64+
subpath: "path/to/file.js"
65+
66+
- note: purlbuiltins/parse_minimal
67+
query: data.generated.p = x
68+
modules:
69+
- |
70+
package generated
71+
p := x if {
72+
purl.parse("pkg:npm/lodash", x)
73+
}
74+
want_result:
75+
- x:
76+
type: "npm"
77+
name: "lodash"
78+
79+
- note: purlbuiltins/parse_invalid
80+
query: data.generated.p = x
81+
modules:
82+
- |
83+
package generated
84+
p := x if {
85+
purl.parse("not-a-purl", x)
86+
}
87+
want_error: 'purl.parse: invalid PURL'
88+
strict_error: true

v1/topdown/purl_test.go

Lines changed: 0 additions & 192 deletions
This file was deleted.

0 commit comments

Comments
 (0)