/tests/app/test_config.py

https://bitbucket.org/prologic/circuits/ · Python · 110 lines · 66 code · 43 blank · 1 comment · 0 complexity · b9e9987d538954a6445776b44f72b7df MD5 · raw file

  1. #!/usr/bin/env python
  2. import pytest
  3. CONFIG = """\
  4. [test]
  5. foo = bar
  6. int = 1
  7. float = 1.0
  8. bool = 1
  9. """
  10. def pytest_funcarg__config(request):
  11. from circuits.app.config import Config, Load
  12. tmpdir = request.getfuncargvalue("tmpdir")
  13. path = tmpdir.ensure("test.ini")
  14. path.write(CONFIG)
  15. config = Config(str(path))
  16. config.start()
  17. config.fire(Load())
  18. assert pytest.wait_event(config, "load_success")
  19. return config
  20. def test_add_section(config):
  21. config.add_section("foo")
  22. assert config.has_section("foo")
  23. def test_has_section(config):
  24. assert config.has_section("test")
  25. def test_get(config):
  26. s = config.get("test", "foo")
  27. assert s == "bar"
  28. s = config.get("test", "asdf", "foobar")
  29. assert s == "foobar"
  30. def test_get_int(config):
  31. i = config.getint("test", "int")
  32. assert i == 1
  33. i = config.getint("test", "asdf", 1234)
  34. assert i == 1234
  35. def test_get_float(config):
  36. f = config.getfloat("test", "float")
  37. assert f == 1.0
  38. f = config.getfloat("test", "asdf", 1234.1234)
  39. assert f == 1234.1234
  40. def test_get_bool(config):
  41. b = config.getboolean("test", "bool")
  42. assert b
  43. b = config.getboolean("test", "asdf", False)
  44. assert not b
  45. def test_load(tmpdir):
  46. from circuits.app.config import Config, Load
  47. path = tmpdir.ensure("test.ini")
  48. path.write(CONFIG)
  49. config = Config(str(path))
  50. config.start()
  51. config.fire(Load())
  52. assert pytest.wait_event(config, "load_success")
  53. s = config.get("test", "foo")
  54. assert s == "bar"
  55. config.stop()
  56. def test_save(tmpdir):
  57. from circuits.app.config import Config, Save
  58. path = tmpdir.ensure("test.ini")
  59. config = Config(str(path))
  60. config.start()
  61. config.add_section("test")
  62. config.set("test", "foo", "bar")
  63. config.fire(Save())
  64. assert pytest.wait_event(config, "save_success")
  65. s = config.get("test", "foo")
  66. assert s == "bar"
  67. config.stop()