def test_is_enabled_func_in_an_user_with_an_enabled_rule_that_doesnt_match( self): fn = "FOO" func = Feature(fn, None, 0) self.backend.add_functionality(func) self.backend.set_rule(fn, re.compile(r"00$")) self.backend.is_enabled(fn, "44001") | should.be_falsy()
def test_toggle(self): fn = "FOO" self.backend.add_functionality(Feature(fn)) self.backend.is_enabled(fn) | should.be_truthy() self.backend.toggle(fn) self.backend.is_enabled(fn) | should.be_falsy() self.backend.toggle(fn) self.backend.is_enabled(fn) | should.be_truthy()
def test_enable(self): fn = "FOO" func = Feature(fn, None, 50) func.enabled = False self.backend.add_functionality(func) self.backend.is_enabled(fn) | should.be_falsy() self.backend.enable(fn) self.backend.is_enabled(fn) | should.be_truthy()
def test_add_a_disabled_functionality_with_percentage(self): fn = "FOO" func = Feature(fn, None, 50) func.enabled = False self.backend.add_functionality(func) f = self.backend._get_functionality(fn) f.name | should.eql(fn) f.percentage | should.eql(50) f.enabled | should.be_falsy() self.backend._redis.smembers("rollout:users:FOO") | should.be_empty()
def test_add_a_disabled_functionality_with_percentage(self): fn = "FOO" func = Feature(fn, None, 50) func.enabled = False self.backend.add_functionality(func) self.backend.get_functionalities() | should.have_len(1) f, users = self.backend._get_functionality(fn) f.name | should.eql(fn) f.percentage | should.eql(50) f.enabled | should.be_falsy() users | should.be_empty().and_array()
def test_is_enabled_func_in_an_user_not_added(self): fn = "FOO" func = Feature(fn, None, 0) self.backend.add_functionality(func) self.backend.is_enabled(fn, "bar") | should.be_falsy()
def test_is_enabled_func_exists_but_is_disabled(self): fn = "FOO" func = Feature(fn, None, 50) func.enabled = False self.backend.add_functionality(func) self.backend.is_enabled(fn) | should.be_falsy()
def test_is_enabled_func_does_not_exist(self): fn = "FOO" self.backend.is_enabled(fn) | should.be_falsy()
def test_is_enabled_func_in_an_user_with_an_enabled_rule_that_doesnt_match(self): fn = "FOO" func = Feature(fn, None, 0) self.backend.add_functionality(func) self.backend.set_rule(fn, re.compile(r"00$")) self.backend.is_enabled(fn, "44001") | should.be_falsy()