123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- import os
- import pytest
- from click.testing import CliRunner
- from unittest.mock import patch
- from tempfile import mkstemp
- import requests
-
- from pyheatpump.cli import cli
- from pyheatpump.config import config
- from pyheatpump.db import DB
- from pyheatpump.models import VariableValue
-
- @pytest.fixture(scope='module')
- def set_test_db():
- _, tmpdb = mkstemp(suffix='.db', dir=os.getcwd(), )
- print(f'Will store database in {tmpdb}')
- config['heatpump']['database'] = tmpdb
- if not DB.initialize(os.path.join(os.getcwd(), 'db/pyheatpump.test.sql')):
- sys.exit(-1)
-
- yield
-
- os.unlink(tmpdb)
-
- @pytest.fixture
- def runner():
- return CliRunner()
-
- @pytest.fixture
- def fetch(set_test_db, runner):
- try:
- runner.invoke(cli, 'fetch')
- except ValueError:
- pass
-
- @patch('pyheatpump.cli.requests')
- def test_supervise(requestsMock, fetch, runner):
- config['supervisor']['scheme'] = 'http'
- config['supervisor']['host'] = '127.0.0.1'
- config['supervisor']['port'] = '8080'
- config['supervisor']['post_path'] = '/post'
- config['supervisor']['get_path'] = '/get'
- config['heatpump']['mac_address'] = '00:11:22:33:44:55'
-
- data = {'macAddress':'001122334455'}
-
- try:
- r = runner.invoke(cli, 'supervise')
- except ValueError:
- pass
-
- requestsMock.post.assert_called()
- requestsMock.post.assert_called_with(
- url='http://127.0.0.1:8080/post',
- json=data
- )
-
- requestsMock.get.assert_called()
- requestsMock.get.assert_called_with(
- url=''.join('http://127.0.0.1:8080/get/001122334455'))
|