def test_cors_disable(self): """test disabling cors""" resp = { "enable_cors": False, "allow_credentials": False, "origins": [] } mock_put = mock.Mock() mock_put.raise_for_status = mock.Mock() mock_put.json = mock.Mock() mock_put.json.return_value = resp self.mock_instance.put.return_value = mock_put c = Cloudant(self.username, self.password, account=self.username) c.connect() cors = c.disable_cors() self.assertEqual(cors, resp) self.assertTrue(self.mock_instance.get.called) self.assertTrue(self.mock_instance.put.called)
class CloudantAccountTests(UnitTestDbBase): """ Cloudant specific Account unit tests """ def test_constructor_with_account(self): """ Test instantiating an account object using an account name """ # Ensure that the client is new del self.client self.client = Cloudant(self.user, self.pwd, account=self.account) self.assertEqual( self.client.cloudant_url, 'https://{0}.cloudant.com'.format(self.account) ) def test_connect_headers(self): """ Test that the appropriate request headers are set """ try: self.client.connect() self.assertEqual( self.client.r_session.headers['X-Cloudant-User'], self.account ) agent = self.client.r_session.headers.get('User-Agent') self.assertTrue(agent.startswith('python-cloudant')) finally: self.client.disconnect() def test_billing_data(self): """ Test the retrieval of billing data """ try: self.client.connect() expected = [ 'data_volume', 'total', 'start', 'end', 'http_heavy', 'http_light' ] # Test using year and month year = datetime.now().year month = datetime.now().month data = self.client.bill(year, month) self.assertTrue(all(x in expected for x in data.keys())) #Test without year and month arguments del data data = self.client.bill() self.assertTrue(all(x in expected for x in data.keys())) finally: self.client.disconnect() def test_volume_usage_data(self): """ Test the retrieval of volume usage data """ try: self.client.connect() expected = [ 'data_vol', 'granularity', 'start', 'end' ] # Test using year and month year = datetime.now().year month = datetime.now().month data = self.client.volume_usage(year, month) self.assertTrue(all(x in expected for x in data.keys())) #Test without year and month arguments del data data = self.client.volume_usage() self.assertTrue(all(x in expected for x in data.keys())) finally: self.client.disconnect() def test_requests_usage_data(self): """ Test the retrieval of requests usage data """ try: self.client.connect() expected = [ 'requests', 'granularity', 'start', 'end' ] # Test using year and month year = datetime.now().year month = datetime.now().month data = self.client.requests_usage(year, month) self.assertTrue(all(x in expected for x in data.keys())) #Test without year and month arguments del data data = self.client.requests_usage() self.assertTrue(all(x in expected for x in data.keys())) finally: self.client.disconnect() def test_shared_databases(self): """ Test the retrieval of shared database list """ try: self.client.connect() self.assertIsInstance(self.client.shared_databases(), list) finally: self.client.disconnect() def test_generate_api_key(self): """ Test the generation of an API key for this account """ try: self.client.connect() expected = ['key', 'password', 'ok'] api_key = self.client.generate_api_key() self.assertTrue(all(x in expected for x in api_key.keys())) self.assertTrue(api_key['ok']) finally: self.client.disconnect() def test_cors_configuration(self): """ Test the retrieval of the current CORS configuration for this account """ try: self.client.connect() expected = ['allow_credentials', 'enable_cors', 'origins'] cors = self.client.cors_configuration() self.assertTrue(all(x in expected for x in cors.keys())) finally: self.client.disconnect() def test_cors_origins(self): """ Test the retrieval of the CORS origins list """ try: self.client.connect() origins = self.client.cors_origins() self.assertIsInstance(origins, list) finally: self.client.disconnect() def test_disable_cors(self): """ Test disabling CORS (assuming CORS is enabled) """ try: self.client.connect() # Save original CORS settings save = self.client.cors_configuration() # Test CORS disable self.assertEqual(self.client.disable_cors(), {'ok': True}) # Restore original CORS settings self.client.update_cors_configuration( save['enable_cors'], save['allow_credentials'], save['origins'], True ) finally: self.client.disconnect() def test_update_cors_configuration(self): """ Test updating CORS configuration """ try: self.client.connect() # Save original CORS settings save = self.client.cors_configuration() # Test updating CORS settings, overwriting origins result = self.client.update_cors_configuration( True, True, ['https://ibm.com'], True) self.assertEqual(result, {'ok': True}) updated_cors = self.client.cors_configuration() self.assertTrue(updated_cors['enable_cors']) self.assertTrue(updated_cors['allow_credentials']) expected = ['https://ibm.com'] self.assertTrue(all(x in expected for x in updated_cors['origins'])) # Test updating CORS settings, adding to origins result = self.client.update_cors_configuration( True, True, ['https://ibm.cloudant.com'] ) self.assertEqual(result, {'ok': True}) del updated_cors updated_cors = self.client.cors_configuration() self.assertTrue(updated_cors['enable_cors']) self.assertTrue(updated_cors['allow_credentials']) expected.append('https://ibm.cloudant.com') self.assertTrue(all(x in expected for x in updated_cors['origins'])) # Restore original CORS settings self.client.update_cors_configuration( save['enable_cors'], save['allow_credentials'], save['origins'], True ) finally: self.client.disconnect()