Merge lp:~abentley/charmworld/factory-uses-process-charm into lp:~juju-jitsu/charmworld/trunk

Proposed by Aaron Bentley
Status: Merged
Approved by: Curtis Hovey
Approved revision: 258
Merged at revision: 258
Proposed branch: lp:~abentley/charmworld/factory-uses-process-charm
Merge into: lp:~juju-jitsu/charmworld/trunk
Diff against target: 176 lines (+21/-24)
3 files modified
charmworld/jobs/ingest.py (+4/-3)
charmworld/testing/factory.py (+2/-6)
charmworld/views/tests/test_helpers.py (+15/-15)
To merge this branch: bzr merge lp:~abentley/charmworld/factory-uses-process-charm
Reviewer Review Type Date Requested Status
Curtis Hovey (community) code Approve
Review via email: mp+168724@code.launchpad.net

Commit message

Update factory to use ScanJob.process_charm.

Description of the change

This branch updates factory.get_charm_json to use ScanJob.process_charm.

This makes the output of factory.get_charm_json more realistic, and also ensures that future updates to process_charm will update get_charm_json appropriately.

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

Thank you for cleaning this up.

review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'charmworld/jobs/ingest.py'
--- charmworld/jobs/ingest.py 2013-06-07 12:36:30 +0000
+++ charmworld/jobs/ingest.py 2013-06-11 16:15:57 +0000
@@ -521,7 +521,8 @@
521 if isinstance(relation_data, StringTypes):521 if isinstance(relation_data, StringTypes):
522 interfaces[relation_name] = {'interface': relation_data}522 interfaces[relation_name] = {'interface': relation_data}
523523
524 def process_charm(self, charm):524 @classmethod
525 def process_charm(cls, charm):
525 # Enrich charm metadata for webapp.526 # Enrich charm metadata for webapp.
526527
527 # Charm url528 # Charm url
@@ -545,7 +546,7 @@
545 i_provides = []546 i_provides = []
546 provides = charm.get("provides")547 provides = charm.get("provides")
547 if provides:548 if provides:
548 self.normalize_interfaces(provides)549 cls.normalize_interfaces(provides)
549 for v in provides.values():550 for v in provides.values():
550 if not isinstance(v, dict):551 if not isinstance(v, dict):
551 continue552 continue
@@ -559,7 +560,7 @@
559 i_requires = []560 i_requires = []
560 requires = charm.get("requires")561 requires = charm.get("requires")
561 if requires:562 if requires:
562 self.normalize_interfaces(requires)563 cls.normalize_interfaces(requires)
563 for v in requires.values():564 for v in requires.values():
564 i = v.get("interface")565 i = v.get("interface")
565 if not i:566 if not i:
566567
=== modified file 'charmworld/testing/factory.py'
--- charmworld/testing/factory.py 2013-06-07 12:36:30 +0000
+++ charmworld/testing/factory.py 2013-06-11 16:15:57 +0000
@@ -21,6 +21,7 @@
21)21)
22from charmworld.jobs.ingest import (22from charmworld.jobs.ingest import (
23 JENKINS_PROVIDERS,23 JENKINS_PROVIDERS,
24 ScanIngestJob,
24)25)
25from charmworld.models import (26from charmworld.models import (
26 getfs,27 getfs,
@@ -208,12 +209,7 @@
208 "stop",209 "stop",
209 "website-relation-joined"210 "website-relation-joined"
210 ],211 ],
211 "i_provides": [relation['interface']
212 for relation in provides.values()],
213 "i_requires": [relation['interface']
214 for relation in requires.values()],
215 'is_featured': is_featured,212 'is_featured': is_featured,
216 "label": "precise/byobu-classroom",
217 "last_change": {213 "last_change": {
218 "committer": "John Doe <jdoe@example.com>",214 "committer": "John Doe <jdoe@example.com>",
219 "created": 1343082725.06,215 "created": 1343082725.06,
@@ -234,7 +230,6 @@
234 'requires': requires,230 'requires': requires,
235 "revision": revision,231 "revision": revision,
236 "series": series,232 "series": series,
237 "short_url": "/charms/precise/byobu-classroom",
238 "summary": summary,233 "summary": summary,
239 'config': {234 'config': {
240 'options': options,235 'options': options,
@@ -267,6 +262,7 @@
267 charm['name'], charm['branch_spec'], status, provider)262 charm['name'], charm['branch_spec'], status, provider)
268 if subordinate:263 if subordinate:
269 charm['subordinate'] = True264 charm['subordinate'] = True
265 ScanIngestJob.process_charm(charm)
270 return charm266 return charm
271267
272268
273269
=== modified file 'charmworld/views/tests/test_helpers.py'
--- charmworld/views/tests/test_helpers.py 2013-05-21 12:41:57 +0000
+++ charmworld/views/tests/test_helpers.py 2013-06-11 16:15:57 +0000
@@ -30,10 +30,10 @@
30 '_id': '~charmers/charms/precise/some_webapp/trunk',30 '_id': '~charmers/charms/precise/some_webapp/trunk',
31 'i_provides': ['http'],31 'i_provides': ['http'],
32 'i_requires': ['pgsql'],32 'i_requires': ['pgsql'],
33 'label': 'precise/byobu-classroom',33 'label': 'precise/some_webapp',
34 'name': 'some_webapp',34 'name': 'some_webapp',
35 'owner': 'charmers',35 'owner': 'charmers',
36 'short_url': '/charms/precise/byobu-classroom',36 'short_url': '/charms/precise/some_webapp',
37 'store_url': 'cs:precise/some_webapp-1',37 'store_url': 'cs:precise/some_webapp-1',
38 },38 },
39 ],39 ],
@@ -46,10 +46,10 @@
46 '_id': '~charmers/charms/precise/some_dbserver/trunk',46 '_id': '~charmers/charms/precise/some_dbserver/trunk',
47 'i_provides': ['pgsql'],47 'i_provides': ['pgsql'],
48 'i_requires': [],48 'i_requires': [],
49 'label': 'precise/byobu-classroom',49 'label': 'precise/some_dbserver',
50 'name': 'some_dbserver',50 'name': 'some_dbserver',
51 'owner': 'charmers',51 'owner': 'charmers',
52 'short_url': '/charms/precise/byobu-classroom',52 'short_url': '/charms/precise/some_dbserver',
53 'store_url': 'cs:precise/some_dbserver-1',53 'store_url': 'cs:precise/some_dbserver-1',
54 },54 },
55 ],55 ],
@@ -58,10 +58,10 @@
58 '_id': '~charmers/charms/precise/some_webapp/trunk',58 '_id': '~charmers/charms/precise/some_webapp/trunk',
59 'i_provides': ['http'],59 'i_provides': ['http'],
60 'i_requires': ['pgsql'],60 'i_requires': ['pgsql'],
61 'label': 'precise/byobu-classroom',61 'label': 'precise/some_webapp',
62 'name': 'some_webapp',62 'name': 'some_webapp',
63 'owner': 'charmers',63 'owner': 'charmers',
64 'short_url': '/charms/precise/byobu-classroom',64 'short_url': '/charms/precise/some_webapp',
65 'store_url': 'cs:precise/some_webapp-1',65 'store_url': 'cs:precise/some_webapp-1',
66 }66 }
67 ],67 ],
@@ -92,10 +92,10 @@
92 '_id': '~charmers/charms/precise/some_webapp/trunk',92 '_id': '~charmers/charms/precise/some_webapp/trunk',
93 'i_provides': ['http'],93 'i_provides': ['http'],
94 'i_requires': ['pgsql'],94 'i_requires': ['pgsql'],
95 'label': 'precise/byobu-classroom',95 'label': 'precise/some_webapp',
96 'name': 'some_webapp',96 'name': 'some_webapp',
97 'owner': 'charmers',97 'owner': 'charmers',
98 'short_url': '/charms/precise/byobu-classroom',98 'short_url': '/charms/precise/some_webapp',
99 'store_url': 'cs:precise/some_webapp-1',99 'store_url': 'cs:precise/some_webapp-1',
100 },100 },
101 ],101 ],
@@ -109,10 +109,10 @@
109 '_id': '~charmers/charms/precise/some_webapp/trunk',109 '_id': '~charmers/charms/precise/some_webapp/trunk',
110 'i_provides': ['http'],110 'i_provides': ['http'],
111 'i_requires': ['pgsql'],111 'i_requires': ['pgsql'],
112 'label': 'precise/byobu-classroom',112 'label': 'precise/some_webapp',
113 'name': 'some_webapp',113 'name': 'some_webapp',
114 'owner': 'charmers',114 'owner': 'charmers',
115 'short_url': '/charms/precise/byobu-classroom',115 'short_url': '/charms/precise/some_webapp',
116 'store_url': 'cs:precise/some_webapp-1',116 'store_url': 'cs:precise/some_webapp-1',
117 }117 }
118 ],118 ],
@@ -121,7 +121,7 @@
121 self.assertEqual(expected, result)121 self.assertEqual(expected, result)
122122
123 def test_interfaces_unreviewed_charm(self):123 def test_interfaces_unreviewed_charm(self):
124 # Unreveiwed charms are only returned if no reviewed charm124 # Unreviewed charms are only returned if no reviewed charm
125 # with the same name exists.125 # with the same name exists.
126 one_id, one = factory.makeCharm(126 one_id, one = factory.makeCharm(
127 self.db, name='some_dbserver', owner='foo',127 self.db, name='some_dbserver', owner='foo',
@@ -135,10 +135,10 @@
135 '_id': '~foo/charms/precise/some_dbserver/trunk',135 '_id': '~foo/charms/precise/some_dbserver/trunk',
136 'i_provides': ['pgsql'],136 'i_provides': ['pgsql'],
137 'i_requires': [],137 'i_requires': [],
138 'label': 'precise/byobu-classroom',138 'label': '~foo:precise/some_dbserver',
139 'name': 'some_dbserver',139 'name': 'some_dbserver',
140 'owner': 'foo',140 'owner': 'foo',
141 'short_url': '/charms/precise/byobu-classroom',141 'short_url': '/~foo/precise/some_dbserver',
142 'store_url': 'cs:~foo/precise/some_dbserver-1',142 'store_url': 'cs:~foo/precise/some_dbserver-1',
143 },143 },
144 ],144 ],
@@ -162,10 +162,10 @@
162 '_id': '~charmers/charms/precise/some_dbserver/trunk',162 '_id': '~charmers/charms/precise/some_dbserver/trunk',
163 'i_provides': ['pgsql'],163 'i_provides': ['pgsql'],
164 'i_requires': [],164 'i_requires': [],
165 'label': 'precise/byobu-classroom',165 'label': 'precise/some_dbserver',
166 'name': 'some_dbserver',166 'name': 'some_dbserver',
167 'owner': 'charmers',167 'owner': 'charmers',
168 'short_url': '/charms/precise/byobu-classroom',168 'short_url': '/charms/precise/some_dbserver',
169 'store_url': 'cs:precise/some_dbserver-1',169 'store_url': 'cs:precise/some_dbserver-1',
170 },170 },
171 ],171 ],

Subscribers

People subscribed via source and target branches