9
9
gc "launchpad.net/gocheck"
11
"launchpad.net/juju-core/juju/osenv"
11
12
jc "launchpad.net/juju-core/testing/checkers"
12
13
"launchpad.net/juju-core/testing/testbase"
13
14
"launchpad.net/juju-core/utils"
20
21
var _ = gc.Suite(&AptSuite{})
22
23
func (s *AptSuite) TestOnePackage(c *gc.C) {
23
cmdChan, cleanup := testbase.HookCommandOutput(&utils.AptCommandOutput, []byte{}, nil)
24
cmdChan := s.HookCommandOutput(&utils.AptCommandOutput, []byte{}, nil)
25
25
err := utils.AptGetInstall("test-package")
26
26
c.Assert(err, gc.IsNil)
37
37
const expected = `E: frobnicator failure detected`
38
38
cmdError := fmt.Errorf("error")
39
39
cmdExpectedError := fmt.Errorf("apt-get failed: error")
40
cmdChan, cleanup := testbase.HookCommandOutput(&utils.AptCommandOutput, []byte(expected), cmdError)
40
cmdChan := s.HookCommandOutput(&utils.AptCommandOutput, []byte(expected), cmdError)
42
41
err := utils.AptGetInstall("foo")
43
42
c.Assert(err, gc.DeepEquals, cmdExpectedError)
52
51
func (s *AptSuite) TestConfigProxyEmpty(c *gc.C) {
53
cmdChan, cleanup := testbase.HookCommandOutput(&utils.AptCommandOutput, []byte{}, nil)
52
cmdChan := s.HookCommandOutput(&utils.AptCommandOutput, []byte{}, nil)
55
53
out, err := utils.AptConfigProxy()
56
54
c.Assert(err, gc.IsNil)
65
63
func (s *AptSuite) TestConfigProxyConfigured(c *gc.C) {
66
64
const expected = `Acquire::http::Proxy "10.0.3.1:3142";
67
65
Acquire::https::Proxy "false";`
68
cmdChan, cleanup := testbase.HookCommandOutput(&utils.AptCommandOutput, []byte(expected), nil)
66
cmdChan := s.HookCommandOutput(&utils.AptCommandOutput, []byte(expected), nil)
70
67
out, err := utils.AptConfigProxy()
71
68
c.Assert(err, gc.IsNil)
77
74
c.Assert(out, gc.Equals, expected)
77
func (s *AptSuite) TestDetectAptProxy(c *gc.C) {
78
const output = `CommandLine::AsString "apt-config dump";
79
Acquire::http::Proxy "10.0.3.1:3142";
80
Acquire::https::Proxy "false";
81
Acquire::ftp::Proxy "none";
82
Acquire::magic::Proxy "none";
84
_ = s.HookCommandOutput(&utils.AptCommandOutput, []byte(output), nil)
86
proxy, err := utils.DetectAptProxies()
87
c.Assert(err, gc.IsNil)
88
c.Assert(proxy, gc.DeepEquals, osenv.ProxySettings{
89
Http: "10.0.3.1:3142",
95
func (s *AptSuite) TestDetectAptProxyNone(c *gc.C) {
96
_ = s.HookCommandOutput(&utils.AptCommandOutput, []byte{}, nil)
97
proxy, err := utils.DetectAptProxies()
98
c.Assert(err, gc.IsNil)
99
c.Assert(proxy, gc.DeepEquals, osenv.ProxySettings{})
102
func (s *AptSuite) TestDetectAptProxyPartial(c *gc.C) {
103
const output = `CommandLine::AsString "apt-config dump";
104
Acquire::http::Proxy "10.0.3.1:3142";
105
Acquire::ftp::Proxy "here-it-is";
106
Acquire::magic::Proxy "none";
108
_ = s.HookCommandOutput(&utils.AptCommandOutput, []byte(output), nil)
110
proxy, err := utils.DetectAptProxies()
111
c.Assert(err, gc.IsNil)
112
c.Assert(proxy, gc.DeepEquals, osenv.ProxySettings{
113
Http: "10.0.3.1:3142",
80
118
func (s *AptSuite) TestConfigProxyConfiguredFilterOutput(c *gc.C) {
82
120
output = `CommandLine::AsString "apt-config dump";
85
123
expected = `Acquire::http::Proxy "10.0.3.1:3142";
86
124
Acquire::https::Proxy "false";`
88
cmdChan, cleanup := testbase.HookCommandOutput(&utils.AptCommandOutput, []byte(output), nil)
126
cmdChan := s.HookCommandOutput(&utils.AptCommandOutput, []byte(output), nil)
90
127
out, err := utils.AptConfigProxy()
91
128
c.Assert(err, gc.IsNil)
101
138
const expected = `E: frobnicator failure detected`
102
139
cmdError := fmt.Errorf("error")
103
140
cmdExpectedError := fmt.Errorf("apt-config failed: error")
104
cmdChan, cleanup := testbase.HookCommandOutput(&utils.AptCommandOutput, []byte(expected), cmdError)
141
cmdChan := s.HookCommandOutput(&utils.AptCommandOutput, []byte(expected), cmdError)
106
142
out, err := utils.AptConfigProxy()
107
143
c.Assert(err, gc.DeepEquals, cmdExpectedError)