~sinzui/juju-ci-tools/cloudsigma-lib

« back to all changes in this revision

Viewing changes to test_jujuci.py

  • Committer: Nate Finch
  • Date: 2015-06-02 03:47:22 UTC
  • mfrom: (968 origin/trunk)
  • mto: This revision was merged to the branch mainline in revision 976.
  • Revision ID: nate.finch@canonical.com-20150602034722-cr3lzq2yb6xdh7gz
merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
    find_artifacts,
19
19
    get_artifacts,
20
20
    get_build_data,
 
21
    get_buildvars,
21
22
    get_certification_bin,
22
23
    get_credentials,
23
24
    get_juju_bin,
27
28
    JENKINS_URL,
28
29
    list_artifacts,
29
30
    PackageNamer,
 
31
    parse_args,
30
32
    PUBLISH_REVISION,
31
33
    main,
32
34
    retrieve_artifact,
34
36
)
35
37
import jujupy
36
38
from utility import temp_dir
 
39
from test_utility import parse_error
37
40
 
38
41
 
39
42
def make_build_data(number='lastSuccessfulBuild'):
151
154
            self.assertTrue(kwargs['dry_run'])
152
155
            self.assertTrue(kwargs['verbose'])
153
156
 
 
157
    def test_main_get_buildvars(self):
 
158
        with patch('jujuci.get_buildvars', autospec=True) as mock:
 
159
            main(
 
160
                ['get-build-vars', '--env', 'foo', '--summary',
 
161
                 '--revision-build', '--version', '--short-branch',
 
162
                 '--short-revision', '--branch', '--revision', '123',
 
163
                 '--user', 'jrandom', '--password', '1password'])
 
164
        args, kwargs = mock.call_args
 
165
        self.assertEqual((Credentials('jrandom', '1password'), '123'), args)
 
166
        self.assertEqual('foo', kwargs['env'])
 
167
        self.assertTrue(kwargs['summary'])
 
168
        self.assertTrue(kwargs['revision_build'])
 
169
        self.assertTrue(kwargs['version'])
 
170
        self.assertTrue(kwargs['short_revision'])
 
171
        self.assertTrue(kwargs['short_branch'])
 
172
        self.assertTrue(kwargs['branch'])
 
173
        self.assertTrue(kwargs['revision'])
 
174
 
 
175
    def test_parse_arg_buildvars_common_options(self):
 
176
        args, credentials = parse_args(
 
177
            ['get-build-vars', '--env', 'foo', '--summary',
 
178
             '--user', 'jrandom', '--password', '1password', '1234'])
 
179
        self.assertEqual(Credentials('jrandom', '1password'), credentials)
 
180
        self.assertEqual('foo', args.env)
 
181
        self.assertTrue(args.summary)
 
182
        args, credentials = parse_args(
 
183
            ['get-build-vars', '--version',
 
184
             '--user', 'jrandom', '--password', '1password', '1234'])
 
185
        self.assertTrue(args.version)
 
186
        args, credentials = parse_args(
 
187
            ['get-build-vars', '--short-branch',
 
188
             '--user', 'jrandom', '--password', '1password', '1234'])
 
189
        self.assertTrue(args.short_branch)
 
190
 
 
191
    def test_parse_arg_buildvars_error(self):
 
192
        with parse_error(self) as stderr:
 
193
            parse_args(['get-build-vars', '1234'])
 
194
        self.assertIn(
 
195
            'Expected --summary or one or more of:', stderr.getvalue())
 
196
 
154
197
    def test_get_build_data(self):
155
198
        expected_data = make_build_data(1234)
156
199
        json_io = StringIO(json.dumps(expected_data))
495
538
            artifacts = os.listdir(artifacts_dir)
496
539
            self.assertEqual(['juju-core-1.2.3.deb'], artifacts)
497
540
 
 
541
    def test_get_buildvars(self):
 
542
        buildvars = {
 
543
            'revision_id': '1234567abcdef',
 
544
            'version': '1.22.4',
 
545
            'revision_build': '1234',
 
546
            'branch': 'gitbranch:1.22:github.com/juju/juju',
 
547
            }
 
548
        credentials = Credentials('bar', 'baz')
 
549
        with patch('jujuci.retrieve_buildvars', autospec=True,
 
550
                   return_value=buildvars) as rb_mock:
 
551
            # The summary case for deploy and upgrade jobs.
 
552
            text = get_buildvars(
 
553
                credentials, 1234, env='foo',
 
554
                summary=True, revision_build=False, version=False,
 
555
                short_branch=False, short_revision=False,
 
556
                branch=False, revision=False)
 
557
            rb_mock.assert_called_once_with(credentials, 1234)
 
558
            self.assertEqual(
 
559
                'Testing gitbranch:1.22:github.com/juju/juju 1234567 '
 
560
                'on foo for 1234',
 
561
                text)
 
562
            # The version case used to skip jobs testing old versions.
 
563
            text = get_buildvars(
 
564
                credentials, 1234,
 
565
                summary=False, revision_build=True, version=True,
 
566
                branch=True, short_branch=True,
 
567
                revision=True, short_revision=True)
 
568
            self.assertEqual(
 
569
                '1234 1.22.4 1.22 1234567 '
 
570
                'gitbranch:1.22:github.com/juju/juju 1234567abcdef',
 
571
                text)
 
572
 
498
573
 
499
574
class TestPackageNamer(TestCase):
500
575