Merge lp:~bac/charmworld/show-bundle-changes into lp:~juju-jitsu/charmworld/trunk

Proposed by Brad Crittenden
Status: Merged
Merged at revision: 429
Proposed branch: lp:~bac/charmworld/show-bundle-changes
Merge into: lp:~juju-jitsu/charmworld/trunk
Diff against target: 377 lines (+63/-23)
15 files modified
charmworld/jobs/ingest.py (+4/-3)
charmworld/jobs/tests/test_ingest.py (+11/-2)
charmworld/jobs/tests/test_lp.py (+1/-1)
charmworld/migrations/versions/tests/test_migrations.py (+1/-1)
charmworld/models.py (+8/-3)
charmworld/templates/bundle.pt (+10/-0)
charmworld/templates/charm.pt (+1/-1)
charmworld/templates/recent.pt (+1/-1)
charmworld/testing/factory.py (+1/-1)
charmworld/tests/test_models.py (+11/-4)
charmworld/tests/test_search.py (+1/-1)
charmworld/views/bundles.py (+2/-0)
charmworld/views/helpers.py (+4/-4)
charmworld/views/tests/test_api.py (+5/-0)
charmworld/views/tests/test_feeds.py (+2/-1)
To merge this branch: bzr merge lp:~bac/charmworld/show-bundle-changes
Reviewer Review Type Date Requested Status
Juju-Jitsu Hackers Pending
Review via email: mp+192563@code.launchpad.net

Description of the change

Add changelog to bundle page.

https://codereview.appspot.com/16690043/

To post a comment you must log in.
Revision history for this message
Brad Crittenden (bac) wrote :
Download full text (16.0 KiB)

Reviewers: mp+192563_code.launchpad.net,

Message:
Please take a look.

Description:
Add changelog to bundle page.

https://code.launchpad.net/~bac/charmworld/show-bundle-changes/+merge/192563

(do not edit description out of merge proposal)

Please review this at https://codereview.appspot.com/16690043/

Affected files (+69, -23 lines):
   A [revision details]
   M charmworld/jobs/ingest.py
   M charmworld/jobs/tests/test_ingest.py
   M charmworld/jobs/tests/test_lp.py
   M charmworld/migrations/versions/tests/test_migrations.py
   M charmworld/models.py
   M charmworld/templates/bundle.pt
   M charmworld/templates/charm.pt
   M charmworld/templates/recent.pt
   M charmworld/testing/factory.py
   M charmworld/tests/test_models.py
   M charmworld/tests/test_search.py
   M charmworld/views/bundles.py
   M charmworld/views/helpers.py
   M charmworld/views/tests/test_api.py
   M charmworld/views/tests/test_feeds.py

Index: [revision details]
=== added file '[revision details]'
--- [revision details] 2012-01-01 00:00:00 +0000
+++ [revision details] 2012-01-01 00:00:00 +0000
@@ -0,0 +1,2 @@
+Old revision: <email address hidden>
+New revision: <email address hidden>

Index: charmworld/models.py
=== modified file 'charmworld/models.py'
--- charmworld/models.py 2013-10-23 18:52:03 +0000
+++ charmworld/models.py 2013-10-24 17:24:43 +0000
@@ -1298,6 +1298,10 @@
          'data': dict(),
          'promulgated': False,
          'branch_deleted': False,
+ 'first_change': None,
+ 'last_change': None,
+ 'changes': None,
+ 'branch_spec': None,
      }

      def __init__(self, data):
