def objects(self): """ Returns a list of objects given the subfolder's path. The path is from the kwargs of the request. """ if not hasattr(self, "_objects"): objects = [] self._more = None marker = self.request.GET.get('marker', None) container_name = self.kwargs['container_name'] subfolder = self.kwargs['subfolder_path'] prefix = None if container_name: self.navigation_selection = True if subfolder: prefix = subfolder try: objects, self._more = api.swift_get_objects(self.request, container_name, marker=marker, prefix=prefix) except: self._more = None objects = [] msg = _('Unable to retrieve object list.') exceptions.handle(self.request, msg) self._objects = objects return self._objects
def test_index_container_selected(self): self.mox.StubOutWithMock(api, 'swift_get_containers') self.mox.StubOutWithMock(api, 'swift_get_objects') containers = (self.containers.list(), False) ret = (self.objects.list(), False) api.swift_get_containers(IsA(http.HttpRequest), marker=None).AndReturn(containers) api.swift_get_objects(IsA(http.HttpRequest), self.containers.first().name, marker=None, prefix=None).AndReturn(ret) self.mox.ReplayAll() res = self.client.get( reverse('horizon:project:containers:index', args=[wrap_delimiter(self.containers.first().name)])) self.assertTemplateUsed(res, 'project/containers/index.html') # UTF8 encoding here to ensure there aren't problems with Nose output. expected = [obj.name.encode('utf8') for obj in self.objects.list()] self.assertQuerysetEqual(res.context['objects_table'].data, expected, lambda obj: obj.name.encode('utf8'))
def test_index_container_selected(self): containers = (self.containers.list(), False) ret = (self.objects.list(), False) api.swift_get_containers(IsA(http.HttpRequest), marker=None).AndReturn(containers) api.swift_get_objects(IsA(http.HttpRequest), self.containers.first().name, marker=None, prefix=None).AndReturn(ret) self.mox.ReplayAll() res = self.client.get(reverse('horizon:project:containers:index', args=[wrap_delimiter(self.containers .first() .name)])) self.assertTemplateUsed(res, 'project/containers/index.html') # UTF8 encoding here to ensure there aren't problems with Nose output. expected = [obj.name.encode('utf8') for obj in self.objects.list()] self.assertQuerysetEqual(res.context['objects_table'].data, expected, lambda obj: obj.name.encode('utf8'))
def test_swift_get_objects(self): container = self.containers.first() objects = self.objects.list() swift_api = self.stub_swiftclient() swift_api.get_container(container.name, limit=1001, marker=None, prefix=None, delimiter='/', full_listing=True).AndReturn([{}, objects]) self.mox.ReplayAll() (objs, more) = api.swift_get_objects(self.request, container.name) self.assertEqual(len(objs), len(objects)) self.assertFalse(more)