Revision adce84cd snf-pithos-app/pithos/api/test/objects.py

b/snf-pithos-app/pithos/api/test/objects.py
136 136
        self.assertEqual(len(l3), len(l2) + 1)
137 137
        self.assertEqual(l3[:-1], l2)
138 138

  
139
    def test_get_version(self):
140
        c = 'c1'
141
        o = self.objects[c][0]
142
        url = join_urls(self.pithos_path, self.user, c, o)
143

  
144
        # Update metadata
145
        meta = {'HTTP_X_OBJECT_META_QUALITY': 'AAA'}
146
        r = self.post(url, content_type='', **meta)
147
        self.assertEqual(r.status_code, 202)
148

  
149
        url = join_urls(self.pithos_path, self.user, c, o)
150
        r = self.get('%s?version=list&format=json' % url)
151
        self.assertEqual(r.status_code, 200)
152
        l = json.loads(r.content)['versions']
153
        self.assertEqual(len(l), 2)
154

  
155
        r = self.head('%s?version=%s' % (url, l[0][0]))
156
        self.assertEqual(r.status_code, 200)
157
        self.assertTrue('X-Object-Meta-Quality' not in r)
158

  
159
        r = self.head('%s?version=%s' % (url, l[1][0]))
160
        self.assertEqual(r.status_code, 200)
161
        self.assertTrue('X-Object-Meta-Quality' in r)
162

  
163
        # test invalid version
164
        r = self.head('%s?version=-1' % url)
165
        self.assertEqual(r.status_code, 404)
166

  
167
        other_name, other_data, r = self.upload_object(c)
168
        self.assertTrue('X-Object-Version' in r)
169
        other_version = r['X-Object-Version']
170

  
171
        self.assertTrue(o != other_name)
172

  
173
        r = self.get('%s?version=%s' % (url, other_version))
174
        self.assertEqual(r.status_code, 403)
175

  
176
        r = self.head('%s?version=%s' % (url, other_version))
177
        self.assertEqual(r.status_code, 403)
178

  
139 179
    def test_objects_with_trailing_spaces(self):
140 180
        # create object
141 181
        oname = self.upload_object('c1')[0]

Also available in: Unified diff