Exemplo n.º 1
0
 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))
Exemplo n.º 2
0
 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))
Exemplo n.º 3
0
 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))
Exemplo n.º 4
0
    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).'
        ])
Exemplo n.º 5
0
    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).",
            ],
        )
Exemplo n.º 6
0
 def test_check_state_no_conditions(self):
     flag = Flag('MY_FLAG', [])
     self.assertFalse(flag.check_state())
Exemplo n.º 7
0
 def test_check_state(self):
     flag = Flag('MY_FLAG', [Condition('boolean', True)])
     self.assertTrue(flag.check_state())
Exemplo n.º 8
0
 def test_conditions(self):
     flag = Flag('MY_FLAG', [Condition('boolean', True)])
     self.assertEqual(len(list(flag.conditions)), 1)
Exemplo n.º 9
0
 def test_eq(self):
     flag1 = Flag('MY_FLAG')
     flag2 = Flag('MY_FLAG')
     self.assertEqual(flag1, flag2)
Exemplo n.º 10
0
 def test_conditions(self):
     flag = Flag("MY_FLAG", [Condition("boolean", True)])
     self.assertEqual(len(list(flag.conditions)), 1)
Exemplo n.º 11
0
 def test_eq(self):
     flag1 = Flag("MY_FLAG")
     flag2 = Flag("MY_FLAG")
     self.assertEqual(flag1, flag2)
Exemplo n.º 12
0
 def test_check_state(self):
     flag = Flag("MY_FLAG", [Condition("boolean", True)])
     self.assertTrue(flag.check_state())