File: apt_test.go

package info (click to toggle)
golang-github-juju-utils 0.0~git20171220.f38c0b0-5
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 1,748 kB
  • sloc: makefile: 20
file content (91 lines) | stat: -rw-r--r-- 2,412 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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
// Copyright 2015 Canonical Ltd.
// Copyright 2015 Cloudbase Solutions SRL
// Licensed under the LGPLv3, see LICENCE file for details.

package config_test

import (
	"fmt"

	jc "github.com/juju/testing/checkers"
	"github.com/juju/utils/packaging/config"
	gc "gopkg.in/check.v1"
)

var _ = gc.Suite(&AptSuite{})

type AptSuite struct {
	pacconfer config.PackagingConfigurer
}

func (s *AptSuite) SetUpSuite(c *gc.C) {
	s.pacconfer = config.NewAptPackagingConfigurer(testedSeriesUbuntu)
}

func (s *AptSuite) TestDefaultPackages(c *gc.C) {
	c.Assert(s.pacconfer.DefaultPackages(), gc.DeepEquals, config.UbuntuDefaultPackages)
}

func (s *AptSuite) TestGetPackageNameForSeriesSameSeries(c *gc.C) {
	for _, pack := range testedPackages {
		res, err := s.pacconfer.GetPackageNameForSeries(pack, testedSeriesUbuntu)
		c.Assert(err, jc.ErrorIsNil)
		c.Assert(res, gc.Equals, pack)
	}
}

func (s *AptSuite) TestGetPackageNameForSeriesErrors(c *gc.C) {
	for _, pack := range testedPackages {
		res, err := s.pacconfer.GetPackageNameForSeries(pack, "some-other-series")
		c.Assert(res, gc.Equals, "")
		c.Assert(err, gc.ErrorMatches, fmt.Sprintf("no equivalent package found for series %s: %s", "some-other-series", pack))
	}
}

func (s *AptSuite) TestIsCloudArchivePackage(c *gc.C) {
	testedPacks := []string{
		"random",
		"stuff",
		"mongodb",
		"cloud-utils",
		"more",
		"random stuff",
	}

	for i, pack := range testedPacks {
		c.Logf("Test %d: package %s:", i+1, pack)
		res := s.pacconfer.IsCloudArchivePackage(pack)
		_, there := config.CloudArchivePackagesUbuntu[pack]

		c.Assert(res, gc.Equals, there)
	}
}

func (s *AptSuite) TestRenderSource(c *gc.C) {
	expected, err := testedSource.RenderSourceFile(config.AptSourceTemplate)
	c.Assert(err, jc.ErrorIsNil)

	res, err := s.pacconfer.RenderSource(testedSource)
	c.Assert(err, jc.ErrorIsNil)

	c.Assert(res, gc.Equals, expected)
}

func (s *AptSuite) TestRenderPreferences(c *gc.C) {
	expected, err := testedPrefs.RenderPreferenceFile(config.AptPreferenceTemplate)
	c.Assert(err, jc.ErrorIsNil)

	res, err := s.pacconfer.RenderPreferences(testedPrefs)
	c.Assert(err, jc.ErrorIsNil)

	c.Assert(res, gc.Equals, expected)
}

func (s *AptSuite) TestApplyCloudArchiveTarget(c *gc.C) {
	res := s.pacconfer.ApplyCloudArchiveTarget("some-package")
	c.Assert(res, gc.DeepEquals, []string{
		"--target-release",
		"precise-updates/cloud-tools",
		"some-package",
	})
}