File: package_files_test.go

package info (click to toggle)
aptly 1.6.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 49,928 kB
  • sloc: python: 10,398; sh: 252; makefile: 184
file content (63 lines) | stat: -rw-r--r-- 1,760 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package deb

import (
	"os"
	"path/filepath"

	"github.com/aptly-dev/aptly/aptly"
	"github.com/aptly-dev/aptly/files"
	"github.com/aptly-dev/aptly/utils"

	. "gopkg.in/check.v1"
)

type PackageFilesSuite struct {
	files PackageFiles
	cs    aptly.ChecksumStorage
}

var _ = Suite(&PackageFilesSuite{})

func (s *PackageFilesSuite) SetUpTest(c *C) {
	s.cs = files.NewMockChecksumStorage()
	s.files = PackageFiles{PackageFile{
		Filename:     "alien-arena-common_7.40-2_i386.deb",
		downloadPath: "pool/contrib/a/alien-arena",
		Checksums: utils.ChecksumInfo{
			Size:   187518,
			MD5:    "1e8cba92c41420aa7baa8a5718d67122",
			SHA1:   "46955e48cad27410a83740a21d766ce362364024",
			SHA256: "eb4afb9885cba6dc70cccd05b910b2dbccc02c5900578be5e99f0d3dbf9d76a5",
		}}}
}

func (s *PackageFilesSuite) TestVerify(c *C) {
	packagePool := files.NewPackagePool(c.MkDir(), false)

	result, err := s.files[0].Verify(packagePool, s.cs)
	c.Check(err, IsNil)
	c.Check(result, Equals, false)

	tmpFilepath := filepath.Join(c.MkDir(), "file")
	c.Assert(os.WriteFile(tmpFilepath, []byte("abcde"), 0777), IsNil)

	s.files[0].PoolPath, _ = packagePool.Import(tmpFilepath, s.files[0].Filename, &s.files[0].Checksums, false, s.cs)

	s.files[0].Checksums.Size = 187518
	result, err = s.files[0].Verify(packagePool, s.cs)
	c.Check(err, IsNil)
	c.Check(result, Equals, false)

	s.files[0].Checksums.Size = 5
	result, err = s.files[0].Verify(packagePool, s.cs)
	c.Check(err, IsNil)
	c.Check(result, Equals, true)
}

func (s *PackageFilesSuite) TestDownloadURL(c *C) {
	c.Check(s.files[0].DownloadURL(), Equals, "pool/contrib/a/alien-arena/alien-arena-common_7.40-2_i386.deb")
}

func (s *PackageFilesSuite) TestHash(c *C) {
	c.Check(s.files.Hash(), Equals, uint64(0xc8901eedd79ac51b))
}