Ejemplo n.º 1
0
    def test_client_raise_attribute_error(self):
        client_1 = Client(RedisBroker(self._redis, self._some_config), True,
                          ImpressionListenerClientEmpty())

        with self.assertRaises(AttributeError):
            client_1._impression_listener.log_impression(
                self.some_impression_0)
Ejemplo n.º 2
0
    def setUp(self):
        self._some_config = mock.MagicMock()
        self._split_changes_file_name = join(
            dirname(__file__), 'splitCustomImpressionListener.json')

        with open(self._split_changes_file_name) as f:
            self._json = load(f)
            split_definition = self._json['splits'][0]
            split_name = split_definition['name']

        self._redis = get_redis(
            {'redisPrefix': 'customImpressionListenerTest'})

        self._redis_split_cache = RedisSplitCache(self._redis)
        self._redis_split_cache.add_split(split_name, split_definition)
        self._client = Client(RedisBroker(self._redis, self._some_config))

        self.some_feature = 'feature_0'
        self.some_impression_0 = Impression(matching_key=mock.MagicMock(),
                                            feature_name=self.some_feature,
                                            treatment=mock.MagicMock(),
                                            label=mock.MagicMock(),
                                            change_number=mock.MagicMock(),
                                            bucketing_key=mock.MagicMock(),
                                            time=mock.MagicMock())
Ejemplo n.º 3
0
    def setUp(self):
        self._some_config = mock.MagicMock()
        self._split_changes_file_name = join(dirname(__file__),
                                             'splitGetTreatments.json')

        with open(self._split_changes_file_name) as f:
            self._json = load(f)
            split_definition = self._json['splits'][0]
            split_name = split_definition['name']

        self._redis = get_redis({'redisPrefix': 'getTreatmentsTest'})

        self._redis_split_cache = RedisSplitCache(self._redis)
        self._redis_split_cache.add_split(split_name, split_definition)
        self._client = Client(RedisBroker(self._redis, self._some_config))

        self._config = {
            'ready': 180000,
            'redisDb': 0,
            'redisHost': 'localhost',
            'redisPosrt': 6379,
            'redisPrefix': 'getTreatmentsTest'
        }
        self._factory = get_factory('asdqwe123456', config=self._config)
        self._split = self._factory.client()
Ejemplo n.º 4
0
    def setUp(self):
        self.some_config = mock.MagicMock()
        self.some_api_key = mock.MagicMock()
        self.redis = get_redis({'redisPrefix': 'test'})
        self.client = Client(RedisBroker(self.redis, self.some_config))

        input_validator._LOGGER.error = mock.MagicMock()
        self.logger_error = input_validator._LOGGER.error
        input_validator._LOGGER.warning = mock.MagicMock()
        self.logger_warning = input_validator._LOGGER.warning
Ejemplo n.º 5
0
    def setUp(self):
        self.some_config = mock.MagicMock()
        self.some_api_key = mock.MagicMock()
        self.redis = get_redis({'redisPrefix': 'test'})
        self.client = Client(RedisBroker(self.redis, self.some_config))
        self.client._broker.fetch_feature = mock.MagicMock(
            return_value=Split("some_feature", 0, False, "default_treatment",
                               "user", "ACTIVE", 123))

        self.client._build_impression = mock.MagicMock()

        input_validator._LOGGER.error = mock.MagicMock()
        self.logger_error = input_validator._LOGGER.error
        input_validator._LOGGER.warning = mock.MagicMock()
        self.logger_warning = input_validator._LOGGER.warning
Ejemplo n.º 6
0
    def setUp(self):
        self._some_config = mock.MagicMock()
        self._split_changes_file_name = join(dirname(__file__), 'splitChangesReadOnly.json')

        with open(self._split_changes_file_name) as f:
            self._json = load(f)
            split_definition = self._json['splits'][0]
            split_name = split_definition['name']

        self._redis = get_redis({'redisPrefix': 'test'})

        self._mocked_redis = ReadOnlyRedisMock(self._redis)
        self._redis_split_cache = RedisSplitCache(self._redis)
        self._redis_split_cache.add_split(split_name, split_definition)
        self._client = Client(RedisBroker(self._mocked_redis, self._some_config))

        self._impression = mock.MagicMock()
        self._start = mock.MagicMock()
        self._operation = mock.MagicMock()
Ejemplo n.º 7
0
    def setUp(self):
        '''
        '''
        redis = get_redis({})
        segment_cache = RedisSegmentCache(redis)
        split_parser = RedisSplitParser(segment_cache)
        self._client = Client(RedisBroker(redis))

        self._splitObjects = {}

        raw_split = {
            'name':
            'test1',
            'algo':
            1,
            'killed':
            False,
            'status':
            'ACTIVE',
            'defaultTreatment':
            'default',
            'seed':
            -1222652054,
            'orgId':
            None,
            'environment':
            None,
            'trafficTypeId':
            None,
            'trafficTypeName':
            None,
            'changeNumber':
            1,
            'conditions': [{
                'conditionType': 'WHITELIST',
                'matcherGroup': {
                    'combiner':
                    'AND',
                    'matchers': [{
                        'matcherType': 'ALL_KEYS',
                        'negate': False,
                        'userDefinedSegmentMatcherData': None,
                        'whitelistMatcherData': None
                    }]
                },
                'partitions': [{
                    'treatment': 'on',
                    'size': 100
                }],
                'label': 'in segment all'
            }]
        }
        self._splitObjects['whitelist'] = split_parser.parse(raw_split, True)

        raw_split['name'] = 'test2'
        raw_split['conditions'][0]['conditionType'] = 'ROLLOUT'
        self._splitObjects['rollout1'] = split_parser.parse(raw_split, True)

        raw_split['name'] = 'test3'
        raw_split['trafficAllocation'] = 1
        raw_split['trafficAllocationSeed'] = -1
        self._splitObjects['rollout2'] = split_parser.parse(raw_split, True)

        raw_split['name'] = 'test4'
        raw_split['trafficAllocation'] = None  #must be mapped as 100
        raw_split['trafficAllocationSeed'] = -1
        self._splitObjects['rollout3'] = split_parser.parse(raw_split, True)