Projet de remplacement du "RPiPasserelle" d'Otec.
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

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