@@ -1744,7 +1748,7 @@

  def make_bundle_doc(data, owner, basket_id, bundle_name, first_change,
- last_change, changes):
+ last_change, changes, branch_spec):
      basket_name, basket_revision = basket_id.split('/')
      _id = Bundle.construct_id(owner, basket_name, bundle_name,
basket_revision)
      return {
@@ -1757,11 +1761,12 @@
          'first_change': first_change,
          'last_change': last_change,
          'changes': changes,
+ 'branch_spec': branch_spec,
      }

  def store_bundles(collection, deployer_config, owner, basket_id,
first_change,
- last_change, changes, index_client=None):
+ last_change, changes, branch_spec, index_client=None):
      """Store a basket of bundles into MongoDB and/or ElasticSearch.

      :param: collection: A db bundles collection. If None the bundles are
not
@@ -1785,7 +1790,7 @@
          data = get_flattened_deployment(deployer_config, bundle_name)
          index_data[bundle_name] = make_bundle_doc(
              data, owner, basket_id, bundle_name, first_change, last_change,
- changes)
+ changes, branch_spec)
          if collection is not None:
              collection.save(index_data[bundle_name])

Index: charmworld/jobs/ingest.py
=== modified file 'charmworld/jobs/ingest.py'
--- charmworld/jobs/ingest.py 2013-10-23 18:07:20 +0000
+++ charmworld/jobs/ingest.py 2013-10-24 17:24:43 +0000
@@ -310,10 +310,10 @@
          super(Update...

432. By Brad Crittenden

Remove broken RSS link for bundles.

Revision history for this message
Brad Crittenden (bac) wrote :
Revision history for this message
Brad Crittenden (bac) wrote :

*** Submitted:

Add changelog to bundle page.

R=benji
CC=
https://codereview.appspot.com/16690043

https://codereview.appspot.com/16690043/

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-10-23 18:07:20 +0000
+++ charmworld/jobs/ingest.py 2013-10-24 19:26:47 +0000
@@ -310,10 +310,10 @@
310 super(UpdateBundleJob, self).__init__()310 super(UpdateBundleJob, self).__init__()
311311
312 def store_bundles(self, deployer_config, owner, basket_id, first_change,312 def store_bundles(self, deployer_config, owner, basket_id, first_change,
313 last_change, changes):313 last_change, changes, branch_spec):
314 store_bundles(314 store_bundles(
315 self.db.bundles, deployer_config, owner, basket_id, first_change,315 self.db.bundles, deployer_config, owner, basket_id, first_change,
316 last_change, changes)316 last_change, changes, branch_spec)
317317
318 @staticmethod318 @staticmethod
319 def set_basket_info(data, revno):319 def set_basket_info(data, revno):
@@ -347,7 +347,8 @@
347 deployer_config = self.get_deployer_config(fs, basket_data)347 deployer_config = self.get_deployer_config(fs, basket_data)
348 self.store_bundles(348 self.store_bundles(
349 deployer_config, basket_data['owner'], basket_data['name_revno'],349 deployer_config, basket_data['owner'], basket_data['name_revno'],
350 None, None, None)350 basket_data['first_change'], basket_data['last_change'],
351 basket_data['changes'], basket_data['branch_spec'])
351352
352353
353def _rev_info(r, branch):354def _rev_info(r, branch):
354355
=== modified file 'charmworld/jobs/tests/test_ingest.py'
--- charmworld/jobs/tests/test_ingest.py 2013-10-23 17:37:08 +0000
+++ charmworld/jobs/tests/test_ingest.py 2013-10-24 19:26:47 +0000
@@ -534,12 +534,16 @@
534 fs.put(deployer_config, _id=DEPLOYER_CONFIG_HASH)534 fs.put(deployer_config, _id=DEPLOYER_CONFIG_HASH)
535 job.store_bundles(535 job.store_bundles(
536 yaml.safe_load(deployer_config), basket_data['owner'],536 yaml.safe_load(deployer_config), basket_data['owner'],
537 basket_data['name_revno'], None, None, None)537 basket_data['name_revno'], None, None, None, None)
538 self.assertIsNotNone(self.db.bundles.find_one(bundle_id))538 self.assertIsNotNone(self.db.bundles.find_one(bundle_id))
539539
540 def test_job_run_stores_bundles_in_the_db(self):540 def test_job_run_stores_bundles_in_the_db(self):
541 basket_data = factory.get_payload_json(name='wordpress')541 basket_data = factory.get_payload_json(name='wordpress')
542 basket_data['name_revno'] = 'dummy'542 basket_data['name_revno'] = 'dummy'
543 basket_data['first_change'] = None
544 basket_data['last_change'] = None
545 basket_data['changes'] = None
546 basket_data['branch_spec'] = None
543 job = UpdateBundleJob()547 job = UpdateBundleJob()
544 job.setup(self.db)548 job.setup(self.db)
545 with patch.object(job, 'get_deployer_config'):549 with patch.object(job, 'get_deployer_config'):
@@ -551,6 +555,10 @@
551 def test_job_run_does_not_alter_bundle_data(self):555 def test_job_run_does_not_alter_bundle_data(self):
552 basket_data = factory.get_payload_json(name='wordpress')556 basket_data = factory.get_payload_json(name='wordpress')
553 basket_data['name_revno'] = 'dummy'557 basket_data['name_revno'] = 'dummy'
558 basket_data['first_change'] = None
559 basket_data['last_change'] = None
560 basket_data['changes'] = None
561 basket_data['branch_spec'] = None
554 job = UpdateBundleJob()562 job = UpdateBundleJob()
555 job.setup(self.db)563 job.setup(self.db)
556 with patch.object(job, 'get_deployer_config',564 with patch.object(job, 'get_deployer_config',
@@ -559,7 +567,8 @@
559 with patch.object(job, 'store_bundles') as store_bundles:567 with patch.object(job, 'store_bundles') as store_bundles:
560 job.run(basket_data)568 job.run(basket_data)
561 store_bundles.assert_called_with(569 store_bundles.assert_called_with(
562 {'foo': {}}, 'charmers', 'dummy', None, None, None)570 {'foo': {}}, 'charmers', 'dummy', None, None, None,
571 None)
563572
564573
565class TestUpdateCharm(MongoTestBase):574class TestUpdateCharm(MongoTestBase):
566575
=== modified file 'charmworld/jobs/tests/test_lp.py'
--- charmworld/jobs/tests/test_lp.py 2013-10-23 21:53:17 +0000
+++ charmworld/jobs/tests/test_lp.py 2013-10-24 19:26:47 +0000
@@ -288,7 +288,7 @@
288 'store_data': {288 'store_data': {
289 'errors': ['entry not found'],289 'errors': ['entry not found'],
290 'revision': 0,290 'revision': 0,
291 'store_checked': 'lambada'291 'store_checked': 'lambada',
292 },292 },
293 'store_url': 'cs:~baz/qux/quxx-0',293 'store_url': 'cs:~baz/qux/quxx-0',
294 }294 }
295295
=== modified file 'charmworld/migrations/versions/tests/test_migrations.py'
--- charmworld/migrations/versions/tests/test_migrations.py 2013-10-23 17:37:08 +0000
+++ charmworld/migrations/versions/tests/test_migrations.py 2013-10-24 19:26:47 +0000
@@ -60,7 +60,7 @@
60 owner, basket_name, bundle_name)60 owner, basket_name, bundle_name)
61 store_bundles(61 store_bundles(
62 self.db.bundles, parsed, owner, basket_id,62 self.db.bundles, parsed, owner, basket_id,
63 None, None, None,63 None, None, None, None,
64 index_client=self.index_client)64 index_client=self.index_client)
6565
66 def test_bundles_are_removed_from_elastic_search(self):66 def test_bundles_are_removed_from_elastic_search(self):
6767
=== modified file 'charmworld/models.py'
--- charmworld/models.py 2013-10-23 18:52:03 +0000
+++ charmworld/models.py 2013-10-24 19:26:47 +0000
@@ -1298,6 +1298,10 @@
1298 'data': dict(),1298 'data': dict(),
1299 'promulgated': False,1299 'promulgated': False,
1300 'branch_deleted': False,1300 'branch_deleted': False,
1301 'first_change': None,
1302 'last_change': None,
1303 'changes': None,
1304 'branch_spec': None,
1301 }1305 }
13021306
1303 def __init__(self, data):1307 def __init__(self, data):
@@ -1744,7 +1748,7 @@
17441748
17451749
1746def make_bundle_doc(data, owner, basket_id, bundle_name, first_change,1750def make_bundle_doc(data, owner, basket_id, bundle_name, first_change,
1747 last_change, changes):1751 last_change, changes, branch_spec):
1748 basket_name, basket_revision = basket_id.split('/')1752 basket_name, basket_revision = basket_id.split('/')
1749 _id = Bundle.construct_id(owner, basket_name, bundle_name, basket_revision)1753 _id = Bundle.construct_id(owner, basket_name, bundle_name, basket_revision)
1750 return {1754 return {
@@ -1757,11 +1761,12 @@
1757 'first_change': first_change,1761 'first_change': first_change,
1758 'last_change': last_change,1762 'last_change': last_change,
1759 'changes': changes,1763 'changes': changes,
1764 'branch_spec': branch_spec,
1760 }1765 }
17611766
17621767
1763def store_bundles(collection, deployer_config, owner, basket_id, first_change,1768def store_bundles(collection, deployer_config, owner, basket_id, first_change,
1764 last_change, changes, index_client=None):1769 last_change, changes, branch_spec, index_client=None):
1765 """Store a basket of bundles into MongoDB and/or ElasticSearch.1770 """Store a basket of bundles into MongoDB and/or ElasticSearch.
17661771
1767 :param: collection: A db bundles collection. If None the bundles are not1772 :param: collection: A db bundles collection. If None the bundles are not
@@ -1785,7 +1790,7 @@
1785 data = get_flattened_deployment(deployer_config, bundle_name)1790 data = get_flattened_deployment(deployer_config, bundle_name)
1786 index_data[bundle_name] = make_bundle_doc(1791 index_data[bundle_name] = make_bundle_doc(
1787 data, owner, basket_id, bundle_name, first_change, last_change,1792 data, owner, basket_id, bundle_name, first_change, last_change,
1788 changes)1793 changes, branch_spec)
1789 if collection is not None:1794 if collection is not None:
1790 collection.save(index_data[bundle_name])1795 collection.save(index_data[bundle_name])
17911796
17921797
=== modified file 'charmworld/templates/bundle.pt'
--- charmworld/templates/bundle.pt 2013-10-22 22:37:03 +0000
+++ charmworld/templates/bundle.pt 2013-10-24 19:26:47 +0000
@@ -103,6 +103,16 @@
103 </li>103 </li>
104 </ul>104 </ul>
105 </div>105 </div>
106 <div class="row no-border">
107 <h3>
108 Changes
109 </h3>
110 <ul class="list">
111 <li tal:repeat="change bundle.changes"
112 tal:content="structure: format_change(change, bundle.branch_spec)">
113 </li>
114 </ul>
115 </div>
106 </metal:block>116 </metal:block>
107 </body>117 </body>
108</html>118</html>
109119
=== modified file 'charmworld/templates/charm.pt'
--- charmworld/templates/charm.pt 2013-10-01 12:38:21 +0000
+++ charmworld/templates/charm.pt 2013-10-24 19:26:47 +0000
@@ -268,7 +268,7 @@
268 </h3>268 </h3>
269 <ul class="list">269 <ul class="list">
270 <li tal:repeat="change charm.changes"270 <li tal:repeat="change charm.changes"
271 tal:content="structure: format_change(change, charm)">271 tal:content="structure: format_change(change, charm.branch_spec)">
272 </li>272 </li>
273 </ul>273 </ul>
274 </div>274 </div>
275275
=== modified file 'charmworld/templates/recent.pt'
--- charmworld/templates/recent.pt 2013-09-05 10:55:42 +0000
+++ charmworld/templates/recent.pt 2013-10-24 19:26:47 +0000
@@ -27,7 +27,7 @@
27 <td>27 <td>
28 <a href="${charm.short_url}">${charm.store_url}</a></td>28 <a href="${charm.short_url}">${charm.store_url}</a></td>
29 <td tal:content="charm.summary"></td>29 <td tal:content="charm.summary"></td>
30 <td tal:content="structure: format_change(charm.last_change, charm)"></td>30 <td tal:content="structure: format_change(charm.last_change, charm.branch_spec)"></td>
31 </tr>31 </tr>
32 </table>32 </table>
33 </div>33 </div>
3434
=== modified file 'charmworld/testing/factory.py'
--- charmworld/testing/factory.py 2013-10-23 17:37:08 +0000
+++ charmworld/testing/factory.py 2013-10-24 19:26:47 +0000
@@ -332,7 +332,7 @@
332 relations=relations,332 relations=relations,
333 services=services)333 services=services)
334 bundle_doc = make_bundle_doc(334 bundle_doc = make_bundle_doc(
335 data, owner, basket_with_rev, name, None, None, None)335 data, owner, basket_with_rev, name, None, None, None, None)
336 bundle_doc.update(dict(branch_deleted=branch_deleted,336 bundle_doc.update(dict(branch_deleted=branch_deleted,
337 data=data,337 data=data,
338 description=description,338 description=description,
339339
=== modified file 'charmworld/tests/test_models.py'
--- charmworld/tests/test_models.py 2013-10-23 18:52:03 +0000
+++ charmworld/tests/test_models.py 2013-10-24 19:26:47 +0000
@@ -1595,7 +1595,7 @@
1595 basket_id = "%s/%d" % (basket_name, basket_rev)1595 basket_id = "%s/%d" % (basket_name, basket_rev)
1596 _id = Bundle.construct_id(owner, basket_name, bundle_name, basket_rev)1596 _id = Bundle.construct_id(owner, basket_name, bundle_name, basket_rev)
1597 store_bundles(1597 store_bundles(
1598 self.db.bundles, parsed, 'bac', basket_id, None, None, None)1598 self.db.bundles, parsed, 'bac', basket_id, None, None, None, None)
1599 self.assertEqual(1599 self.assertEqual(
1600 {1600 {
1601 '_id': _id,1601 '_id': _id,
@@ -1607,6 +1607,7 @@
1607 'first_change': None,1607 'first_change': None,
1608 'last_change': None,1608 'last_change': None,
1609 'changes': None,1609 'changes': None,
1610 'branch_spec': None,
1610 },1611 },
1611 self.db.bundles.find_one(_id))1612 self.db.bundles.find_one(_id))
16121613
@@ -1643,7 +1644,7 @@
1643 get_flattened_deployment):1644 get_flattened_deployment):
1644 store_bundles(1645 store_bundles(
1645 self.db.bundles, parsed, 'bac', 'wordpress-basket/5', None,1646 self.db.bundles, parsed, 'bac', 'wordpress-basket/5', None,
1646 None, None)1647 None, None, None)
1647 self.assertItemsEqual(['wordpress-stage', 'wordpress-prod'], keys)1648 self.assertItemsEqual(['wordpress-stage', 'wordpress-prod'], keys)
16481649
1649 def test_storing_a_bundle_includes_indexing_it(self):1650 def test_storing_a_bundle_includes_indexing_it(self):
@@ -1663,7 +1664,7 @@
1663 FauxElasticSearchClient):1664 FauxElasticSearchClient):
1664 store_bundles(1665 store_bundles(
1665 self.db.bundles, {}, 'owner', 'wordpress-basket/5', None,1666 self.db.bundles, {}, 'owner', 'wordpress-basket/5', None,
1666 None, None)1667 None, None, None)
16671668
1668 self.assertTrue(FauxElasticSearchClient.index_bundles_called)1669 self.assertTrue(FauxElasticSearchClient.index_bundles_called)
16691670
@@ -1703,6 +1704,9 @@
1703 'owner': 'sinzui',1704 'owner': 'sinzui',
1704 'basket_name': 'mysql',1705 'basket_name': 'mysql',
1705 'basket_revision': 1,1706 'basket_revision': 1,
1707 'changes': None,
1708 'first_change': None,
1709 'last_change': None,
1706 'name': 'tiny',1710 'name': 'tiny',
1707 'title': 'Tiny bundle',1711 'title': 'Tiny bundle',
1708 'description': 'My Tiny Bundle',1712 'description': 'My Tiny Bundle',
@@ -1714,6 +1718,7 @@
1714 'promulgated': True,1718 'promulgated': True,
1715 'branch_deleted': True,1719 'branch_deleted': True,
1716 'is_featured': False,1720 'is_featured': False,
1721 'branch_spec': '~sinzui/fake/path',
1717 }1722 }
1718 bundle = Bundle(bundle_data)1723 bundle = Bundle(bundle_data)
1719 self.assertIs(bundle_data, bundle._raw_representation)1724 self.assertIs(bundle_data, bundle._raw_representation)
@@ -2010,7 +2015,8 @@
20102015
2011 def test_bundle_doc(self):2016 def test_bundle_doc(self):
2012 doc = make_bundle_doc(2017 doc = make_bundle_doc(
2013 {'a': 'b'}, 'foo', 'bar/9', 'baz', None, None, None)2018 {'a': 'b'}, 'foo', 'bar/9', 'baz', None, None, None,
2019 'fake/branch/spec')
2014 self.assertEqual({2020 self.assertEqual({
2015 'owner': 'foo',2021 'owner': 'foo',
2016 'basket_name': 'bar',2022 'basket_name': 'bar',
@@ -2021,6 +2027,7 @@
2021 'first_change': None,2027 'first_change': None,
2022 'last_change': None,2028 'last_change': None,
2023 'changes': None,2029 'changes': None,
2030 'branch_spec': 'fake/branch/spec',
2024 }, doc)2031 }, doc)
20252032
20262033
20272034
=== modified file 'charmworld/tests/test_search.py'
--- charmworld/tests/test_search.py 2013-10-23 17:37:08 +0000
+++ charmworld/tests/test_search.py 2013-10-24 19:26:47 +0000
@@ -168,7 +168,7 @@
168 parsed = yaml.safe_load(deployer_config)168 parsed = yaml.safe_load(deployer_config)
169 store_bundles(169 store_bundles(
170 None, parsed, 'abentley', 'wordpress-basket/5', None, None, None,170 None, parsed, 'abentley', 'wordpress-basket/5', None, None, None,
171 index_client=self.index_client)171 None, index_client=self.index_client)
172 return _id172 return _id
173173
174 def test_store_bundles_bundle_name_indexed(self):174 def test_store_bundles_bundle_name_indexed(self):
175175
=== modified file 'charmworld/views/bundles.py'
--- charmworld/views/bundles.py 2013-10-10 20:29:41 +0000
+++ charmworld/views/bundles.py 2013-10-24 19:26:47 +0000
@@ -9,6 +9,7 @@
9from charmworld.views.helpers import (9from charmworld.views.helpers import (
10 find_bundle,10 find_bundle,
11 found,11 found,
12 format_change,
12)13)
1314
1415
@@ -101,6 +102,7 @@
101 readme, readme_ext = bundle.readme_info(request.db)102 readme, readme_ext = bundle.readme_info(request.db)
102 return dict(103 return dict(
103 bundle=bundle,104 bundle=bundle,
105 format_change=format_change,
104 icon_path=bundle.icon_path(request),106 icon_path=bundle.icon_path(request),
105 is_owner=is_owner,107 is_owner=is_owner,
106 readme=readme,108 readme=readme,
107109
=== modified file 'charmworld/views/helpers.py'
--- charmworld/views/helpers.py 2013-10-02 13:47:53 +0000
+++ charmworld/views/helpers.py 2013-10-24 19:26:47 +0000
@@ -14,23 +14,23 @@
14# View helpers used throughout various views14# View helpers used throughout various views
1515
1616
17def format_change(change, charm=None):17def format_change(change, branch_spec=None):
18 """Format a bzr commit."""18 """Format a bzr commit."""
19 parts = []19 parts = []
20 date = change["created"]20 date = change["created"]
21 # bug 1199790: We may have a branch without any commits.21 # bug 1199790: We may have a branch without any commits.
22 # In this case, class Charm returns dummy data for its attributes22 # In this case, Charm and Bundle return dummy data for its attributes
23 # first_change and last_change.23 # first_change and last_change.
24 if date is not None:24 if date is not None:
25 date = datetime.utcfromtimestamp(date)25 date = datetime.utcfromtimestamp(date)
26 parts.append(unicode(date.strftime("%Y/%m/%d")))26 parts.append(unicode(date.strftime("%Y/%m/%d")))
27 parts.append(name_filter(change['committer']))27 parts.append(name_filter(change['committer']))
28 parts.append(change["message"][:100])28 parts.append(change["message"][:100])
29 if charm is not None:29 if branch_spec is not None:
30 parts.append(30 parts.append(
31 u'(<a href="'31 u'(<a href="'
32 'https://bazaar.launchpad.net/%s/revision/%s">revno %s</a>)' % (32 'https://bazaar.launchpad.net/%s/revision/%s">revno %s</a>)' % (
33 charm.branch_spec, change["revno"], change["revno"]))33 branch_spec, change["revno"], change["revno"]))
34 return u" ".join(parts)34 return u" ".join(parts)
3535
3636
3737
=== modified file 'charmworld/views/tests/test_api.py'
--- charmworld/views/tests/test_api.py 2013-10-23 18:52:03 +0000
+++ charmworld/views/tests/test_api.py 2013-10-24 19:26:47 +0000
@@ -735,6 +735,7 @@
735 first_change=None,735 first_change=None,
736 last_change=None,736 last_change=None,
737 changes=None,737 changes=None,
738 branch_spec=None,
738 )739 )
739 self.assertEqual(expected, bundle._representation)740 self.assertEqual(expected, bundle._representation)
740741
@@ -821,6 +822,10 @@
821 },822 },
822 u'description': u'',823 u'description': u'',
823 u'files': [],824 u'files': [],
825 u'first_change': None,
826 u'last_change': None,
827 u'changes': None,
828 u'branch_spec': None,
824 u'id': u'~bac/byobu/4/bat',829 u'id': u'~bac/byobu/4/bat',
825 u'name': u'bat',830 u'name': u'bat',
826 u'owner': u'bac',831 u'owner': u'bac',
827832
=== modified file 'charmworld/views/tests/test_feeds.py'
--- charmworld/views/tests/test_feeds.py 2013-09-05 09:47:11 +0000
+++ charmworld/views/tests/test_feeds.py 2013-10-24 19:26:47 +0000
@@ -107,5 +107,6 @@
107 self.assertEqual(charm.short_url, anchor.attrib['href'])107 self.assertEqual(charm.short_url, anchor.attrib['href'])
108 self.assertEqual(charm.summary, cells[1].text)108 self.assertEqual(charm.summary, cells[1].text)
109 self.assertEqual(109 self.assertEqual(
110 '<td>%s</td>' % format_change(charm.last_change, charm),110 '<td>%s</td>' % format_change(
111 charm.last_change, charm.branch_spec),
111 tostring(cells[2]).strip())112 tostring(cells[2]).strip())

Subscribers

People subscribed via source and target branches