123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- package server
- import "testing"
- func TestParseModelPath(t *testing.T) {
- type input struct {
- name string
- allowInsecure bool
- }
- tests := []struct {
- name string
- args input
- want ModelPath
- wantErr error
- }{
- {
- "full path https",
- input{"https://example.com/ns/repo:tag", false},
- ModelPath{
- ProtocolScheme: "https",
- Registry: "example.com",
- Namespace: "ns",
- Repository: "repo",
- Tag: "tag",
- },
- nil,
- },
- {
- "full path http without insecure",
- input{"http://example.com/ns/repo:tag", false},
- ModelPath{},
- ErrInsecureProtocol,
- },
- {
- "full path http with insecure",
- input{"http://example.com/ns/repo:tag", true},
- ModelPath{
- ProtocolScheme: "http",
- Registry: "example.com",
- Namespace: "ns",
- Repository: "repo",
- Tag: "tag",
- },
- nil,
- },
- {
- "full path invalid protocol",
- input{"file://example.com/ns/repo:tag", false},
- ModelPath{},
- ErrInvalidProtocol,
- },
- {
- "no protocol",
- input{"example.com/ns/repo:tag", false},
- ModelPath{
- ProtocolScheme: "https",
- Registry: "example.com",
- Namespace: "ns",
- Repository: "repo",
- Tag: "tag",
- },
- nil,
- },
- {
- "no registry",
- input{"ns/repo:tag", false},
- ModelPath{
- ProtocolScheme: "https",
- Registry: DefaultRegistry,
- Namespace: "ns",
- Repository: "repo",
- Tag: "tag",
- },
- nil,
- },
- {
- "no namespace",
- input{"repo:tag", false},
- ModelPath{
- ProtocolScheme: "https",
- Registry: DefaultRegistry,
- Namespace: DefaultNamespace,
- Repository: "repo",
- Tag: "tag",
- },
- nil,
- },
- {
- "no tag",
- input{"repo", false},
- ModelPath{
- ProtocolScheme: "https",
- Registry: DefaultRegistry,
- Namespace: DefaultNamespace,
- Repository: "repo",
- Tag: DefaultTag,
- },
- nil,
- },
- {
- "invalid image format",
- input{"example.com/a/b/c", false},
- ModelPath{},
- ErrInvalidImageFormat,
- },
- }
- for _, tc := range tests {
- t.Run(tc.name, func(t *testing.T) {
- got, err := ParseModelPath(tc.args.name, tc.args.allowInsecure)
- if err != tc.wantErr {
- t.Errorf("got: %q want: %q", err, tc.wantErr)
- }
- if got != tc.want {
- t.Errorf("got: %q want: %q", got, tc.want)
- }
- })
- }
- }
|