refactor
This commit is contained in:
parent
bfeaed40d5
commit
ee6d704e1e
@ -1,4 +1,4 @@
|
|||||||
package main
|
package common
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
@ -1,28 +1,30 @@
|
|||||||
package main
|
package common_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"slices"
|
"slices"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"src.opensuse.org/autogits/common"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestSubmodulesParsing(t *testing.T) {
|
func TestSubmodulesParsing(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
file string
|
file string
|
||||||
subs []Submodule
|
subs []common.Submodule
|
||||||
has_error bool
|
has_error bool
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "Empty submodules file",
|
name: "Empty submodules file",
|
||||||
file: "",
|
file: "",
|
||||||
subs: []Submodule{},
|
subs: []common.Submodule{},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Empty single submodule",
|
name: "Empty single submodule",
|
||||||
file: "[submodule \"Foo\"]",
|
file: "[submodule \"Foo\"]",
|
||||||
subs: []Submodule{
|
subs: []common.Submodule{
|
||||||
{Name: "Foo"},
|
{Name: "Foo"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -59,7 +61,7 @@ func TestSubmodulesParsing(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "Submodule with one entry",
|
name: "Submodule with one entry",
|
||||||
file: "[submodule \"libfoo\"]\npath = foo\n\n",
|
file: "[submodule \"libfoo\"]\npath = foo\n\n",
|
||||||
subs: []Submodule{
|
subs: []common.Submodule{
|
||||||
{
|
{
|
||||||
Name: "libfoo",
|
Name: "libfoo",
|
||||||
Path: "foo",
|
Path: "foo",
|
||||||
@ -69,7 +71,7 @@ func TestSubmodulesParsing(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "Submodules with funny entries entries",
|
name: "Submodules with funny entries entries",
|
||||||
file: "[submodule \"libfoo\"]\npath = foo [ bar \n\n [ submodule \"test \" ]\npath=ma ma\nurl= safe",
|
file: "[submodule \"libfoo\"]\npath = foo [ bar \n\n [ submodule \"test \" ]\npath=ma ma\nurl= safe",
|
||||||
subs: []Submodule{
|
subs: []common.Submodule{
|
||||||
{
|
{
|
||||||
Name: "libfoo",
|
Name: "libfoo",
|
||||||
Path: "foo [ bar",
|
Path: "foo [ bar",
|
||||||
@ -84,7 +86,7 @@ func TestSubmodulesParsing(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "Submodule with valid entries",
|
name: "Submodule with valid entries",
|
||||||
file: "[submodule \"libfoo\"]\npath=foo\nurl=goo\nupdate=none\nbranch=test\nignore=all\nshallow=true",
|
file: "[submodule \"libfoo\"]\npath=foo\nurl=goo\nupdate=none\nbranch=test\nignore=all\nshallow=true",
|
||||||
subs: []Submodule{
|
subs: []common.Submodule{
|
||||||
{
|
{
|
||||||
Name: "libfoo",
|
Name: "libfoo",
|
||||||
Path: "foo",
|
Path: "foo",
|
||||||
@ -105,7 +107,7 @@ func TestSubmodulesParsing(t *testing.T) {
|
|||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
mods, err := ParseSubmodulesFile(strings.NewReader(test.file))
|
mods, err := common.ParseSubmodulesFile(strings.NewReader(test.file))
|
||||||
if test.has_error {
|
if test.has_error {
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Error("Expected an error")
|
t.Error("Expected an error")
|
||||||
@ -123,7 +125,7 @@ func TestSubmodulesParsing(t *testing.T) {
|
|||||||
func TestSubmodulesWriting(t *testing.T) {
|
func TestSubmodulesWriting(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
subs []Submodule
|
subs []common.Submodule
|
||||||
output []byte
|
output []byte
|
||||||
has_error bool
|
has_error bool
|
||||||
}{
|
}{
|
||||||
@ -133,7 +135,7 @@ func TestSubmodulesWriting(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "single submodule",
|
name: "single submodule",
|
||||||
subs: []Submodule{
|
subs: []common.Submodule{
|
||||||
{
|
{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
Url: "bar",
|
Url: "bar",
|
||||||
@ -143,7 +145,7 @@ func TestSubmodulesWriting(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "empty name submodule",
|
name: "empty name submodule",
|
||||||
subs: []Submodule{
|
subs: []common.Submodule{
|
||||||
{
|
{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
Url: "bar",
|
Url: "bar",
|
||||||
@ -154,7 +156,7 @@ func TestSubmodulesWriting(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "submodule with all the things",
|
name: "submodule with all the things",
|
||||||
subs: []Submodule{
|
subs: []common.Submodule{
|
||||||
{
|
{
|
||||||
Name: "foo",
|
Name: "foo",
|
||||||
Url: "bar",
|
Url: "bar",
|
||||||
@ -176,7 +178,7 @@ func TestSubmodulesWriting(t *testing.T) {
|
|||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
out := bytes.Buffer{}
|
out := bytes.Buffer{}
|
||||||
if err := WriteSubmodules(test.subs, &out); err != nil {
|
if err := common.WriteSubmodules(test.subs, &out); err != nil {
|
||||||
if !test.has_error {
|
if !test.has_error {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
@ -262,15 +262,15 @@ func (rs *PRSet) Merge() error {
|
|||||||
return fmt.Errorf("Failed fetching data during .gitmodules merge resoulution: %w", err)
|
return fmt.Errorf("Failed fetching data during .gitmodules merge resoulution: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
subs1, err := ParseSubmodulesFile(strings.NewReader(s1))
|
subs1, err := common.ParseSubmodulesFile(strings.NewReader(s1))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Failed parsing submodule file [%s] in merge: %w", s.States[0], err)
|
return fmt.Errorf("Failed parsing submodule file [%s] in merge: %w", s.States[0], err)
|
||||||
}
|
}
|
||||||
subs2, err := ParseSubmodulesFile(strings.NewReader(s2))
|
subs2, err := common.ParseSubmodulesFile(strings.NewReader(s2))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Failed parsing submodule file [%s] in merge: %w", s.States[0], err)
|
return fmt.Errorf("Failed parsing submodule file [%s] in merge: %w", s.States[0], err)
|
||||||
}
|
}
|
||||||
subs3, err := ParseSubmodulesFile(strings.NewReader(s3))
|
subs3, err := common.ParseSubmodulesFile(strings.NewReader(s3))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Failed parsing submodule file [%s] in merge: %w", s.States[0], err)
|
return fmt.Errorf("Failed parsing submodule file [%s] in merge: %w", s.States[0], err)
|
||||||
}
|
}
|
||||||
@ -279,7 +279,7 @@ func (rs *PRSet) Merge() error {
|
|||||||
// this will update submodules
|
// this will update submodules
|
||||||
mergedSubs := slices.Concat(subs1, subs2, subs3)
|
mergedSubs := slices.Concat(subs1, subs2, subs3)
|
||||||
|
|
||||||
var filteredSubs []Submodule = make([]Submodule, 0, max(len(subs1), len(subs2), len(subs3)))
|
var filteredSubs []common.Submodule = make([]common.Submodule, 0, max(len(subs1), len(subs2), len(subs3)))
|
||||||
nextSub:
|
nextSub:
|
||||||
for subName := range submodules {
|
for subName := range submodules {
|
||||||
|
|
||||||
@ -296,7 +296,7 @@ func (rs *PRSet) Merge() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Can't open .gitmodules for writing: %w", err)
|
return fmt.Errorf("Can't open .gitmodules for writing: %w", err)
|
||||||
}
|
}
|
||||||
if err = WriteSubmodules(filteredSubs, out); err != nil {
|
if err = common.WriteSubmodules(filteredSubs, out); err != nil {
|
||||||
return fmt.Errorf("Can't write .gitmodules: %w", err)
|
return fmt.Errorf("Can't write .gitmodules: %w", err)
|
||||||
}
|
}
|
||||||
if out.Close(); err != nil {
|
if out.Close(); err != nil {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user