alpm_test.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package db
  2. import (
  3. "testing"
  4. alpm "github.com/Jguer/go-alpm"
  5. "github.com/Morganamilo/go-pacmanconf"
  6. "github.com/stretchr/testify/assert"
  7. )
  8. func TestAlpmExecutor(t *testing.T) {
  9. pacmanConf := &pacmanconf.Config{RootDir: "/",
  10. DBPath: "/var/lib/pacman/",
  11. CacheDir: []string{"/cachedir/", "/another/"},
  12. HookDir: []string{"/hookdir/"},
  13. GPGDir: "/gpgdir/",
  14. LogFile: "/logfile",
  15. HoldPkg: []string(nil),
  16. IgnorePkg: []string{"ignore", "this", "package"},
  17. IgnoreGroup: []string{"ignore", "this", "group"},
  18. Architecture: "8086",
  19. XferCommand: "",
  20. NoUpgrade: []string{"noupgrade"},
  21. NoExtract: []string{"noextract"},
  22. CleanMethod: []string{"KeepInstalled"},
  23. SigLevel: []string{"PackageOptional", "PackageTrustedOnly", "DatabaseOptional", "DatabaseTrustedOnly"},
  24. LocalFileSigLevel: []string(nil),
  25. RemoteFileSigLevel: []string(nil),
  26. UseSyslog: false,
  27. Color: false,
  28. UseDelta: 0,
  29. TotalDownload: true,
  30. CheckSpace: true,
  31. VerbosePkgLists: true,
  32. DisableDownloadTimeout: false,
  33. Repos: []pacmanconf.Repository{
  34. {Name: "repo1", Servers: []string{"repo1"}, SigLevel: []string(nil), Usage: []string{"All"}},
  35. {Name: "repo2", Servers: []string{"repo2"}, SigLevel: []string(nil), Usage: []string{"All"}}}}
  36. aExec, err := NewExecutor(pacmanConf, func(question alpm.QuestionAny) {})
  37. assert.NoError(t, err)
  38. assert.NotNil(t, aExec.conf)
  39. assert.EqualValues(t, pacmanConf, aExec.conf)
  40. assert.NotNil(t, aExec.localDB)
  41. assert.NotNil(t, aExec.syncDB)
  42. assert.NotNil(t, aExec.questionCallback)
  43. h := aExec.handle
  44. assert.NotNil(t, h)
  45. root, err := h.Root()
  46. assert.Nil(t, err)
  47. assert.Equal(t, "/", root)
  48. dbPath, err := h.DBPath()
  49. assert.Nil(t, err)
  50. assert.Equal(t, "/var/lib/pacman/", dbPath)
  51. cache, err := h.CacheDirs()
  52. assert.Nil(t, err)
  53. assert.Equal(t, []string{"/cachedir/", "/another/"}, cache.Slice())
  54. log, err := h.LogFile()
  55. assert.Nil(t, err)
  56. assert.Equal(t, "/logfile", log)
  57. gpg, err := h.GPGDir()
  58. assert.Nil(t, err)
  59. assert.Equal(t, "/gpgdir/", gpg)
  60. hook, err := h.HookDirs()
  61. assert.Nil(t, err)
  62. assert.Equal(t, []string{"/usr/share/libalpm/hooks/", "/hookdir/"}, hook.Slice())
  63. arch, err := h.Arch()
  64. assert.Nil(t, err)
  65. assert.Equal(t, "8086", arch)
  66. ignorePkg, err := h.IgnorePkgs()
  67. assert.Nil(t, err)
  68. assert.Equal(t, []string{"ignore", "this", "package"}, ignorePkg.Slice())
  69. ignoreGroup, err := h.IgnoreGroups()
  70. assert.Nil(t, err)
  71. assert.Equal(t, []string{"ignore", "this", "group"}, ignoreGroup.Slice())
  72. noUp, err := h.NoUpgrades()
  73. assert.Nil(t, err)
  74. assert.Equal(t, []string{"noupgrade"}, noUp.Slice())
  75. noEx, err := h.NoExtracts()
  76. assert.Nil(t, err)
  77. assert.Equal(t, []string{"noextract"}, noEx.Slice())
  78. check, err := h.CheckSpace()
  79. assert.Nil(t, err)
  80. assert.Equal(t, true, check)
  81. }