def test_check_state_multiple_conditions_required(self): request = Mock(path='/foo') flag = Flag('MY_FLAG', [ Condition('boolean', True, required=True), Condition('path matches', '/foo', required=True) ]) self.assertTrue(flag.check_state(request=request))
def test_check_state_multiple_conditions_not_required(self): request = Mock(path="/foo") flag = Flag( "MY_FLAG", [Condition("boolean", False), Condition("path matches", "/foo")], ) self.assertTrue(flag.check_state(request=request))
def test_check_state_multiple_conditions_required_failure(self): request = Mock(path="/foo") flag = Flag( "MY_FLAG", [ Condition("boolean", False, required=True), Condition("path matches", "/foo", required=True), ], ) self.assertFalse(flag.check_state(request=request))
def test_flag_check_state_logs_state(self): flag = Flag( 'MY_FLAG', [Condition('boolean', False), Condition('path matches', '/foo')]) with self.assertLogs('flags.sources', level='INFO') as logger: flag.check_state(request=Mock(path='/bar')) flag.check_state(request=Mock(path='/foo')) self.assertEqual(logger.output, [ 'INFO:flags.sources:Flag MY_FLAG evaluated False with ' 'conditions: boolean (False), path matches (False).', 'INFO:flags.sources:Flag MY_FLAG evaluated True with ' 'conditions: boolean (False), path matches (True).' ])
def test_flag_check_state_logs_state(self): flag = Flag( "MY_FLAG", [Condition("boolean", False), Condition("path matches", "/foo")], ) with self.assertLogs("flags.sources", level="INFO") as logger: flag.check_state(request=Mock(path="/bar")) flag.check_state(request=Mock(path="/foo")) self.assertEqual( logger.output, [ "INFO:flags.sources:Flag MY_FLAG evaluated False with " "conditions: boolean (False), path matches (False).", "INFO:flags.sources:Flag MY_FLAG evaluated True with " "conditions: boolean (False), path matches (True).", ], )
def test_check_state_no_conditions(self): flag = Flag('MY_FLAG', []) self.assertFalse(flag.check_state())
def test_check_state(self): flag = Flag('MY_FLAG', [Condition('boolean', True)]) self.assertTrue(flag.check_state())
def test_conditions(self): flag = Flag('MY_FLAG', [Condition('boolean', True)]) self.assertEqual(len(list(flag.conditions)), 1)
def test_eq(self): flag1 = Flag('MY_FLAG') flag2 = Flag('MY_FLAG') self.assertEqual(flag1, flag2)
def test_conditions(self): flag = Flag("MY_FLAG", [Condition("boolean", True)]) self.assertEqual(len(list(flag.conditions)), 1)
def test_eq(self): flag1 = Flag("MY_FLAG") flag2 = Flag("MY_FLAG") self.assertEqual(flag1, flag2)
def test_check_state(self): flag = Flag("MY_FLAG", [Condition("boolean", True)]) self.assertTrue(flag.check_state())