home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
73.64k stars 30.78k forks source link

Rewrite sigfox unittest tests to pytest style test functions #40891

Closed MartinHjelmare closed 4 years ago

MartinHjelmare commented 4 years ago

Problem

The sigfox integration still contains unittest.TestCase based unit tests. We want to rewrite them to standalone pytest test functions.

Background

The Home Assistant core standard is to write tests as standalone pytest test functions. We still have some old tests that are based on unittest.TestCase. We want all these tests to be rewritten as pytest test functions.

Here are the docs for pytest: https://docs.pytest.org/en/stable/

Here's an example of an async pytest test function in Home Assistant core:

https://github.com/home-assistant/core/blob/4cce724473233d4fb32c08bd251940b1ce2ba570/tests/components/tradfri/test_light.py#L156-L176

There are many pytest fixtures to help writing the tests. See:

Here's an example of a pull request that rewrote a module of unittest.TestCase tests to standalone pytest test functions: https://github.com/home-assistant/core/pull/40749

Here's an example command to run a single test module with pytest inside tox on Python 3.8:

tox -e py38 -- --cov-report term-missing --cov=homeassistant.components.command_line.switch tests/components/command_line/test_switch.py

It will print coverage information with lines that are missing coverage.

Prerequisites

Task

frangiz commented 4 years ago

I can take a look into this one.