Skip to content

Commit

Permalink
Update exact_match testcase
Browse files Browse the repository at this point in the history
  • Loading branch information
oakbani committed Dec 27, 2018
1 parent 24a6350 commit 8c6fbb4
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 14 deletions.
24 changes: 16 additions & 8 deletions tests/helpers_tests/test_condition.py
Original file line number Diff line number Diff line change
Expand Up @@ -290,19 +290,27 @@ def test_exact__given_number_values__calls_is_finite_number(self):
exact_int_condition_list, {'lasers_count': 9000}
)

# assert that isFiniteNumber only needs to reject condition value to stop evaluation.
with mock.patch('optimizely.helpers.validator.is_finite_number',
return_value=True) as mock_is_finite:
self.assertTrue(evaluator.evaluate(0))
mock_is_finite.assert_called_with(9000)
side_effect=[False, True]) as mock_is_finite:
self.assertIsNone(evaluator.evaluate(0))

evaluator = condition_helper.CustomAttributeConditionEvaluator(
exact_int_condition_list, {'lasers_count': 9000.0}
)
mock_is_finite.assert_called_once_with(9000)

# assert that isFiniteNumber evaluates user value only if it has accepted condition value.
with mock.patch('optimizely.helpers.validator.is_finite_number',
return_value=False) as mock_is_finite:
side_effect=[True, False]) as mock_is_finite:
self.assertIsNone(evaluator.evaluate(0))
mock_is_finite.assert_called_with(9000.0)

mock_is_finite.assert_has_calls([mock.call(9000), mock.call(9000)])

# assert CustomAttributeConditionEvaluator.evaluate returns True only when isFiniteNumber returns
# True both for condition and user values.
with mock.patch('optimizely.helpers.validator.is_finite_number',
side_effect=[True, True]) as mock_is_finite:
self.assertTrue(evaluator.evaluate(0))

mock_is_finite.assert_has_calls([mock.call(9000), mock.call(9000)])

def test_exact_bool__returns_true__when_user_provided_value_is_equal_to_condition_value(self):

Expand Down
12 changes: 6 additions & 6 deletions tests/helpers_tests/test_validator.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,23 +173,23 @@ def test_is_attribute_valid(self):

# test if attribute value is a number, it calls is_finite_number and returns it's result
with mock.patch('optimizely.helpers.validator.is_finite_number',
return_value=True) as is_finite:
return_value=True) as mock_is_finite:
self.assertTrue(validator.is_attribute_valid('test_attribute', 5))

is_finite.assert_called_once_with(5)
mock_is_finite.assert_called_once_with(5)

with mock.patch('optimizely.helpers.validator.is_finite_number',
return_value=False) as is_finite:
return_value=False) as mock_is_finite:
self.assertFalse(validator.is_attribute_valid('test_attribute', 5.5))

is_finite.assert_called_once_with(5.5)
mock_is_finite.assert_called_once_with(5.5)

if PY2:
with mock.patch('optimizely.helpers.validator.is_finite_number',
return_value=None) as is_finite:
return_value=None) as mock_is_finite:
self.assertIsNone(validator.is_attribute_valid('test_attribute', long(5)))

is_finite.assert_called_once_with(long(5))
mock_is_finite.assert_called_once_with(long(5))

def test_is_finite_number(self):
""" Test that it returns true if value is a number and not NAN, INF, -INF or greater than 2^53.
Expand Down

0 comments on commit 8c6fbb4

Please sign in to comment.