def test_index_details(self): repo = Repository() for pid in self.pids: repo.purge_object(pid) # Test with no settings set. # - should be denied response = index_config(self.request) self.assertEqual( 403, response.status_code, 'index data should be forbidden if no IPs are configured to access' ) # NOTE: these aren't meaningful errors anyway, and settings # are now being pulled from somewhere so they fail # self.assertRaises(AttributeError, index_config, self.request) # Test with only the allowed SOLR url set. # self.assertRaises(AttributeError, index_config, self.request) # Test with this IP not allowed to hit the service. # settings.EUL_INDEXER_ALLOWED_IPS = ['0.13.23.134'] with override_settings(EUL_INDEXER_ALLOWED_IPS=['0.13.23.134']): response = index_config(self.request) expected, got = 403, response.status_code self.assertEqual(expected, got, 'Expected %s but returned %s for indexdata/index_details view' \ % (expected, got)) expected, got = 'text/html', response['Content-Type'] self.assertEqual(expected, got, 'Expected %s but returned %s for mimetype on indexdata/index_details view' \ % (expected, got)) # Test with this IP allowed to hit the view. with override_settings( EUL_INDEXER_ALLOWED_IPS=['0.13.23.134', self.request_ip]): response = index_config(self.request) expected, got = 200, response.status_code self.assertEqual(expected, got, 'Expected %s but returned %s for indexdata/index_details view' \ % (expected, got)) expected, got = 'application/json', response['Content-Type'] self.assertEqual(expected, got, 'Expected %s but returned %s for mimetype on indexdata/index_details view' \ % (expected, got)) # load json content so we can inspect the result content = json.loads(response.content.decode('utf-8')) self.assertEqual(TEST_SOLR_URL, content['SOLR_URL']) self.assert_( SimpleObject.CONTENT_MODELS in content['CONTENT_MODELS']) self.assert_(LessSimpleDigitalObject.CONTENT_MODELS in content['CONTENT_MODELS']) self.assert_( ContentModel.CONTENT_MODELS not in content['CONTENT_MODELS'], 'Fedora system content models should not be included in indexed cmodels by default' ) # Test with the "ANY" setting for allowed IPs with override_settings(EUL_INDEXER_ALLOWED_IPS='ANY'): response = index_config(self.request) expected, got = 200, response.status_code self.assertEqual(expected, got, 'Expected %s but returned %s for indexdata/index_details view' \ % (expected, got)) # Test with 'EUL_INDEXER_CONTENT_MODELS' setting configured to override autodetect. with override_settings(EUL_INDEXER_ALLOWED_IPS='ANY', EUL_INDEXER_CONTENT_MODELS=[[ 'content-model_1', 'content-model_2' ], ['content-model_3']]): response = index_config(self.request) expected, got = 200, response.status_code self.assertEqual(expected, got, 'Expected %s but returned %s for indexdata/index_details view' \ % (expected, got)) expected, got = 'application/json', response['Content-Type'] self.assertEqual(expected, got, 'Expected %s but returned %s for mimetype on indexdata/index_details view' \ % (expected, got)) # load json content so we can inspect the result content = json.loads(response.content.decode('utf-8')) self.assertEqual(settings.EUL_INDEXER_CONTENT_MODELS, content['CONTENT_MODELS'])
def test_index_details(self): repo = Repository() for pid in self.pids: repo.purge_object(pid) #Test with no settings set. self.assertRaises(AttributeError, index_config, self.request) # Test with only the allowed SOLR url set. self.assertRaises(AttributeError, index_config, self.request) # Test with this IP not allowed to hit the service. #settings.EUL_INDEXER_ALLOWED_IPS = ['0.13.23.134'] with override_settings(EUL_INDEXER_ALLOWED_IPS=['0.13.23.134']): response = index_config(self.request) expected, got = 403, response.status_code self.assertEqual(expected, got, 'Expected %s but returned %s for indexdata/index_details view' \ % (expected, got)) expected, got = 'text/html', response['Content-Type'] self.assertEqual(expected, got, 'Expected %s but returned %s for mimetype on indexdata/index_details view' \ % (expected, got)) # Test with this IP allowed to hit the view. with override_settings( EUL_INDEXER_ALLOWED_IPS=['0.13.23.134', self.request_ip]): response = index_config(self.request) expected, got = 200, response.status_code self.assertEqual(expected, got, 'Expected %s but returned %s for indexdata/index_details view' \ % (expected, got)) expected, got = 'application/json', response['Content-Type'] self.assertEqual(expected, got, 'Expected %s but returned %s for mimetype on indexdata/index_details view' \ % (expected, got)) # load json content so we can inspect the result content = simplejson.loads(response.content) self.assertEqual(TEST_SOLR_URL, content['SOLR_URL']) print '** list of cmodels is ', content['CONTENT_MODELS'] print '*** looking for ', SimpleObject.CONTENT_MODELS self.assert_( SimpleObject.CONTENT_MODELS in content['CONTENT_MODELS']) self.assert_(LessSimpleDigitalObject.CONTENT_MODELS in content['CONTENT_MODELS']) self.assert_( ContentModel.CONTENT_MODELS not in content['CONTENT_MODELS'], 'Fedora system content models should not be included in indexed cmodels by default' ) # Test with the "ANY" setting for allowed IPs with override_settings(INDEXER_ALLOWED_IPS='ANY'): response = index_config(self.request) expected, got = 200, response.status_code self.assertEqual(expected, got, 'Expected %s but returned %s for indexdata/index_details view' \ % (expected, got)) # Test with 'EUL_INDEXER_CONTENT_MODELS' setting configured to override autodetect. with override_settings(EUL_INDEXER_CONTENT_MODELS=[[ 'content-model_1', 'content-model_2' ], ['content-model_3']]): response = index_config(self.request) expected, got = 200, response.status_code self.assertEqual(expected, got, 'Expected %s but returned %s for indexdata/index_details view' \ % (expected, got)) expected, got = 'application/json', response['Content-Type'] self.assertEqual(expected, got, 'Expected %s but returned %s for mimetype on indexdata/index_details view' \ % (expected, got)) # load json content so we can inspect the result content = simplejson.loads(response.content) self.assertEqual(settings.EUL_INDEXER_CONTENT_MODELS, content['CONTENT_MODELS'])
def test_index_details(self): repo = Repository() for pid in self.pids: repo.purge_object(pid) # Test with no settings set. # - should be denied response = index_config(self.request) self.assertEqual(403, response.status_code, 'index data should be forbidden if no IPs are configured to access') # NOTE: these aren't meaningful errors anyway, and settings # are now being pulled from somewhere so they fail # self.assertRaises(AttributeError, index_config, self.request) # Test with only the allowed SOLR url set. # self.assertRaises(AttributeError, index_config, self.request) # Test with this IP not allowed to hit the service. #settings.EUL_INDEXER_ALLOWED_IPS = ['0.13.23.134'] with override_settings(EUL_INDEXER_ALLOWED_IPS=['0.13.23.134']): response = index_config(self.request) expected, got = 403, response.status_code self.assertEqual(expected, got, 'Expected %s but returned %s for indexdata/index_details view' \ % (expected, got)) expected, got = 'text/html', response['Content-Type'] self.assertEqual(expected, got, 'Expected %s but returned %s for mimetype on indexdata/index_details view' \ % (expected, got)) # Test with this IP allowed to hit the view. with override_settings(EUL_INDEXER_ALLOWED_IPS=['0.13.23.134', self.request_ip]): response = index_config(self.request) expected, got = 200, response.status_code self.assertEqual(expected, got, 'Expected %s but returned %s for indexdata/index_details view' \ % (expected, got)) expected, got = 'application/json', response['Content-Type'] self.assertEqual(expected, got, 'Expected %s but returned %s for mimetype on indexdata/index_details view' \ % (expected, got)) # load json content so we can inspect the result content = json.loads(response.content) self.assertEqual(TEST_SOLR_URL, content['SOLR_URL']) self.assert_(SimpleObject.CONTENT_MODELS in content['CONTENT_MODELS']) self.assert_(LessSimpleDigitalObject.CONTENT_MODELS in content['CONTENT_MODELS']) self.assert_(ContentModel.CONTENT_MODELS not in content['CONTENT_MODELS'], 'Fedora system content models should not be included in indexed cmodels by default') # Test with the "ANY" setting for allowed IPs with override_settings(EUL_INDEXER_ALLOWED_IPS='ANY'): response = index_config(self.request) expected, got = 200, response.status_code self.assertEqual(expected, got, 'Expected %s but returned %s for indexdata/index_details view' \ % (expected, got)) # Test with 'EUL_INDEXER_CONTENT_MODELS' setting configured to override autodetect. with override_settings(EUL_INDEXER_ALLOWED_IPS='ANY', EUL_INDEXER_CONTENT_MODELS=[ ['content-model_1', 'content-model_2'], ['content-model_3']]): response = index_config(self.request) expected, got = 200, response.status_code self.assertEqual(expected, got, 'Expected %s but returned %s for indexdata/index_details view' \ % (expected, got)) expected, got = 'application/json', response['Content-Type'] self.assertEqual(expected, got, 'Expected %s but returned %s for mimetype on indexdata/index_details view' \ % (expected, got)) # load json content so we can inspect the result content = json.loads(response.content) self.assertEqual(settings.EUL_INDEXER_CONTENT_MODELS, content['CONTENT_MODELS'])
def test_index_details(self): repo = Repository() for pid in self.pids: repo.purge_object(pid) #Test with no settings set. self.assertRaises(AttributeError, index_config, self.request) #Test with only the allowed SOLR url set. solr_url = 'http://localhost:5555' settings.SOLR_SERVER_URL = solr_url self.assertRaises(AttributeError, index_config, self.request) #Test with this IP not allowed to hit the service. settings.EUL_INDEXER_ALLOWED_IPS = ['0.13.23.134'] response = index_config(self.request) expected, got = 403, response.status_code self.assertEqual(expected, got, 'Expected %s but returned %s for indexdata/index_details view' \ % (expected, got)) expected, got = 'text/html', response['Content-Type'] self.assertEqual(expected, got, 'Expected %s but returned %s for mimetype on indexdata/index_details view' \ % (expected, got)) #Test with this IP allowed to hit the view. settings.EUL_INDEXER_ALLOWED_IPS = ['0.13.23.134', self.request_ip] response = index_config(self.request) expected, got = 200, response.status_code self.assertEqual(expected, got, 'Expected %s but returned %s for indexdata/index_details view' \ % (expected, got)) expected, got = 'application/json', response['Content-Type'] self.assertEqual(expected, got, 'Expected %s but returned %s for mimetype on indexdata/index_details view' \ % (expected, got)) # load json content so we can inspect the result content = simplejson.loads(response.content) self.assertEqual(solr_url, content['SOLR_URL']) self.assert_(SimpleDigitalObject.CONTENT_MODELS in content['CONTENT_MODELS']) self.assert_(LessSimpleDigitalObject.CONTENT_MODELS in content['CONTENT_MODELS']) self.assert_(ContentModel.CONTENT_MODELS not in content['CONTENT_MODELS'], 'Fedora system content models should not be included in indexed cmodels by default') #Test with the "ANY" setting for allowed IPs settings.INDEXER_ALLOWED_IPS = 'ANY' response = index_config(self.request) expected, got = 200, response.status_code self.assertEqual(expected, got, 'Expected %s but returned %s for indexdata/index_details view' \ % (expected, got)) #Test with 'EUL_INDEXER_CONTENT_MODELS' setting configured to override autodetect. settings.EUL_INDEXER_CONTENT_MODELS = [['content-model_1', 'content-model_2'], ['content-model_3']] response = index_config(self.request) expected, got = 200, response.status_code self.assertEqual(expected, got, 'Expected %s but returned %s for indexdata/index_details view' \ % (expected, got)) expected, got = 'application/json', response['Content-Type'] self.assertEqual(expected, got, 'Expected %s but returned %s for mimetype on indexdata/index_details view' \ % (expected, got)) # load json content so we can inspect the result content = simplejson.loads(response.content) self.assertEqual(settings.EUL_INDEXER_CONTENT_MODELS, content['CONTENT_MODELS'])