test_base.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. import pytest
  2. from reflex.base import Base
  3. @pytest.fixture
  4. def child() -> Base:
  5. """A child class.
  6. Returns:
  7. A child class.
  8. """
  9. class Child(Base):
  10. num: float
  11. key: str
  12. return Child(num=3.14, key="pi")
  13. def test_get_fields(child):
  14. """Test that the fields are set correctly.
  15. Args:
  16. child: A child class.
  17. """
  18. assert child.get_fields().keys() == {"num", "key"}
  19. def test_set(child):
  20. """Test setting fields.
  21. Args:
  22. child: A child class.
  23. """
  24. child.set(num=1, key="a")
  25. assert child.num == 1
  26. assert child.key == "a"
  27. def test_json(child):
  28. """Test converting to json.
  29. Args:
  30. child: A child class.
  31. """
  32. assert child.json().replace(" ", "") == '{"num":3.14,"key":"pi"}'
  33. @pytest.fixture
  34. def complex_child() -> Base:
  35. """A child class.
  36. Returns:
  37. A child class.
  38. """
  39. class Child(Base):
  40. num: float
  41. key: str
  42. name: str
  43. age: int
  44. active: bool
  45. return Child(num=3.14, key="pi", name="John Doe", age=30, active=True)
  46. def test_complex_get_fields(complex_child):
  47. """Test that the fields are set correctly.
  48. Args:
  49. complex_child: A child class.
  50. """
  51. assert complex_child.get_fields().keys() == {"num", "key", "name", "age", "active"}
  52. def test_complex_set(complex_child):
  53. """Test setting fields.
  54. Args:
  55. complex_child: A child class.
  56. """
  57. complex_child.set(num=1, key="a", name="Jane Doe", age=28, active=False)
  58. assert complex_child.num == 1
  59. assert complex_child.key == "a"
  60. assert complex_child.name == "Jane Doe"
  61. assert complex_child.age == 28
  62. assert complex_child.active is False
  63. def test_complex_json(complex_child):
  64. """Test converting to json.
  65. Args:
  66. complex_child: A child class.
  67. """
  68. assert (
  69. complex_child.json().replace(" ", "")
  70. == '{"num":3.14,"key":"pi","name":"JohnDoe","age":30,"active":true}'
  71. )