Merge lp:~matiasb/click-toolbelt/add-framework-param into lp:click-toolbelt

Proposed by Matias Bordese
Status: Merged
Approved by: Matias Bordese
Approved revision: 15
Merged at revision: 13
Proposed branch: lp:~matiasb/click-toolbelt/add-framework-param
Merge into: lp:click-toolbelt
Diff against target: 154 lines (+26/-14)
2 files modified
click_toolbelt/tests/test_upload.py (+20/-11)
click_toolbelt/upload.py (+6/-3)
To merge this branch: bzr merge lp:~matiasb/click-toolbelt/add-framework-param
Reviewer Review Type Date Requested Status
Ricardo Kirkner (community) Approve
Review via email: mp+208336@code.launchpad.net

Commit message

Added framework param to upload command.

To post a comment you must log in.
15. By Matias Bordese

Framework is optional, again.

Revision history for this message
Ricardo Kirkner (ricardokirkner) wrote :

LGTM

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'click_toolbelt/tests/test_upload.py'
2--- click_toolbelt/tests/test_upload.py 2014-02-24 12:50:25 +0000
3+++ click_toolbelt/tests/test_upload.py 2014-02-27 17:23:32 +0000
4@@ -26,6 +26,7 @@
5 super(BaseUploadCommandTestCase, self).setUp()
6 self.app_name = 'namespace.package_name'
7 self.app_archs = ['all']
8+ self.app_framework = 'ubuntu-sdk-13.10'
9 self.app_version = '1'
10 self.app_changelog = 'Initial version.'
11 self.uploaded_callback_url = MYAPPS_API_ROOT_URL + 'click-uploaded/1/'
12@@ -76,7 +77,8 @@
13 data = self.command.get_upload_data(self.app_name,
14 self.app_version,
15 self.app_changelog,
16- self.app_archs)
17+ self.app_archs,
18+ self.app_framework)
19 self.assertEqual(data, expected)
20
21 def test_get_upload_data_for_unknown_app(self):
22@@ -89,7 +91,8 @@
23 data = self.command.get_upload_data(self.app_name,
24 self.app_version,
25 self.app_changelog,
26- self.app_archs)
27+ self.app_archs,
28+ self.app_framework)
29 self.assertEqual(data, {
30 'success': False,
31 'errors': ['The requested Click Package could not be found.']})
32@@ -100,7 +103,8 @@
33 data = self.command.get_upload_data(self.app_name,
34 self.app_version,
35 self.app_changelog,
36- self.app_archs)
37+ self.app_archs,
38+ self.app_framework)
39 self.assertEqual(data, {'success': False,
40 'errors': ['some http error']})
41
42@@ -109,22 +113,24 @@
43 self.app_name,)
44 self.command.get_upload_data(
45 self.app_name, self.app_version, self.app_changelog,
46- self.app_archs)
47+ self.app_archs, self.app_framework)
48 self.mock_post.assert_called_once_with(
49 upload_url, data={'version': self.app_version,
50 'architectures': self.app_archs,
51- 'changelog': self.app_changelog})
52+ 'changelog': self.app_changelog,
53+ 'framework': self.app_framework})
54
55 def test_get_upload_data_uses_environment_variable(self):
56 upload_url = MYAPPS_API_ROOT_URL + "click-upload/%s/" % (
57 self.app_name,)
58 self.command.get_upload_data(
59 self.app_name, self.app_version, self.app_changelog,
60- self.app_archs)
61+ self.app_archs, self.app_framework)
62 self.mock_post.assert_called_once_with(
63 upload_url, data={'version': self.app_version,
64 'architectures': self.app_archs,
65- 'changelog': self.app_changelog})
66+ 'changelog': self.app_changelog,
67+ 'framework': self.app_framework})
68
69 @patch('click_toolbelt.upload.Upload.get_oauth_session')
70 def test_get_upload_data_with_invalid_session(self,
71@@ -132,7 +138,7 @@
72 mock_get_oauth_session.return_value = None
73 result = self.command.get_upload_data(
74 self.app_name, self.app_version, self.app_changelog,
75- self.app_archs)
76+ self.app_archs, self.app_framework)
77 self.assertEqual(result, {'success': False,
78 'errors': ['No valid credentials found.']})
79 self.assertFalse(self.mock_post.called)
80@@ -243,12 +249,12 @@
81
82 parsed_args = namedtuple(
83 'parsed_args',
84- 'application_name, version, filename, changelog, arch')
85+ 'application_name, version, filename, changelog, arch, framework')
86
87 filename = 'package.click'
88 self.args = parsed_args(
89 self.app_name, self.app_version, filename, self.app_changelog,
90- self.app_archs)
91+ self.app_archs, self.app_framework)
92
93 def test_parser(self):
94 parser = self.command.get_parser(__namespace__)
95@@ -258,6 +264,9 @@
96 # start comparing from first extra argument
97 self.assertEqual(parser._actions[i + 1].dest, name)
98 self.assertTrue(parser._actions[i + 1].required)
99+ # framework is optional
100+ self.assertEqual(parser._actions[-2].dest, 'framework')
101+ self.assertFalse(parser._actions[-2].required)
102 # arch is optional, and last param
103 self.assertEqual(parser._actions[-1].dest, 'arch')
104 self.assertFalse(parser._actions[-1].required)
105@@ -278,7 +287,7 @@
106 # followed by an updown upload request
107 self.mock_get_upload_data.assert_called_once_with(
108 self.app_name, self.app_version, self.app_changelog,
109- self.app_archs)
110+ self.app_archs, self.app_framework)
111 self.mock_post.assert_called_with(
112 CLICK_UPDOWN_UPLOAD_URL,
113 files={'binary': self.mock_open.return_value},
114
115=== modified file 'click_toolbelt/upload.py'
116--- click_toolbelt/upload.py 2014-02-24 12:50:25 +0000
117+++ click_toolbelt/upload.py 2014-02-27 17:23:32 +0000
118@@ -23,12 +23,14 @@
119 parser.add_argument('version')
120 parser.add_argument('filename')
121 parser.add_argument('changelog')
122+ parser.add_argument('framework', nargs='?')
123 parser.add_argument(
124 'arch', nargs='*', default='all',
125 choices=['armhf', 'i386', 'amd64', 'all'])
126 return parser
127
128- def get_upload_data(self, name, version, changelog, architectures):
129+ def get_upload_data(
130+ self, name, version, changelog, architectures, framework):
131 myapps_url = os.environ.get('MYAPPS_API_ROOT_URL', MYAPPS_API_ROOT_URL)
132 myapps_url = urljoin(myapps_url, 'click-upload/%s/' % name)
133
134@@ -43,7 +45,7 @@
135 response = session.post(
136 myapps_url,
137 data={'version': version, 'changelog': changelog,
138- 'architectures': architectures})
139+ 'architectures': architectures, 'framework': framework})
140 if response.ok:
141 result.update(response.json())
142 else:
143@@ -87,9 +89,10 @@
144 filename = parsed_args.filename
145 changelog = parsed_args.changelog
146 architectures = parsed_args.arch
147+ framework = parsed_args.framework
148
149 data = self.get_upload_data(
150- application_name, version, changelog, architectures)
151+ application_name, version, changelog, architectures, framework)
152 if not data.get('success', False):
153 errors = data.get('errors', ['Unknown error'])
154 self.log.error(

Subscribers

People subscribed via source and target branches