Browse Source

fix(tests): test handle creation

jguer 4 years ago
parent
commit
388aaf6d7f
2 changed files with 130 additions and 44 deletions
  1. 31 44
      main_test.go
  2. 99 0
      pkg/db/alpm_test.go

+ 31 - 44
main_test.go

@@ -3,58 +3,45 @@ package main
 import (
 	"testing"
 
+	"github.com/Morganamilo/go-pacmanconf"
 	"github.com/stretchr/testify/assert"
 
 	"github.com/Jguer/yay/v10/pkg/settings"
 )
 
-func TestInitAlpm(t *testing.T) {
+func TestPacmanConf(t *testing.T) {
+	expectedPacmanConf := &pacmanconf.Config{RootDir: "/",
+		DBPath:                 "//var/lib/pacman/",
+		CacheDir:               []string{"/cachedir/", "/another/"},
+		HookDir:                []string{"/hookdir/"},
+		GPGDir:                 "/gpgdir/",
+		LogFile:                "/logfile",
+		HoldPkg:                []string(nil),
+		IgnorePkg:              []string{"ignore", "this", "package"},
+		IgnoreGroup:            []string{"ignore", "this", "group"},
+		Architecture:           "8086",
+		XferCommand:            "",
+		NoUpgrade:              []string{"noupgrade"},
+		NoExtract:              []string{"noextract"},
+		CleanMethod:            []string{"KeepInstalled"},
+		SigLevel:               []string{"PackageOptional", "PackageTrustedOnly", "DatabaseOptional", "DatabaseTrustedOnly"},
+		LocalFileSigLevel:      []string(nil),
+		RemoteFileSigLevel:     []string(nil),
+		UseSyslog:              false,
+		Color:                  false,
+		UseDelta:               0,
+		TotalDownload:          true,
+		CheckSpace:             true,
+		VerbosePkgLists:        true,
+		DisableDownloadTimeout: false,
+		Repos: []pacmanconf.Repository{
+			{Name: "repo1", Servers: []string{"repo1"}, SigLevel: []string(nil), Usage: []string{"All"}},
+			{Name: "repo2", Servers: []string{"repo2"}, SigLevel: []string(nil), Usage: []string{"All"}}}}
+
 	pacmanConf, color, err := initAlpm(settings.MakeArguments(), "testdata/pacman.conf")
 	assert.Nil(t, err)
 	assert.NotNil(t, pacmanConf)
 	assert.Equal(t, color, false)
+	assert.EqualValues(t, expectedPacmanConf, pacmanConf)
 
-	root, err := h.Root()
-	assert.Nil(t, err)
-	assert.Equal(t, "/", root)
-
-	cache, err := h.CacheDirs()
-	assert.Nil(t, err)
-	assert.Equal(t, []string{"/cachedir/", "/another/"}, cache.Slice())
-
-	log, err := h.LogFile()
-	assert.Nil(t, err)
-	assert.Equal(t, "/logfile", log)
-
-	gpg, err := h.GPGDir()
-	assert.Nil(t, err)
-	assert.Equal(t, "/gpgdir/", gpg)
-
-	hook, err := h.HookDirs()
-	assert.Nil(t, err)
-	assert.Equal(t, []string{"/usr/share/libalpm/hooks/", "/hookdir/"}, hook.Slice())
-
-	arch, err := h.Arch()
-	assert.Nil(t, err)
-	assert.Equal(t, "8086", arch)
-
-	ignorePkg, err := h.IgnorePkgs()
-	assert.Nil(t, err)
-	assert.Equal(t, []string{"ignore", "this", "package"}, ignorePkg.Slice())
-
-	ignoreGroup, err := h.IgnoreGroups()
-	assert.Nil(t, err)
-	assert.Equal(t, []string{"ignore", "this", "group"}, ignoreGroup.Slice())
-
-	noUp, err := h.NoUpgrades()
-	assert.Nil(t, err)
-	assert.Equal(t, []string{"noupgrade"}, noUp.Slice())
-
-	noEx, err := h.NoExtracts()
-	assert.Nil(t, err)
-	assert.Equal(t, []string{"noextract"}, noEx.Slice())
-
-	check, err := h.CheckSpace()
-	assert.Nil(t, err)
-	assert.Equal(t, true, check)
 }

+ 99 - 0
pkg/db/alpm_test.go

@@ -0,0 +1,99 @@
+package db
+
+import (
+	"testing"
+
+	alpm "github.com/Jguer/go-alpm"
+	"github.com/Morganamilo/go-pacmanconf"
+	"github.com/stretchr/testify/assert"
+)
+
+func TestAlpmExecutor(t *testing.T) {
+	pacmanConf := &pacmanconf.Config{RootDir: "/",
+		DBPath:                 "/var/lib/pacman/",
+		CacheDir:               []string{"/cachedir/", "/another/"},
+		HookDir:                []string{"/hookdir/"},
+		GPGDir:                 "/gpgdir/",
+		LogFile:                "/logfile",
+		HoldPkg:                []string(nil),
+		IgnorePkg:              []string{"ignore", "this", "package"},
+		IgnoreGroup:            []string{"ignore", "this", "group"},
+		Architecture:           "8086",
+		XferCommand:            "",
+		NoUpgrade:              []string{"noupgrade"},
+		NoExtract:              []string{"noextract"},
+		CleanMethod:            []string{"KeepInstalled"},
+		SigLevel:               []string{"PackageOptional", "PackageTrustedOnly", "DatabaseOptional", "DatabaseTrustedOnly"},
+		LocalFileSigLevel:      []string(nil),
+		RemoteFileSigLevel:     []string(nil),
+		UseSyslog:              false,
+		Color:                  false,
+		UseDelta:               0,
+		TotalDownload:          true,
+		CheckSpace:             true,
+		VerbosePkgLists:        true,
+		DisableDownloadTimeout: false,
+		Repos: []pacmanconf.Repository{
+			{Name: "repo1", Servers: []string{"repo1"}, SigLevel: []string(nil), Usage: []string{"All"}},
+			{Name: "repo2", Servers: []string{"repo2"}, SigLevel: []string(nil), Usage: []string{"All"}}}}
+
+	aExec, err := NewExecutor(pacmanConf, func(question alpm.QuestionAny) {})
+	assert.NoError(t, err)
+
+	assert.NotNil(t, aExec.conf)
+	assert.EqualValues(t, pacmanConf, aExec.conf)
+
+	assert.NotNil(t, aExec.localDB)
+	assert.NotNil(t, aExec.syncDB)
+	assert.NotNil(t, aExec.questionCallback)
+	h := aExec.handle
+	assert.NotNil(t, h)
+
+	root, err := h.Root()
+	assert.Nil(t, err)
+	assert.Equal(t, "/", root)
+
+	dbPath, err := h.DBPath()
+	assert.Nil(t, err)
+	assert.Equal(t, "/var/lib/pacman/", dbPath)
+
+	cache, err := h.CacheDirs()
+	assert.Nil(t, err)
+	assert.Equal(t, []string{"/cachedir/", "/another/"}, cache.Slice())
+
+	log, err := h.LogFile()
+	assert.Nil(t, err)
+	assert.Equal(t, "/logfile", log)
+
+	gpg, err := h.GPGDir()
+	assert.Nil(t, err)
+	assert.Equal(t, "/gpgdir/", gpg)
+
+	hook, err := h.HookDirs()
+	assert.Nil(t, err)
+	assert.Equal(t, []string{"/usr/share/libalpm/hooks/", "/hookdir/"}, hook.Slice())
+
+	arch, err := h.Arch()
+	assert.Nil(t, err)
+	assert.Equal(t, "8086", arch)
+
+	ignorePkg, err := h.IgnorePkgs()
+	assert.Nil(t, err)
+	assert.Equal(t, []string{"ignore", "this", "package"}, ignorePkg.Slice())
+
+	ignoreGroup, err := h.IgnoreGroups()
+	assert.Nil(t, err)
+	assert.Equal(t, []string{"ignore", "this", "group"}, ignoreGroup.Slice())
+
+	noUp, err := h.NoUpgrades()
+	assert.Nil(t, err)
+	assert.Equal(t, []string{"noupgrade"}, noUp.Slice())
+
+	noEx, err := h.NoExtracts()
+	assert.Nil(t, err)
+	assert.Equal(t, []string{"noextract"}, noEx.Slice())
+
+	check, err := h.CheckSpace()
+	assert.Nil(t, err)
+	assert.Equal(t, true, check)
+}