1
# Copyright 2013 Canonical Ltd. This software is licensed under the
2
# GNU Affero General Public License version 3 (see the file LICENSE).
4
from charmworld.testing import (
9
from charmworld.views.bundles import (
15
class TestBundleDetail(TestCase):
18
def make_service_list(name):
19
keys = sorted(BundleDetail.service_keys)
20
svcs = {name: dict(zip(keys, range(len(keys))))}
21
svcs[name]['options'] = {}
24
def test_empty_lists(self):
25
data = factory.get_bundle_data()
26
bd = BundleDetail(data)
27
self.assertEqual({}, bd.data['services'])
28
self.assertEqual({}, bd.data['relations'])
30
def test_flattened_services(self):
31
services = self.make_service_list('svc1')
32
data = factory.get_bundle_data(services=services)
33
bd = BundleDetail(data)
34
self.assertEqual(services, bd.data['services'])
35
expected = [dict(name='svc1',
41
self.assertEqual(expected, bd.services_list)
43
def test_flattened_services_with_options(self):
44
services = self.make_service_list('svc1')
45
services['svc1']['options'] = dict(a=1, b=2)
46
data = factory.get_bundle_data(services=services)
48
bd = BundleDetail(data)
49
self.assertEqual(services, bd.data['services'])
50
expected = [dict(name='svc1',
56
dict(name='a', value=1),
57
dict(name='b', value=2),
60
self.assertEqual(expected, bd.services_list)
62
def test_flattened_relations(self):
65
data = factory.get_bundle_data(relations=rels)
67
bd = BundleDetail(data)
68
self.assertEqual(rels, bd.data['relations'])
70
expected = [dict(left='a',
75
self.assertEqual(expected, bd.relations_list)
78
class TestBundles(ViewTestBase):
80
def test_found_bundle(self):
81
bundle, bundle_data = factory.makeBundle(self.db)
82
request = self.getRequest()
83
request.matchdict = dict(bundle=bundle.name,
85
found = find_bundle(request)
86
self.assertEqual(bundle_data, found)
88
def test_found_bundle_promulgated(self):
89
bundle, bundle_data = factory.makeBundle(self.db, promulgated=True)
90
request = self.getRequest()
91
request.matchdict = dict(bundle=bundle.name)
92
found = find_bundle(request, promulgated=True)
93
self.assertEqual(bundle_data, found)