~jcsackett/charmworld/bac-tag-constraints

« back to all changes in this revision

Viewing changes to charmworld/views/tests/test_bundles.py

  • Committer: Curtis Hovey
  • Date: 2013-08-20 22:05:56 UTC
  • mfrom: (358 charmworld)
  • mto: This revision was merged to the branch mainline in revision 359.
  • Revision ID: curtis@canonical.com-20130820220556-zhm7woolfb0hs81x
Merged tip.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# Copyright 2013 Canonical Ltd.  This software is licensed under the
2
2
# GNU Affero General Public License version 3 (see the file LICENSE).
3
3
 
 
4
from charmworld.models import Bundle
4
5
from charmworld.testing import (
5
6
    factory,
6
7
    TestCase,
9
10
from charmworld.views.bundles import (
10
11
    BundleDetail,
11
12
    find_bundle,
 
13
    personal_bundle_json,
12
14
)
13
15
 
14
16
 
83
85
        request.matchdict = dict(bundle=bundle.name,
84
86
                                 owner=bundle.owner)
85
87
        found = find_bundle(request)
86
 
        self.assertEqual(bundle_data, found)
 
88
        self.assertEqual(bundle, found)
87
89
 
88
90
    def test_found_bundle_promulgated(self):
89
91
        bundle, bundle_data = factory.makeBundle(self.db, promulgated=True)
90
92
        request = self.getRequest()
91
93
        request.matchdict = dict(bundle=bundle.name)
92
94
        found = find_bundle(request, promulgated=True)
93
 
        self.assertEqual(bundle_data, found)
 
95
        self.assertEqual(bundle, found)
 
96
 
 
97
    def test_not_found_bundle(self):
 
98
        bundle, bundle_data = factory.makeBundle(self.db)
 
99
        request = self.getRequest()
 
100
        request.matchdict = dict(bundle='nobody-knows',
 
101
                                 owner=bundle.owner)
 
102
        found = find_bundle(request)
 
103
        self.assertEqual(None, found)
 
104
 
 
105
    def test_personal_charm_json(self):
 
106
        self.enable_routes()
 
107
        bundle, bundle_data = factory.makeBundle(
 
108
            self.db, name='gigis', owner='ladonna', basket='ball/4',
 
109
            series='raring', promulgated=False,
 
110
        )
 
111
        request = self.getRequest()
 
112
        request.matchdict = dict(
 
113
            owner=bundle.owner,
 
114
            basket=bundle.basket,
 
115
            bundle=bundle.name,
 
116
        )
 
117
        expected = {'gigis': dict(
 
118
            series='raring',
 
119
            relations={},
 
120
            services={},
 
121
        )}
 
122
        response = personal_bundle_json(request)
 
123
        self.assertEqual(response.status_code, 200)
 
124
        self.assertEqual(expected, response.json_body)
 
125
 
 
126
    def test_personal_charm_json_not_found(self):
 
127
        self.enable_routes()
 
128
        owner = 'no-one'
 
129
        basket = 'no-basket'
 
130
        bundle = 'no-name'
 
131
        request = self.getRequest()
 
132
        request.matchdict = dict(
 
133
            owner=owner,
 
134
            basket=basket,
 
135
            bundle=bundle,
 
136
        )
 
137
        response = personal_bundle_json(request)
 
138
        self.assertEqual(response.status_code, 404)
 
139
        id_ = Bundle.construct_id(owner, basket, bundle)
 
140
        expected = {'type': 'no_such_bundle', 'bundle_id': id_}
 
141
        self.assertEqual(expected, response.json_body)