Revision 84c67d8e

b/snf-pithos-app/pithos/api/test/containers.py
118 118
        self.assertTrue('X-Container-Meta-Quality' in container_info)
119 119
        self.assertTrue('X-Container-Meta-Foo' in container_info)
120 120
        self.assertTrue('X-Container-Object-Count' in container_info)
121
        self.assertTrue(int(container_info['X-Container-Object-Count']) > len(objects))
121
        self.assertTrue(int(container_info['X-Container-Object-Count']) >
122
                        len(objects))
122 123
        self.assertTrue('X-Container-Bytes-Used' in container_info)
123 124

  
124 125
        t = datetime.datetime.strptime(container_info['Last-Modified'],
......
134 135
            container_info['X-Container-Until-Timestamp'], DATE_FORMATS[2])
135 136
        self.assertTrue(int(_time.mktime(t1.timetuple())) <= until)
136 137
        self.assertTrue('X-Container-Object-Count' in container_info)
137
        self.assertEqual(int(container_info['X-Container-Object-Count']), len(objects))
138
        self.assertEqual(int(container_info['X-Container-Object-Count']),
139
                         len(objects))
138 140
        self.assertTrue('X-Container-Bytes-Used' in container_info)
139 141
        self.assertEqual(int(container_info['X-Container-Bytes-Used']),
140 142
                         sum([len(data) for data in objects.values()]))
141 143
        self.assertTrue('X-Container-Object-Meta' in container_info)
142
        self.assertEqual(container_info['X-Container-Object-Meta'],
143
                         ','.join(sorted(metalist))) 
144
        self.assertEqual(
145
            sorted(container_info['X-Container-Object-Meta'].split(',')),
146
            sorted(metalist))
144 147

  
145 148

  
146 149
class ContainerGet(PithosAPITest):
b/snf-pithos-app/pithos/api/test/listing.py
49 49
            self.create_folder(cname, 'f1/f2', user=user)
50 50
            self.upload_object(cname, 'f1/f2/obj', user=user)
51 51

  
52
        # share /c0/f1 path
52
        # share /c0/f1 path for read
53 53
        url = join_urls(self.pithos_path, user, 'c0', 'f1')
54 54
        r = self.post(url, user=user, content_type='',
55 55
                      HTTP_CONTENT_RANGE='bytes */*',
56 56
                      HTTP_X_OBJECT_SHARING='read=*')
57 57
        self.assertEqual(r.status_code, 202)
58
        r = self.get(url)
58

  
59
        # share /c0/f1/f2 path for write
60
        url = join_urls(self.pithos_path, user, 'c0', 'f1/f2')
61
        r = self.post(url, user=user, content_type='',
62
                      HTTP_CONTENT_RANGE='bytes */*',
63
                      HTTP_X_OBJECT_SHARING='write=*')
64
        self.assertEqual(r.status_code, 202)
59 65

  
60 66
    def test_list_share_with_me(self):
61 67
        self._build_structure('alice')
b/snf-pithos-app/pithos/api/test/permissions.py
343 343
        self.assertEqual(r.status_code, 403)
344 344
        r = self.delete(url, user='chuck')
345 345
        self.assertEqual(r.status_code, 403)
346

  
347
    def test_multiple_inheritance(self):
348
        cname = self.container
349
        folder = self.create_folder(cname, HTTP_X_OBJECT_SHARING='write=*')[0]
350
        subfolder = self.create_folder(cname, '%s/%s' % (folder,
351
                                                         get_random_name()))[0]
352
        self.upload_object(cname, '%s/%s' % (subfolder, get_random_name()))
353

  
354
        self._assert_read(subfolder, self.users)
355
        self._assert_write(subfolder, self.users)
356

  
357
        # share object for read only
358
        url = join_urls(self.pithos_path, self.user, cname, subfolder)
359
        self.post(url, content_type='', HTTP_CONTENT_RANGE='bytes */*',
360
                  HTTP_X_OBJECT_SHARING='read=*')
361

  
362
        self._assert_read(subfolder, self.users)
363
        self._assert_write(subfolder, [])

Also available in: Unified diff