コード例 #1
0
 def test_calls_test_impressions(self):
     """Test that report_impressions calls test_impression with the result of
     build_impressions_data"""
     self.build_impressions_data_mock.return_value = [mock.MagicMock()]
     report_impressions(self.some_impressions_cache, self.some_api_sdk)
     self.some_api_sdk.test_impressions.assert_called_once_with(
         self.build_impressions_data_mock.return_value)
コード例 #2
0
def run(arguments):
    try:
        config = parse_config_file(arguments['<config_file>'])
        redis = get_redis(config)
        impressions_cache = RedisImpressionsCache(redis)
        sdk_api = api_factory(config)
        report_impressions(impressions_cache, sdk_api)
    except:
        logger.exception('Exception caught posting impressions')
コード例 #3
0
def _report_impressions(seconds, config):
    try:
        while True:
            redis = get_redis(config)
            impressions_cache = RedisImpressionsCache(redis)
            sdk_api = api_factory(config)
            report_impressions(impressions_cache, sdk_api)

            time.sleep(seconds)
    except:
        logger.exception('Exception caught posting impressions')
コード例 #4
0
ファイル: uwsgi.py プロジェクト: engstrom/python-client
def uwsgi_report_impressions(user_config):
    try:
        config = _get_config(user_config)
        seconds = config['impressionsRefreshRate']
        while True:
            impressions_cache = UWSGIImpressionsCache(get_uwsgi())
            sdk_api = api_factory(config)
            report_impressions(impressions_cache, sdk_api)

            time.sleep(seconds)
    except:
        _logger.exception('Exception caught posting impressions')
コード例 #5
0
    def test_uwsgi_impression_listener(self):
        impressions_cache = mock.MagicMock()
        impressions = {'testName': 'someTest', 'keyImpressions': [1, 2, 3]}

        impressions_cache.fetch_all_and_clear.return_value = {
            'someTest': [1, 2, 3]
        }
        some_api = mock.MagicMock()
        listener = mock.MagicMock()
        with mock.patch('splitio.tasks.build_impressions_data',
                        return_value=impressions):
            report_impressions(impressions_cache, some_api, listener=listener)

        listener.assert_called_with({'impressions': impressions})
コード例 #6
0
 def test_cache_disabled_if_exception_is_raised(self):
     """Test that report_impressions disables the cache if an exception is raised"""
     self.build_impressions_data_mock.side_effect = Exception()
     report_impressions(self.some_impressions_cache, self.some_api_sdk)
     self.some_impressions_cache.disable.assert_called_once_with()
コード例 #7
0
 def test_doesnt_call_test_impressions_if_data_is_empty(self):
     """Test that report_impressions doesn't call test_impressions if build_impressions_data
     returns an empty list"""
     self.build_impressions_data_mock.return_value = []
     report_impressions(self.some_impressions_cache, self.some_api_sdk)
     self.some_api_sdk.test_impressions.assert_not_called()
コード例 #8
0
 def test_calls_build_impressions_data(self):
     """Test that report_impressions calls build_impressions_data_mock"""
     report_impressions(self.some_impressions_cache, self.some_api_sdk)
     self.build_impressions_data_mock.assert_called_once_with(
         self.some_impressions_cache.fetch_all_and_clear.return_value)
コード例 #9
0
 def test_calls_fetch_all_and_clear(self):
     """Test that report_impressions calls fetch_all_and_clear"""
     report_impressions(self.some_impressions_cache, self.some_api_sdk)
     self.some_impressions_cache.fetch_all_and_clear.assert_called_once_with(
     )
コード例 #10
0
 def test_doesnt_call_test_impressions_if_disabled(self):
     """Test that report_impressions doesn't call test_impressions if the cache is disabled"""
     self.some_impressions_cache.is_enabled.return_value = False
     report_impressions(self.some_impressions_cache, self.some_api_sdk)
     self.some_api_sdk.test_impressions.assert_not_called()
コード例 #11
0
 def test_doesnt_call_fetch_all_and_clear_if_disabled(self):
     """Test that report_impressions doesn't call fetch_all_and_clear if the cache is disabled"""
     self.some_impressions_cache.is_enabled.return_value = False
     report_impressions(self.some_impressions_cache, self.some_api_sdk)
     self.some_impressions_cache.fetch_all_and_clear.assert_not_called()
コード例 #12
0
 def test_calls_is_enabled(self):
     """Test that report_impressions call is_enabled"""
     report_impressions(self.some_impressions_cache, self.some_api_sdk)
     self.some_impressions_cache.is_enabled.assert_called_once_with()