mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-06-01 04:40:38 +00:00
96 lines
2.4 KiB
Go
96 lines
2.4 KiB
Go
package debian
|
|
|
|
import (
|
|
"github.com/smira/aptly/database"
|
|
. "launchpad.net/gocheck"
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
type NullSigner struct{}
|
|
|
|
func (n *NullSigner) SetKey(keyRef string) {
|
|
|
|
}
|
|
|
|
func (n *NullSigner) DetachedSign(source string, destination string) error {
|
|
return nil
|
|
}
|
|
|
|
func (n *NullSigner) ClearSign(source string, destination string) error {
|
|
return nil
|
|
}
|
|
|
|
type PublishedRepoSuite struct {
|
|
PackageListMixinSuite
|
|
repo *PublishedRepo
|
|
packageRepo *Repository
|
|
db database.Storage
|
|
packageCollection *PackageCollection
|
|
}
|
|
|
|
var _ = Suite(&PublishedRepoSuite{})
|
|
|
|
func (s *PublishedRepoSuite) SetUpTest(c *C) {
|
|
s.SetUpPackages()
|
|
|
|
s.db, _ = database.OpenDB(c.MkDir())
|
|
|
|
s.packageRepo = NewRepository(c.MkDir())
|
|
|
|
repo, _ := NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{})
|
|
repo.packageRefs = s.reflist
|
|
|
|
snapshot, _ := NewSnapshotFromRepository("snap", repo)
|
|
|
|
s.repo = NewPublishedRepo("ppa", "squeeze", "main", nil, snapshot)
|
|
|
|
s.packageCollection = NewPackageCollection(s.db)
|
|
s.packageCollection.Update(s.p1)
|
|
s.packageCollection.Update(s.p2)
|
|
s.packageCollection.Update(s.p3)
|
|
|
|
poolPath, _ := s.packageRepo.PoolPath(s.p1.Filename, s.p1.HashMD5)
|
|
err := os.MkdirAll(filepath.Dir(poolPath), 0755)
|
|
f, err := os.Create(poolPath)
|
|
c.Assert(err, IsNil)
|
|
f.Close()
|
|
}
|
|
|
|
func (s *PublishedRepoSuite) TestPublish(c *C) {
|
|
err := s.repo.Publish(s.packageRepo, s.packageCollection, &NullSigner{})
|
|
c.Assert(err, IsNil)
|
|
|
|
c.Check(s.repo.Architectures, DeepEquals, []string{"i386"})
|
|
|
|
rf, err := os.Open(filepath.Join(s.packageRepo.RootPath, "public/ppa/dists/squeeze/Release"))
|
|
c.Assert(err, IsNil)
|
|
|
|
cfr := NewControlFileReader(rf)
|
|
st, err := cfr.ReadStanza()
|
|
c.Assert(err, IsNil)
|
|
|
|
c.Check(st["Origin"], Equals, "ppa squeeze")
|
|
c.Check(st["Components"], Equals, "main")
|
|
c.Check(st["Architectures"], Equals, "i386")
|
|
|
|
pf, err := os.Open(filepath.Join(s.packageRepo.RootPath, "public/ppa/dists/squeeze/main/binary-i386/Packages"))
|
|
c.Assert(err, IsNil)
|
|
|
|
cfr = NewControlFileReader(pf)
|
|
|
|
for i := 0; i < 3; i++ {
|
|
st, err = cfr.ReadStanza()
|
|
c.Assert(err, IsNil)
|
|
|
|
c.Check(st["Filename"], Equals, "pool/main/a/alien-arena/alien-arena-common_7.40-2_i386.deb")
|
|
}
|
|
|
|
st, err = cfr.ReadStanza()
|
|
c.Assert(err, IsNil)
|
|
c.Assert(st, IsNil)
|
|
|
|
_, err = os.Stat(filepath.Join(s.packageRepo.RootPath, "public/ppa/pool/main/a/alien-arena/alien-arena-common_7.40-2_i386.deb"))
|
|
c.Assert(err, IsNil)
|
|
}
|