Commit Graph

60 Commits

Author SHA1 Message Date
jan iversen
1c56c39897 modbus config: count and slave_count can normally not be mixed. (#97902) 2023-08-18 13:10:13 +02:00
jan iversen
59d37f65d5 Correct modbus config validator: slave/swap (#97798) 2023-08-18 10:55:39 +02:00
jan iversen
fc463e5831 modbus: remove unused constants and get 100% coverage. (#97779) 2023-08-08 16:40:16 +02:00
Johannes Wagner
c4a5373976 Handle explicit Modbus NaN values (#90800)
Co-authored-by: jan iversen <jancasacondor@gmail.com>
2023-08-06 13:47:54 +02:00
jan iversen
48607d0586 Bump pymodbus to 3.3.1 (#94162) 2023-06-08 15:57:49 +02:00
jan iversen
cd23caff58 Correct modbus serial method parameter (#89738) 2023-03-15 12:27:45 +01:00
jan iversen
b11539fb04 Move connect method into a task (#88452)
Move connect() into a task.
2023-02-20 08:32:47 +01:00
Franck Nijhof
1e05697080 Enable Ruff B007 (#88356)
* Enable Ruff B007

* Adjust existing cases
2023-02-17 21:08:18 -05:00
Franck Nijhof
d3ed8de232 Update Ruff to v0.0.247 (#88210)
* Update Ruff to v0.0.247

* Fix new found violations
2023-02-15 16:46:03 -05:00
Franck Nijhof
ed79265843 Enable Ruff PT006 (#88165)
* Enable Ruff PT006

* Adjust existing cases

* Fix tests

* Remove unneeded parentheses
2023-02-15 14:09:50 +01:00
epenet
50cbabb2d8 Add type hints to integration tests (part 15) (#88006) 2023-02-15 10:00:49 +01:00
epenet
f75ac17554 Add type hints to integration tests (j-m) (#87704) 2023-02-08 19:06:59 +01:00
epenet
aa00114c2f Add return type to async tests without arguments (#87612) 2023-02-07 10:26:56 +01:00
Franck Nijhof
5e81d28116 Update black to 23.1.0 (#87188) 2023-02-02 18:35:24 +01:00
Franck Nijhof
ef800335fb Enable Ruff PT022 (#86792)
* Enable Ruff PT022

* Adjust found cases
2023-01-27 13:57:06 +01:00
jan iversen
ee85a23d19 Bring modbus back to 100% test coverage (#85972)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2023-01-16 15:44:11 +01:00
Joakim Plate
c576a68d33 Upgrade pytest-aiohttp (#82475)
* Upgrade pytest-aiohttp

* Make sure executors, tasks and timers are closed

Some test will trigger warnings on garbage collect, these warnings
spills over into next test.

Some test trigger tasks that raise errors on shutdown, these spill
over into next test.

This is to mimic older pytest-aiohttp and it's behaviour on test
cleanup.

Discussions on similar changes for pytest-aiohttp are here:
https://github.com/pytest-dev/pytest-asyncio/pull/309

* Replace loop with event_loop

* Make sure time is frozen for tests

* Make sure the ConditionType is not async

  /home-assistant/homeassistant/helpers/template.py:2082: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
    def wrapper(*args, **kwargs):
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

* Increase litejet press tests with a factor 10

The times are simulated anyway, and we can't stop the normal
event from occuring.

* Use async handlers for aiohttp

tests/components/motioneye/test_camera.py::test_get_still_image_from_camera
tests/components/motioneye/test_camera.py::test_get_still_image_from_camera
tests/components/motioneye/test_camera.py::test_get_stream_from_camera
tests/components/motioneye/test_camera.py::test_get_stream_from_camera
tests/components/motioneye/test_camera.py::test_camera_option_stream_url_template
tests/components/motioneye/test_camera.py::test_camera_option_stream_url_template
  /Users/joakim/src/hass/home-assistant/venv/lib/python3.9/site-packages/aiohttp/web_urldispatcher.py:189: DeprecationWarning: Bare functions are deprecated, use async ones
    warnings.warn(

* Switch to freezegun in modbus tests

The tests allowed clock to tick in between steps

* Make sure skybell object are fully mocked

Old tests would trigger attempts to post to could services:

```
DEBUG:aioskybell:HTTP post https://cloud.myskybell.com/api/v3/login/ Request with headers: {'content-type': 'application/json', 'accept': '*/*', 'x-skybell-app-id': 'd2b542c7-a7e4-4e1e-b77d-2b76911c7c46', 'x-skybell-client-id': '1f36a3c0-6dee-4997-a6db-4e1c67338e57'}
```

* Fix sorting that broke after rebase
2022-11-29 22:36:36 +01:00
Joakim Plate
8bd4125390 Test corrections noticed during pytest upgrade (#82579)
* Withing trigger a call to coordinator after init

* Stop discovery task on STOP event

* Stop dsmr connection task on STOP

* Use autospec in modem_serial tests

close on AioSerial is non async, and should not be mocked as a coroutine

* Make sure responder is specced correctly

tests/components/emulated_hue/test_init.py::test_setup_works
  /Users/joakim/src/hass/home-assistant/homeassistant/components/emulated_hue/__init__.py:119: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
    protocol.close()

* Don't assume Pymodbus is the only thing logging

* Use gather instead of wait

```
homeassistant/components/homeassistant/__init__.py:208: DeprecationWarning: The explicit passing of coroutine objects to asyncio.wait() is deprecated since Python 3.8, and scheduled for removal in Python 3.11.
```

* Increase wait time for automation tests

Assuming exit within 1 seconds is unreasonable on a potentially loaded
test machine.

* Avoid changing app state after startup
2022-11-23 20:53:28 +01:00
J. Nick Koston
077bd594eb Fix modbus test assuming repeat listeners always fire at 0 microseconds (#82320) 2022-11-18 14:23:42 +01:00
jan iversen
1a79118600 Fix modbus reload service (#68040)
* Fix modbus reload service.

* Please coverage.

* Resolve difference between local pytest and github.
2022-03-12 14:12:38 +02:00
jan iversen
e891df0ff3 Allow multi read of Modbus sensor (#67378) 2022-02-28 11:07:55 -08:00
jan iversen
6ec9c402b1 Remove generic data types INT, UINT, FLOAT in modbus (#67268) 2022-02-26 13:27:48 -08:00
jan iversen
8233278ccc Correct tests to use data_type in Modbus (#67246) 2022-02-25 11:37:52 -08:00
jan iversen
c6f5633e24 Fix modbus test_delay (#66993) 2022-02-25 08:06:25 -08:00
jan iversen
adc4c1e33f Secure ATTR_ and CONF_ use identical texts in Modbus (#66901) 2022-02-25 08:05:19 -08:00
jan iversen
9131fb39fe Allow "slave" parameter in modbus service calls (#66874)
* Allow "slave" parameter in modbus service calls.
2022-02-24 13:35:45 +01:00
jan iversen
8741ff0684 Diferentiate between attr_name and entity_id in Modbus tests (#66999) 2022-02-21 14:56:31 -08:00
jan iversen
4ca339c5b1 Set slave default to 0, as already documented in Modbus (#66921) 2022-02-20 11:56:38 +01:00
jan iversen
f2a5d92e61 Fix connect_fail test and modbus.py 100% coverage (#57894)
Co-authored-by: Joakim Sørensen <joasoe@gmail.com>
2021-10-20 15:22:24 -07:00
jan iversen
b3117ced75 Please pylint for modbus test (#58089) 2021-10-20 13:38:55 +02:00
jan iversen
f92fe38bbd Change warning to info when modbus is ready (#57953)
* Change warning to info.

* Make level info implicit.
2021-10-18 19:38:33 -07:00
jan iversen
4417ffb407 COnvert DATA_TYPE to enum. (#57699) 2021-10-15 07:09:59 +02:00
jan iversen
debcdc382f Late review comments. (#57654) 2021-10-14 10:22:21 +02:00
jan iversen
2734ae17f3 Modbus baseplatform.py and Validators.py 100% coverage (activate coverage) (#57546) 2021-10-13 11:51:51 -07:00
jan iversen
aaa62dadec Add service to stop/restart modbus (#55599)
* Add service to stop/restart modbus.

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-09-14 09:42:50 +02:00
jan iversen
1f997fcd58 Update pymodbus fixtures to use autospec (#55686) 2021-09-12 21:16:48 -07:00
jan iversen
16351ef3c2 Add shutdown test. (#55357) 2021-08-28 08:11:58 +02:00
jan iversen
7ac72ebf38 Add modbus name to log_error (#55336) 2021-08-27 09:26:57 -07:00
jan iversen
7df8d0c973 Check for duplicate host/port and integration name in modbus (#54664)
* Check for duplicate host/port and integration name.

* Change to use set().

* Please CI.

* Add basic tests.
2021-08-25 12:29:00 +02:00
jan iversen
bafbbc6563 Adjust modbus constants names (#54792)
* Follow up.
2021-08-18 12:56:54 +02:00
jan iversen
71b0f6d095 set common test entity name. (#54697) 2021-08-17 20:43:27 +02:00
jan iversen
2232915ea8 Add parameter to delay sending of requests in modbus (#54203) 2021-08-07 21:10:08 -07:00
jan iversen
7306503756 Calculate count automatically in modbus platforms (#53116) 2021-07-20 22:49:54 -07:00
jan iversen
78ef02f4d9 Allow pymodbus to reconnect in running system (not startup) (#53020)
Allow pymodbus to reconnect (not during startup).
2021-07-19 13:01:50 +02:00
jan iversen
2ecfd74fa4 Add more data_types to modbus (#52423)
* Add more data_types.

* Use new struct when writing temperature.
2021-07-12 07:58:45 +02:00
jan iversen
2a51587bc3 Remove reverse_order (replaced by generic swap) (#51665)
Remove reverse_order (replaced by generic swap).
2021-06-11 11:41:41 +02:00
jan iversen
59b5f94569 Add fix delay after send/request to allow RS485 adapter to switch in modbus (#51417) 2021-06-05 14:41:32 +02:00
jan iversen
b8afb7dcfe Check initial connect() worked in modbus (#51470)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-06-05 14:39:09 +02:00
jan iversen
5e067c2631 Allow unlimited scan_interval in modbus (#51471)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-06-04 18:06:44 +02:00
jan iversen
10dccc6734 Move pymodbus test fixtures to test_init (#51244) 2021-06-02 00:00:44 +02:00