alpm_test.go 2.9 KB

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