Hopefully plainer test strings

This commit is contained in:
Mike Spreitzer 2020-03-04 21:47:19 -05:00
parent 21f78f3348
commit 4a4852ca9a

View File

@ -87,201 +87,201 @@ func TestLiterals(t *testing.T) {
reqRN := RequestDigest{ reqRN := RequestDigest{
&request.RequestInfo{ &request.RequestInfo{
IsResourceRequest: true, IsResourceRequest: true,
Path: "/apis/gooda/v1/namespaces/goodn/goods", Path: "/apis/goodapig/v1/namespaces/goodns/goodrscs",
Verb: "goodv", Verb: "goodverb",
APIPrefix: "apis", APIPrefix: "apis",
APIGroup: "gooda", APIGroup: "goodapig",
APIVersion: "v1", APIVersion: "v1",
Namespace: "goodn", Namespace: "goodns",
Resource: "goods", Resource: "goodrscs",
Name: "eman", Name: "eman",
Parts: []string{"goods", "eman"}}, Parts: []string{"goodrscs", "eman"}},
ui} ui}
reqRU := RequestDigest{ reqRU := RequestDigest{
&request.RequestInfo{ &request.RequestInfo{
IsResourceRequest: true, IsResourceRequest: true,
Path: "/apis/gooda/v1/goods", Path: "/apis/goodapig/v1/goodrscs",
Verb: "goodv", Verb: "goodverb",
APIPrefix: "apis", APIPrefix: "apis",
APIGroup: "gooda", APIGroup: "goodapig",
APIVersion: "v1", APIVersion: "v1",
Namespace: "", Namespace: "",
Resource: "goods", Resource: "goodrscs",
Name: "eman", Name: "eman",
Parts: []string{"goods", "eman"}}, Parts: []string{"goodrscs", "eman"}},
ui} ui}
reqN := RequestDigest{ reqN := RequestDigest{
&request.RequestInfo{ &request.RequestInfo{
IsResourceRequest: false, IsResourceRequest: false,
Path: "/openapi/v2", Path: "/openapi/v2",
Verb: "goodv"}, Verb: "goodverb"},
ui} ui}
checkRules(t, true, reqRN, []fcv1a1.PolicyRulesWithSubjects{{ checkRules(t, true, reqRN, []fcv1a1.PolicyRulesWithSubjects{{
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
APIGroups: []string{"gooda"}, APIGroups: []string{"goodapig"},
Resources: []string{"goods"}, Resources: []string{"goodrscs"},
Namespaces: []string{"goodn"}}}}, { Namespaces: []string{"goodns"}}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindGroup, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindGroup,
Group: &fcv1a1.GroupSubject{"goodg1"}}}, Group: &fcv1a1.GroupSubject{"goodg1"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
APIGroups: []string{"gooda"}, APIGroups: []string{"goodapig"},
Resources: []string{"goods"}, Resources: []string{"goodrscs"},
Namespaces: []string{"goodn"}}}}, { Namespaces: []string{"goodns"}}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"*"}}}, User: &fcv1a1.UserSubject{"*"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
APIGroups: []string{"gooda"}, APIGroups: []string{"goodapig"},
Resources: []string{"goods"}, Resources: []string{"goodrscs"},
Namespaces: []string{"goodn"}}}}, { Namespaces: []string{"goodns"}}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindGroup, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindGroup,
Group: &fcv1a1.GroupSubject{"*"}}}, Group: &fcv1a1.GroupSubject{"*"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
APIGroups: []string{"gooda"}, APIGroups: []string{"goodapig"},
Resources: []string{"goods"}, Resources: []string{"goodrscs"},
Namespaces: []string{"goodn"}}}}, { Namespaces: []string{"goodns"}}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"*"}, Verbs: []string{"*"},
APIGroups: []string{"gooda"}, APIGroups: []string{"goodapig"},
Resources: []string{"goods"}, Resources: []string{"goodrscs"},
Namespaces: []string{"goodn"}}}}, { Namespaces: []string{"goodns"}}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
APIGroups: []string{"*"}, APIGroups: []string{"*"},
Resources: []string{"goods"}, Resources: []string{"goodrscs"},
Namespaces: []string{"goodn"}}}}, { Namespaces: []string{"goodns"}}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
APIGroups: []string{"gooda"}, APIGroups: []string{"goodapig"},
Resources: []string{"*"}, Resources: []string{"*"},
Namespaces: []string{"goodn"}}}}, { Namespaces: []string{"goodns"}}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
APIGroups: []string{"gooda"}, APIGroups: []string{"goodapig"},
Resources: []string{"goods"}, Resources: []string{"goodrscs"},
Namespaces: []string{"*"}}}}, Namespaces: []string{"*"}}}},
}) })
checkRules(t, false, reqRN, []fcv1a1.PolicyRulesWithSubjects{{ checkRules(t, false, reqRN, []fcv1a1.PolicyRulesWithSubjects{{
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"badu"}}}, User: &fcv1a1.UserSubject{"badu"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
APIGroups: []string{"gooda"}, APIGroups: []string{"goodapig"},
Resources: []string{"goods"}, Resources: []string{"goodrscs"},
Namespaces: []string{"goodn"}}}}, { Namespaces: []string{"goodns"}}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindGroup, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindGroup,
Group: &fcv1a1.GroupSubject{"badg"}}}, Group: &fcv1a1.GroupSubject{"badg"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
APIGroups: []string{"gooda"}, APIGroups: []string{"goodapig"},
Resources: []string{"goods"}, Resources: []string{"goodrscs"},
Namespaces: []string{"goodn"}}}}, { Namespaces: []string{"goodns"}}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"badv"}, Verbs: []string{"badverb"},
APIGroups: []string{"gooda"}, APIGroups: []string{"goodapig"},
Resources: []string{"goods"}, Resources: []string{"goodrscs"},
Namespaces: []string{"goodn"}}}}, { Namespaces: []string{"goodns"}}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
APIGroups: []string{"bada"}, APIGroups: []string{"badapig"},
Resources: []string{"goods"}, Resources: []string{"goodrscs"},
Namespaces: []string{"goodn"}}}}, { Namespaces: []string{"goodns"}}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
APIGroups: []string{"gooda"}, APIGroups: []string{"goodapig"},
Resources: []string{"bads"}, Resources: []string{"badrscs"},
Namespaces: []string{"goodn"}}}}, { Namespaces: []string{"goodns"}}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
APIGroups: []string{"gooda"}, APIGroups: []string{"goodapig"},
Resources: []string{"goods"}, Resources: []string{"goodrscs"},
Namespaces: []string{"badn"}}}}, Namespaces: []string{"badns"}}}},
}) })
checkRules(t, true, reqRU, []fcv1a1.PolicyRulesWithSubjects{{ checkRules(t, true, reqRU, []fcv1a1.PolicyRulesWithSubjects{{
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
APIGroups: []string{"gooda"}, APIGroups: []string{"goodapig"},
Resources: []string{"goods"}, Resources: []string{"goodrscs"},
ClusterScope: true}}}, { ClusterScope: true}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"*"}, Verbs: []string{"*"},
APIGroups: []string{"gooda"}, APIGroups: []string{"goodapig"},
Resources: []string{"goods"}, Resources: []string{"goodrscs"},
ClusterScope: true}}}, { ClusterScope: true}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
APIGroups: []string{"*"}, APIGroups: []string{"*"},
Resources: []string{"goods"}, Resources: []string{"goodrscs"},
ClusterScope: true}}}, { ClusterScope: true}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
APIGroups: []string{"gooda"}, APIGroups: []string{"goodapig"},
Resources: []string{"*"}, Resources: []string{"*"},
ClusterScope: true}}}}) ClusterScope: true}}}})
checkRules(t, false, reqRU, []fcv1a1.PolicyRulesWithSubjects{{ checkRules(t, false, reqRU, []fcv1a1.PolicyRulesWithSubjects{{
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"badv"}, Verbs: []string{"badverb"},
APIGroups: []string{"gooda"}, APIGroups: []string{"goodapig"},
Resources: []string{"goods"}, Resources: []string{"goodrscs"},
ClusterScope: true}}}, { ClusterScope: true}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
APIGroups: []string{"bada"}, APIGroups: []string{"badapig"},
Resources: []string{"goods"}, Resources: []string{"goodrscs"},
ClusterScope: true}}}, { ClusterScope: true}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
APIGroups: []string{"gooda"}, APIGroups: []string{"goodapig"},
Resources: []string{"bads"}, Resources: []string{"badrscs"},
ClusterScope: true}}}, { ClusterScope: true}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
ResourceRules: []fcv1a1.ResourcePolicyRule{{ ResourceRules: []fcv1a1.ResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
APIGroups: []string{"gooda"}, APIGroups: []string{"goodapig"},
Resources: []string{"goods"}, Resources: []string{"goodrscs"},
ClusterScope: false}}}, ClusterScope: false}}},
}) })
checkRules(t, true, reqN, []fcv1a1.PolicyRulesWithSubjects{{ checkRules(t, true, reqN, []fcv1a1.PolicyRulesWithSubjects{{
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
NonResourceRules: []fcv1a1.NonResourcePolicyRule{{ NonResourceRules: []fcv1a1.NonResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
NonResourceURLs: []string{"/openapi/v2"}}}}, { NonResourceURLs: []string{"/openapi/v2"}}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
@ -291,19 +291,19 @@ func TestLiterals(t *testing.T) {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
NonResourceRules: []fcv1a1.NonResourcePolicyRule{{ NonResourceRules: []fcv1a1.NonResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
NonResourceURLs: []string{"*"}}}}, NonResourceURLs: []string{"*"}}}},
}) })
checkRules(t, false, reqN, []fcv1a1.PolicyRulesWithSubjects{{ checkRules(t, false, reqN, []fcv1a1.PolicyRulesWithSubjects{{
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
NonResourceRules: []fcv1a1.NonResourcePolicyRule{{ NonResourceRules: []fcv1a1.NonResourcePolicyRule{{
Verbs: []string{"badv"}, Verbs: []string{"badverb"},
NonResourceURLs: []string{"/openapi/v2"}}}}, { NonResourceURLs: []string{"/openapi/v2"}}}}, {
Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser, Subjects: []fcv1a1.Subject{{Kind: fcv1a1.SubjectKindUser,
User: &fcv1a1.UserSubject{"goodu"}}}, User: &fcv1a1.UserSubject{"goodu"}}},
NonResourceRules: []fcv1a1.NonResourcePolicyRule{{ NonResourceRules: []fcv1a1.NonResourcePolicyRule{{
Verbs: []string{"goodv"}, Verbs: []string{"goodverb"},
NonResourceURLs: []string{"/closedapi/v2"}}}}, NonResourceURLs: []string{"/closedapi/v2"}}}},
}) })
} }