def test_create_app_oserror(self, mock_mkdir, mock_prometheus, mock_celery): """Test handling of os exception.""" logging.disable(logging.NOTSET) err = OSError('test error') mock_mkdir.side_effect = err expected = 'WARNING:masu:test error' with self.assertLogs('masu', level='WARNING') as logger: create_app(test_config=dict()) self.assertIn(expected, logger.output)
def test_celery_functions_bogus_cw(self): """Test that celery continues to function when provided bogus AWS credentials for Cloud Watch logging. """ test_celery = Celery(__name__, broker=Config.CELERY_BROKER_URL) test_app = create_app({ 'TESTING': True, 'SQLALCHEMY_TRACK_MODIFICATIONS': False, 'SQLALCHEMY_DATABASE_URI': 'sqlite:///test.db', 'SCHEDULE_REPORT_CHECKS': True, 'REMOVE_EXPIRED_REPORT_DATA_ON_DAY': '1', 'REMOVE_EXPIRED_REPORT_UTC_TIME': '00:00', 'CW_AWS_ACCESS_KEY_ID': 'bogusAWSkey', 'CW_AWS_SECRET_ACCESS_KEY': 'bogusAWSsecret', }) self.assertIsNone(test_celery.conf.task_routes) self.assertEqual(test_celery.conf.imports, ()) self.assertEqual(test_celery.conf.beat_schedule, {}) self.assertEqual(repr(test_celery.Task), repr(Task)) update_celery_config(test_celery, test_app) self.assertIsNotNone(test_celery.conf.task_routes) self.assertNotEqual(test_celery.conf.imports, ()) self.assertNotEqual(test_celery.conf.beat_schedule, {}) self.assertNotEqual(repr(test_celery.Task), repr(Task)) logger = get_task_logger('test') setup_cloudwatch_logging(logger) logger.info('log running')
def test_update_celery_config(self): """Test that the app config updates our celery instance.""" test_celery = Celery(__name__, broker=Config.CELERY_BROKER_URL) test_app = create_app( { 'TESTING': True, 'SQLALCHEMY_TRACK_MODIFICATIONS': False, 'SQLALCHEMY_DATABASE_URI': 'sqlite:///test.db', 'SCHEDULE_REPORT_CHECKS': True, 'REMOVE_EXPIRED_REPORT_DATA_ON_DAY': '1', 'REMOVE_EXPIRED_REPORT_UTC_TIME': '00:00' } ) self.assertIsNone(test_celery.conf.task_routes) self.assertEqual(test_celery.conf.imports, ()) self.assertEqual(test_celery.conf.beat_schedule, {}) self.assertEqual(repr(test_celery.Task), repr(Task)) update_celery_config(test_celery, test_app) self.assertIsNotNone(test_celery.conf.task_routes) self.assertNotEqual(test_celery.conf.imports, ()) self.assertNotEqual(test_celery.conf.beat_schedule, {}) self.assertNotEqual(repr(test_celery.Task), repr(Task))
def test_create_app_dirs_exist(self, mock_mkdir, mock_celery): """Test handling of os exception.""" err = OSError('test error', errno.EEXIST) mock_mkdir.side_effect = err app = create_app(test_config=dict()) self.assertIsInstance(app, Flask)
def setUp(self): """Create test case setup.""" self.app = create_app({ 'TESTING': True, 'SQLALCHEMY_TRACK_MODIFICATIONS': False, 'SQLALCHEMY_DATABASE_URI': 'sqlite:///test.db' }) self.client = self.app.test_client()
def test_create_test_app(self): """Assert that testing is true with test config.""" self.assertTrue( create_app({ 'TESTING': True, 'SQLALCHEMY_TRACK_MODIFICATIONS': False, 'SQLALCHEMY_DATABASE_URI': 'sqlite:///:memory:' }).testing)
def test_create_test_app(self, mock_prometheus, mock_celery): """Assert that testing is true with test config.""" self.assertTrue( create_app({ 'TESTING': True, 'SQLALCHEMY_TRACK_MODIFICATIONS': False, 'SQLALCHEMY_DATABASE_URI': 'sqlite:///:memory:', 'REMOVE_EXPIRED_REPORT_DATA_ON_DAY': '1', 'REMOVE_EXPIRED_REPORT_UTC_TIME': '00:00' }).testing)
def test_liveness(self): """Test the liveness response.""" expected = {'alive': True} app = create_app(test_config=dict()) with app.test_request_context('/?liveness'): response = get_status() self.assertEqual(response.status_code, 200) self.assertEqual(response.json, expected)
def setUp(self): """Create test case setup.""" self.app = create_app({ 'TESTING': True, 'SQLALCHEMY_TRACK_MODIFICATIONS': False, 'SQLALCHEMY_DATABASE_URI': 'sqlite:///test.db', 'REMOVE_EXPIRED_REPORT_DATA_ON_DAY': '1', 'REMOVE_EXPIRED_REPORT_UTC_TIME': '00:00' #'CELERY_RESULT_BACKEND': 'db+sqlite:///test.db' }) self.client = self.app.test_client()
def setUp(self): """Create test case setup.""" self.app = create_app({ 'TESTING': True, 'SQLALCHEMY_TRACK_MODIFICATIONS': False, 'SQLALCHEMY_DATABASE_URI': 'sqlite:///test.db', 'REMOVE_EXPIRED_REPORT_DATA_ON_DAY': '1', 'REMOVE_EXPIRED_REPORT_UTC_TIME': '00:00', 'LOG_LEVEL': 'INFO' #'CELERY_RESULT_BACKEND': 'db+sqlite:///test.db' }) self.client = self.app.test_client() self.test_schema = 'acct10001' self.aws_db_auth_id = '1' self.ocp_db_auth_id = '2' self.ocp_test_provider_uuid = '3c6e687e-1a09-4a05-970c-2ccf44b0952e' self.aws_test_provider_uuid = '6e212746-484a-40cd-bba0-09a19d132d64' self.aws_provider_resource_name = 'arn:aws:iam::111111111111:role/CostManagement' self.ocp_provider_resource_name = 'my-ocp-cluster-1' self.aws_test_billing_source = 'test-bucket' self.ocp_test_billing_source = None
def test_create_app(self, mock_status, mock_prometheus, mock_celery): """Assert testing is false without passing test config.""" self.assertFalse(create_app().testing)
# # Copyright 2018 Red Hat, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # """Celery worker entry-point.""" from masu import create_app from masu.celery import celery, update_celery_config MASU = create_app() MASU.app_context().push() update_celery_config(celery, MASU)
def test_create_app(self): """Assert testing is false without passing test config.""" self.assertFalse(create_app().testing)