Merge lp:~abentley/juju-core/cleanups into lp:~juju-qa/juju-core/cd-release-juju

Proposed by Aaron Bentley
Status: Merged
Merged at revision: 285
Proposed branch: lp:~abentley/juju-core/cleanups
Merge into: lp:~juju-qa/juju-core/cd-release-juju
Diff against target: 134 lines (+48/-13)
3 files modified
tests/test_update_streams.py (+19/-12)
tests/test_utility.py (+28/-1)
update_config.py (+1/-0)
To merge this branch: bzr merge lp:~abentley/juju-core/cleanups
Reviewer Review Type Date Requested Status
Curtis Hovey (community) code Approve
Review via email: mp+287652@code.launchpad.net

Commit message

Add tests, fix lint.

Description of the change

This branch cleans the hasty fixes needed to use signed streams.

It adds tests for require_branch, updates the get_path_hashes tests, and fixes some lint.

To post a comment you must log in.
Revision history for this message
Curtis Hovey (sinzui) wrote :

thank you.

review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'tests/test_update_streams.py'
--- tests/test_update_streams.py 2016-02-23 17:53:55 +0000
+++ tests/test_update_streams.py 2016-03-01 15:34:50 +0000
@@ -22,22 +22,22 @@
22class TestParseArgs(TestCase):22class TestParseArgs(TestCase):
2323
24 def test_default(self):24 def test_default(self):
25 parsed = parse_args(['foo', 'bar', 'baz'])25 parsed = parse_args(['foo', 'bar', 'baz', 'qux'])
26 expected = Namespace(26 expected = Namespace(
27 config_file='foo', s3_root='bar', dest='baz', version=None,27 config_file='foo', s3_root='bar', dest='baz',
28 poke='0', timestamp=None)28 simplestreams_dir='qux', version=None, poke='0', timestamp=None)
29 self.assertEqual(expected, parsed)29 self.assertEqual(expected, parsed)
3030
31 def test_version(self):31 def test_version(self):
32 parsed = parse_args(['foo', 'bar', 'baz', 'qux'])32 parsed = parse_args(['foo', 'bar', 'baz', 'qux', 'quxx'])
33 self.assertEqual('qux', parsed.version)33 self.assertEqual('quxx', parsed.version)
3434
35 def test_poke(self):35 def test_poke(self):
36 parsed = parse_args(['foo', 'bar', 'baz', '--poke', '123'])36 parsed = parse_args(['foo', 'bar', 'baz', 'qux', '--poke', '123'])
37 self.assertEqual('123', parsed.poke)37 self.assertEqual('123', parsed.poke)
3838
39 def test_timestamp(self):39 def test_timestamp(self):
40 parsed = parse_args(['foo', 'bar', 'baz', '--timestamp',40 parsed = parse_args(['foo', 'bar', 'baz', 'qux', '--timestamp',
41 'Wed, 17 Feb 2016 20:44:59 +0000'])41 'Wed, 17 Feb 2016 20:44:59 +0000'])
42 self.assertEqual('Wed, 17 Feb 2016 20:44:59 +0000', parsed.timestamp)42 self.assertEqual('Wed, 17 Feb 2016 20:44:59 +0000', parsed.timestamp)
4343
@@ -59,16 +59,17 @@
59 def test_from_args(self):59 def test_from_args(self):
60 updater = Updater.from_args(Namespace(60 updater = Updater.from_args(Namespace(
61 config_file='foo', s3_root='bar', dest='baz', version='qux',61 config_file='foo', s3_root='bar', dest='baz', version='qux',
62 poke='123'), 'temp_dir1')62 poke='123', simplestreams_dir='quxx'), 'temp_dir1')
63 self.assertEqual(updater.config_file, 'foo')63 self.assertEqual(updater.config_file, 'foo')
64 self.assertEqual(updater.s3_root, 'bar')64 self.assertEqual(updater.s3_root, 'bar')
65 self.assertEqual(updater.dest, 'baz')65 self.assertEqual(updater.dest, 'baz')
66 self.assertEqual(updater.version, 'qux')66 self.assertEqual(updater.version, 'qux')
67 self.assertEqual(updater.temp_dir, 'temp_dir1')67 self.assertEqual(updater.temp_dir, 'temp_dir1')
68 self.assertEqual(updater.simplestreams_dir, 'quxx')
6869
69 def make_updater(self, download_dir='temp_dir1', dest_dir='dest1'):70 def make_updater(self, download_dir='temp_dir1', dest_dir='dest1'):
70 return Updater('config1', 's3_root1', download_dir, dest_dir,71 return Updater('config1', 's3_root1', download_dir, dest_dir,
71 'version1')72 'sstream_dir', 'version1')
7273
73 def test_s3cmd(self):74 def test_s3cmd(self):
74 updater = self.make_updater()75 updater = self.make_updater()
@@ -80,10 +81,16 @@
80 def test_get_path_hashes(self):81 def test_get_path_hashes(self):
81 updater = self.make_updater()82 updater = self.make_updater()
82 with patch('subprocess.check_output', autospec=True) as cc_mock:83 with patch('subprocess.check_output', autospec=True) as cc_mock:
83 result = updater.get_path_hashes()84 with patch('update_streams.require_branch',
85 autospec=True) as rb_mock:
86 result = updater.get_path_hashes()
87 env = dict(os.environ)
88 env['PYTHONPATH'] = 'sstream_dir'
89 rb_mock.assert_called_once_with('lp:simplestreams', 'sstream_dir')
84 cc_mock.assert_called_once_with([90 cc_mock.assert_called_once_with([
85 'sstream-query', 'temp_dir1/streams/v1/index2.json',91 'sstream_dir/bin/sstream-query',
86 'version=version1', '--output-format=%(path)s %(sha256)s'])92 'temp_dir1/streams/v1/index2.json', 'version=version1',
93 '--output-format=%(path)s %(sha256)s'], env=env)
87 self.assertIs(cc_mock.return_value, result)94 self.assertIs(cc_mock.return_value, result)
8895
89 def test_get_path_hashes_none_version(self):96 def test_get_path_hashes_none_version(self):
9097
=== modified file 'tests/test_utility.py'
--- tests/test_utility.py 2016-02-19 21:43:30 +0000
+++ tests/test_utility.py 2016-03-01 15:34:50 +0000
@@ -1,12 +1,16 @@
1import os1import os
2from unittest import TestCase2from unittest import TestCase
33
4from mock import patch4from mock import (
5 call,
6 patch,
7 )
58
6from utility import (9from utility import (
7 acquire_log_dir,10 acquire_log_dir,
8 check_log,11 check_log,
9 get_log_subdir,12 get_log_subdir,
13 require_branch,
10 temp_dir,14 temp_dir,
11 )15 )
1216
@@ -79,3 +83,26 @@
79 with open(dest_filename) as dest_file:83 with open(dest_filename) as dest_file:
80 dest_content = dest_file.read()84 dest_content = dest_file.read()
81 self.assertEqual(tools_content, dest_content)85 self.assertEqual(tools_content, dest_content)
86
87
88class TestRequireBranch(TestCase):
89
90 def test_default(self):
91 with temp_dir() as destination:
92 with patch('subprocess.check_call') as cc_mock:
93 require_branch('lp:source', destination)
94 cc_mock.assert_called_once_with(
95 ['bzr', '--no-aliases', 'pull', '--overwrite', '-d', destination,
96 'lp:source'])
97
98 def test_subdir(self):
99 with temp_dir() as parent:
100 grandchild = os.path.join(parent, 'child', 'grandchild')
101 with patch('subprocess.check_call') as cc_mock:
102 require_branch('lp:source', grandchild)
103 self.assertTrue(os.path.isdir(grandchild))
104 self.assertEqual([
105 call(['bzr', '--no-aliases', 'init', grandchild]),
106 call(['bzr', '--no-aliases', 'pull', '--overwrite', '-d',
107 grandchild, 'lp:source']),
108 ], cc_mock.mock_calls)
82109
=== modified file 'update_config.py'
--- update_config.py 2016-02-24 22:11:03 +0000
+++ update_config.py 2016-03-01 15:34:50 +0000
@@ -2,6 +2,7 @@
2from argparse import ArgumentParser2from argparse import ArgumentParser
3from textwrap import dedent3from textwrap import dedent
44
5
5def update_streams(args):6def update_streams(args):
6 return {7 return {
7 'operation': 'update-streams',8 'operation': 'update-streams',

Subscribers

People subscribed via source and target branches