Пример #1
0
    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)
Пример #2
0
    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')
Пример #3
0
    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))
Пример #4
0
    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)
Пример #5
0
 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()
Пример #6
0
 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)
Пример #7
0
 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)
Пример #8
0
    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)
Пример #9
0
 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()
Пример #10
0
 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
Пример #11
0
 def test_create_app(self, mock_status, mock_prometheus, mock_celery):
     """Assert testing is false without passing test config."""
     self.assertFalse(create_app().testing)
Пример #12
0
#
# 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)
Пример #13
0
 def test_create_app(self):
     """Assert testing is false without passing test config."""
     self.assertFalse(create_app().testing)