Package repository, first version.

This commit is contained in:
Andrey Smirnov
2013-12-18 11:31:31 +04:00
parent e0e4b74c58
commit 0b3ab49602
2 changed files with 76 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
package debian
import (
. "launchpad.net/gocheck"
"path/filepath"
)
type RepositorySuite struct {
repo *Repository
}
var _ = Suite(&RepositorySuite{})
func (s *RepositorySuite) SetUpTest(c *C) {
s.repo = NewRepository(c.MkDir())
}
func (s *RepositorySuite) TestPoolPath(c *C) {
path, err := s.repo.PoolPath("a/b/package.deb")
c.Assert(err, IsNil)
c.Assert(path, Equals, filepath.Join(s.repo.RootPath, "pool", "a/b/package.deb"))
path, err = s.repo.PoolPath("pool/a/b/package.deb")
c.Assert(err, IsNil)
c.Assert(path, Equals, filepath.Join(s.repo.RootPath, "pool", "a/b/package.deb"))
_, err = s.repo.PoolPath("/dev/stdin")
c.Assert(err, ErrorMatches, "absolute filename.*")
_, err = s.repo.PoolPath("../../../etc/passwd")
c.Assert(err, ErrorMatches, ".*starts with dot")
_, err = s.repo.PoolPath("pool/a/../../../etc/passwd")
c.Assert(err, ErrorMatches, ".*starts with dot")
path, err = s.repo.PoolPath("./etc/passwd")
c.Assert(err, IsNil)
c.Assert(path, Equals, filepath.Join(s.repo.RootPath, "pool", "etc/passwd"))
}