Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

test_boolean_contains_fix.py 2.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!/usr/bin/env python3
  2. """
  3. Test script to verify the boolean array comparison fix in condition processor.
  4. """
  5. import sys
  6. import os
  7. # Add the api directory to the Python path
  8. sys.path.insert(0, os.path.join(os.path.dirname(__file__), "api"))
  9. from core.workflow.utils.condition.processor import (
  10. _assert_contains,
  11. _assert_not_contains,
  12. )
  13. def test_boolean_array_contains():
  14. """Test that boolean arrays work correctly with string comparisons."""
  15. # Test case 1: Boolean array [True, False, True] contains "true"
  16. bool_array = [True, False, True]
  17. # Should return True because "true" converts to True and True is in the array
  18. result1 = _assert_contains(value=bool_array, expected="true")
  19. print(f"Test 1 - [True, False, True] contains 'true': {result1}")
  20. assert result1 == True, "Expected True but got False"
  21. # Should return True because "false" converts to False and False is in the array
  22. result2 = _assert_contains(value=bool_array, expected="false")
  23. print(f"Test 2 - [True, False, True] contains 'false': {result2}")
  24. assert result2 == True, "Expected True but got False"
  25. # Test case 2: Boolean array [True, True] does not contain "false"
  26. bool_array2 = [True, True]
  27. result3 = _assert_contains(value=bool_array2, expected="false")
  28. print(f"Test 3 - [True, True] contains 'false': {result3}")
  29. assert result3 == False, "Expected False but got True"
  30. # Test case 3: Test not_contains
  31. result4 = _assert_not_contains(value=bool_array2, expected="false")
  32. print(f"Test 4 - [True, True] not contains 'false': {result4}")
  33. assert result4 == True, "Expected True but got False"
  34. result5 = _assert_not_contains(value=bool_array, expected="true")
  35. print(f"Test 5 - [True, False, True] not contains 'true': {result5}")
  36. assert result5 == False, "Expected False but got True"
  37. # Test case 4: Test with different string representations
  38. result6 = _assert_contains(
  39. value=bool_array, expected="1"
  40. ) # "1" should convert to True
  41. print(f"Test 6 - [True, False, True] contains '1': {result6}")
  42. assert result6 == True, "Expected True but got False"
  43. result7 = _assert_contains(
  44. value=bool_array, expected="0"
  45. ) # "0" should convert to False
  46. print(f"Test 7 - [True, False, True] contains '0': {result7}")
  47. assert result7 == True, "Expected True but got False"
  48. print("\n✅ All boolean array comparison tests passed!")
  49. if __name__ == "__main__":
  50. test_boolean_array_contains()