Revision 92428559

b/snf-pithos-app/pithos/api/test/containers.py
418 418
        container_url = join_urls(self.pithos_path, self.user, cname)
419 419
        onames = self.objects[cname].keys()
420 420

  
421
        r = self.get('%s?shared=&public=&format=json' % container_url)
422
        self.assertEqual(r.status_code, 200)
423
        objects = json.loads(r.content)
424
        self.assertEqual(len(objects), 0)
425

  
421 426
        # publish an object
422 427
        public1 = onames.pop()
423 428
        url = join_urls(container_url, public1)
424 429
        r = self.post(url, content_type='', HTTP_X_OBJECT_PUBLIC='true')
425 430
        self.assertEqual(r.status_code, 202)
426 431

  
432
        r = self.get('%s?shared=&public=&format=json' % container_url)
433
        self.assertEqual(r.status_code, 200)
434
        objects = json.loads(r.content)
435
        self.assertEqual(len(objects), 1)
436
        self.assertEqual(objects[0]['name'], public1)
437
        self.assertEqual(objects[0]['bytes'],
438
                         len(self.objects[cname][public1]))
439
        self.assertTrue('x_object_public' in objects[0])
440

  
427 441
        # publish another
428 442
        public2 = onames.pop()
429 443
        url = join_urls(container_url, public2)
......
469 483
        # create child object
470 484
        descendant = strnextling(public1)
471 485
        self.upload_object(cname, descendant)
472
        # request public and assert child obejct is not listed
486
        # request public and assert child object is not listed
473 487
        r = self.get('%s?shared=&public=' % container_url)
474 488
        objects = r.content.split('\n')
475 489
        if '' in objects:
......
491 505
        self.assertTrue(folder in objects)
492 506
        self.assertTrue(descendant not in objects)
493 507

  
508
        # unpublish public1
509
        url = join_urls(container_url, public1)
510
        r = self.post(url, content_type='', HTTP_X_OBJECT_PUBLIC='false')
511
        self.assertEqual(r.status_code, 202)
512

  
513
        # unpublish public2
514
        url = join_urls(container_url, public2)
515
        r = self.post(url, content_type='', HTTP_X_OBJECT_PUBLIC='false')
516
        self.assertEqual(r.status_code, 202)
517

  
518
        # unpublish folder
519
        url = join_urls(container_url, folder)
520
        r = self.post(url, content_type='', HTTP_X_OBJECT_PUBLIC='false')
521
        self.assertEqual(r.status_code, 202)
522

  
523
        r = self.get('%s?shared=&public=' % container_url)
524
        self.assertEqual(r.status_code, 200)
525
        objects = r.content.split('\n')
526
        if '' in objects:
527
            objects.remove('')
528
        l = sorted([shared1, shared2])
529
        self.assertEqual(objects, l)
530

  
494 531
    def test_list_objects(self):
495 532
        cname = self.cnames[0]
496 533
        url = join_urls(self.pithos_path, self.user, cname)
b/snf-pithos-backend/pithos/backends/modular.py
765 765
        if user != account and until:
766 766
            raise NotAllowedError
767 767

  
768
        objects = []
768
        objects = set()
769 769
        if shared and public:
770 770
            # get shared first
771 771
            shared_paths = self._list_object_permissions(

Also available in: Unified diff