示例#1
0
 def test_str(self):
     feature_str = str(Feature('ff1', groups=['a'], users=[1],
                               percentage=1))
     print feature_str
     self.assertTrue("Groups:['a']" in feature_str)
     self.assertTrue("Users:[1]" in feature_str)
     self.assertTrue("Percent:1:False" in feature_str)
示例#2
0
 def test_repr(self):
     feature = Feature('ff1', groups=['a'], users=[1], percentage=1)
     feature_repr = repr(feature)
     feature_compare = eval(feature_repr)
     self.assertEqual(feature.name, feature_compare.name)
     self.assertEqual(feature.groups, feature_compare.groups)
     self.assertEqual(feature.percentage, feature_compare.percentage)
     self.assertEqual(feature.randomize, feature_compare.randomize)
     self.assertEqual(feature.users, feature_compare.users)
示例#3
0
    def get_feature_config(self, feature_name):
        feature = PyRolloutFeature.get_by_name(feature_name)
        if feature:
            feature = Feature(feature.name,
                              groups=feature.groups,
                              users=feature.users,
                              percentage=feature.percentage,
                              randomize=feature.randomize)

        return feature
示例#4
0
 def test_feature_creation(self):
     feature = Feature('feature1', groups=['g1'])
     self.assertEqual(feature.name, 'feature1')
     self.assertEqual(feature.groups, ['g1'])
示例#5
0
 def test_percentage_100(self):
     users = [self._add_user() for _ in range(100)]
     self.rollout.add_feature(Feature('pct', percentage=100))
     self.assertEquals(100, [self.rollout.can(u, 'pct')
                             for u in users].count(True))
示例#6
0
 def setUp(self):
     self.rollout = Rollout()
     self.rollout.add_feature(Feature('feature_for_all', groups=['ALL']))
     self.rollout.add_feature(Feature('feature_for_none', groups=['NONE']))
     self.rollout.add_feature(Feature('feature_for_some', groups=['some']))
示例#7
0
 def test_percentage_string_user_id(self):
     users = [self._add_user(string_id=True) for _ in range(100)]
     self.assertTrue(isinstance(users[0].get('id'), basestring))
     self.rollout.add_feature(Feature('20pct', percentage=20))
     self.assertEquals(20, [self.rollout.can(u, '20pct')
                            for u in users].count(True))
示例#8
0
 def test_specify_storage(self):
     rollout = Rollout(feature_storage=MemoryFeatureStorage(),
                       user_storage=MemoryUserStorage())
     rollout.add_feature(Feature('feature_for_all', groups=['ALL']))
     user = self._add_user()
     self.assertTrue(self.rollout.can(user, 'feature_for_all') is True)
示例#9
0
 def test_user_feature(self):
     u = self._add_user()
     self.rollout.add_feature(Feature('myfeature', users=[u['id']]))
     self.rollout.add_feature(Feature('notmyfeature', users=[-1]))
     self.assertTrue(self.rollout.can(u, 'myfeature'))
     self.assertFalse(self.rollout.can(u, 'notmyfeature'))
示例#10
0
 def test_pct_string_user_id_rand(self):
     users = [self._add_user(string_id=True) for _ in range(100)]
     self.rollout.add_feature(Feature('pctx', percentage=10,
                                      randomize=True))
     self.assertEquals(10, [self.rollout.can(u, 'pctx')
                            for u in users].count(True))