test_config.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. from typing import Dict
  2. import pytest
  3. import pynecone as pc
  4. from pynecone import constants
  5. from pynecone.config import DBConfig
  6. @pytest.fixture
  7. def config_no_db_url_values(base_config_values) -> Dict:
  8. """Create config values with no db_url.
  9. Args:
  10. base_config_values: Base config fixture.
  11. Returns:
  12. Config values.
  13. """
  14. base_config_values.pop("db_url")
  15. return base_config_values
  16. @pytest.fixture
  17. def config_empty_db_url_values(base_config_values) -> Dict:
  18. """Create config values with empty db_url.
  19. Args:
  20. base_config_values: Base config values fixture.
  21. Returns:
  22. Config values
  23. """
  24. base_config_values["db_url"] = None
  25. return base_config_values
  26. def test_config_db_url(base_config_values):
  27. """Test defined db_url is not changed.
  28. Args:
  29. base_config_values: base_config_values fixture.
  30. """
  31. config = pc.Config(**base_config_values)
  32. assert config.db_url == base_config_values["db_url"]
  33. def test_default_db_url(config_no_db_url_values):
  34. """Test that db_url is assigned the default value if not passed.
  35. Args:
  36. config_no_db_url_values: Config values with no db_url defined.
  37. """
  38. config = pc.Config(**config_no_db_url_values)
  39. assert config.db_url == constants.DB_URL
  40. def test_empty_db_url(config_empty_db_url_values):
  41. """Test that db_url is not automatically assigned if an empty value is defined.
  42. Args:
  43. config_empty_db_url_values: Config values with empty db_url.
  44. """
  45. config = pc.Config(**config_empty_db_url_values)
  46. assert config.db_url is None
  47. def test_db_url_precedence(base_config_values, sqlite_db_config_values):
  48. """Test that db_url is not overwritten when db_url is defined.
  49. Args:
  50. base_config_values: config values that include db_ur.
  51. sqlite_db_config_values: DB config values.
  52. """
  53. db_config = DBConfig(**sqlite_db_config_values)
  54. base_config_values["db_config"] = db_config
  55. config = pc.Config(**base_config_values)
  56. assert config.db_url == base_config_values["db_url"]
  57. def test_db_url_from_db_config(config_no_db_url_values, sqlite_db_config_values):
  58. """Test db_url generation from db_config.
  59. Args:
  60. config_no_db_url_values: Config values with no db_url.
  61. sqlite_db_config_values: DB config values.
  62. """
  63. db_config = DBConfig(**sqlite_db_config_values)
  64. config_no_db_url_values["db_config"] = db_config
  65. config = pc.Config(**config_no_db_url_values)
  66. assert config.db_url == db_config.get_url()