def test_public_data_anonymous(self, mock_public_listing): """Testing anonymouse access to: /data/browser /data/browser/public /data/browser/public/nees.public /data/browser/public/nees.public/folder """ urls = [ '/data/browser', '/data/browser/public', '/data/browser/public/nees.public', '/data/browser/public/nees.public/folder'] mock_public_listing.return_value = self.es_listing_json for url in urls: url_components = url.strip('/').split('/') resource = None file_path = None if len(url_components) >= 3: resource = url_components[2] if len(url_components) > 3: file_path = '/'.join(url_components[3:]) #Create request request = RequestFactory().get(url) request.user = AnonymousUser() #Initi view test_view = DataBrowserTestView() #Setup view for testing test_view = self.view_to_test(test_view, request, resource = resource, file_path = file_path) #We're just going to get the context data. context = test_view.get_context_data(**test_view.kwargs) angular_init = json.loads(context['angular_init']) keys = angular_init.keys() self.assertIn('currentSource', keys) self.assertIn('sources', keys) self.assertIn('listing', keys) self.assertIn('state', keys) self.assertIsNotNone(angular_init['currentSource']) self.assertIsNotNone(angular_init['sources']) self.assertIsNotNone(angular_init['listing']) self.assertIsNotNone(angular_init['state']) self.assertIsNotNone(angular_init['state']['search']) if len(url_components) <= 3: mock_public_listing.assert_called_with(None) else: mock_public_listing.assert_called_with('/'.join(url_components[3:]))