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_fetch.py 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import os
  2. import pytest
  3. from click.testing import CliRunner
  4. from unittest.mock import patch
  5. from tempfile import mkstemp
  6. from pyheatpump.cli import cli
  7. from pyheatpump.config import config
  8. from pyheatpump.db import DB
  9. from pyheatpump.models import VariableValue
  10. @pytest.fixture(scope='module')
  11. def set_test_db():
  12. _, tmpdb = mkstemp(suffix='.db', dir=os.getcwd(), )
  13. print(f'Will store database in {tmpdb}')
  14. config['heatpump']['database'] = tmpdb
  15. if not DB.initialize(os.path.join(os.getcwd(), 'db/pyheatpump.sql')):
  16. sys.exit(-1)
  17. if not DB.initialize(os.path.join(os.getcwd(), 'db/test_variables.sql')):
  18. sys.exit(-1)
  19. if not DB.initialize(os.path.join(os.getcwd(), 'db/test_variable_values.sql')):
  20. sys.exit(-1)
  21. yield
  22. os.unlink(tmpdb)
  23. @pytest.fixture
  24. def runner():
  25. return CliRunner()
  26. @patch('pyheatpump.models.VariableValue.insert')
  27. def test_mock_variable_value(VariableValueInsert, set_test_db, runner):
  28. res = runner.invoke(cli, 'fetch')
  29. try:
  30. assert res.exit_code == 0
  31. VariableValueInsert.assert_called()
  32. except Exception as e:
  33. print(res.output)
  34. raise e