Projet de remplacement du "RPiPasserelle" d'Otec.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

test_variable_values.py 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #!/usr/bin/env python3
  2. import pytest
  3. from starlette.exceptions import HTTPException
  4. from starlette.testclient import TestClient
  5. from datetime import datetime, timedelta
  6. from pyheatpump.variables import app, get_variables, set_variables, ROUTES
  7. from pyheatpump.variable_values import app, get_variable_value, set_variable_value, ROUTES
  8. def test_get_type_address(set_test_db):
  9. c = TestClient(app)
  10. r = c.get('/A/10')
  11. assert r.status_code == 200
  12. d_resp = r.content.decode()
  13. assert float(d_resp) == 4.2
  14. try:
  15. r = c.get('/X/10')
  16. except HTTPException as e:
  17. assert e.status_code == 404
  18. try:
  19. r = c.get('/A/11')
  20. d_resp = r.content.decode()
  21. assert float(d_resp) == -0.6
  22. r = c.get('/A/12')
  23. d_resp = r.content.decode()
  24. assert float(d_resp) == 3200.0
  25. r = c.get('/A/14')
  26. d_resp = r.content.decode()
  27. assert float(d_resp) == -2353.6
  28. r = c.get('/A/10/{}'.format(
  29. (datetime.now() - timedelta(days=1)).isoformat()
  30. ))
  31. d_resp = r.content.decode()
  32. assert float(d_resp) == 4.2
  33. """
  34. r = c.get('/A/17/{}'.format(
  35. (datetime.now() - timedelta(days=1)).isoformat()
  36. ))
  37. d_resp = r.content.decode()
  38. assert float(d_resp) == -2953.6
  39. """
  40. r = c.get('/A/10/{}'.format(
  41. (datetime.now() - timedelta(days=2)).isoformat()
  42. ))
  43. d_resp = r.content.decode()
  44. assert float(d_resp) == 4.2
  45. r = c.get('/I/5010')
  46. d_resp = r.content.decode()
  47. assert int(d_resp) == 42
  48. r = c.get('/I/5011')
  49. d_resp = r.content.decode()
  50. assert int(d_resp) == 24
  51. r = c.get('/I/5010/{}'.format(
  52. (datetime.now() - timedelta(hours=1)).isoformat()
  53. ))
  54. d_resp = r.content.decode()
  55. assert int(d_resp) == 42
  56. r = c.get('/I/5010/{}'.format(
  57. (datetime.now() - timedelta(hours=2)).isoformat()
  58. ))
  59. d_resp = r.content.decode()
  60. assert int(d_resp) == 42
  61. r = c.get('/D/10')
  62. d_resp = r.content.decode()
  63. assert d_resp == 'True'
  64. r = c.get('/D/11')
  65. d_resp = r.content.decode()
  66. assert d_resp == 'True'
  67. r = c.get('/D/12')
  68. d_resp = r.content.decode()
  69. assert d_resp == 'False'
  70. except AssertionError as exc:
  71. print(d_resp)
  72. raise exc
  73. @pytest.mark.skip
  74. def test_set_(set_test_db):
  75. c = TestClient(app)
  76. r = c.post('/')
  77. assert r.status_code == 200