nixpkgs/pkgs/servers/home-assistant/default.nix

1027 lines
26 KiB
Nix
Raw Normal View History

{ stdenv
, lib
, fetchFromGitHub
2021-12-11 19:59:08 +00:00
, fetchpatch
, python3
2021-12-11 19:59:08 +00:00
, substituteAll
, ffmpeg
, inetutils
, nixosTests
# Look up dependencies of specified components in component-packages.nix
2019-12-20 07:25:56 +00:00
, extraComponents ? [ ]
# Additional packages to add to propagatedBuildInputs
2018-01-14 21:26:52 +00:00
, extraPackages ? ps: []
# Override Python packages using
# self: super: { pkg = super.pkg.overridePythonAttrs (oldAttrs: { ... }); }
# Applied after defaultOverrides
, packageOverrides ? self: super: {}
# Skip pip install of required packages on startup
2018-01-14 21:26:52 +00:00
, skipPip ? true }:
let
defaultOverrides = [
2021-11-01 14:04:10 +00:00
# aiounify 29 breaks integration tests
(self: super: {
aiounifi = super.aiounifi.overridePythonAttrs (oldAttrs: rec {
version = "28";
src = fetchFromGitHub {
owner = "Kane610";
repo = "aiounifi";
rev = "v${version}";
sha256 = "1r86pk80sa1la2s7c6v9svh5cpkci6jcw1xziz0h09jdvv5j5iff";
};
});
})
2021-09-10 01:59:36 +00:00
# Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt
(mkOverride "python-slugify" "4.0.1" "69a517766e00c1268e5bbfc0d010a0a8508de0b18d30ad5a1ff357f8ae724270")
2021-12-11 19:59:08 +00:00
(self: super: {
httpcore = super.httpcore.overridePythonAttrs (oldAttrs: rec {
version = "0.14.3";
src = fetchFromGitHub {
owner = "encode";
repo = "httpcore";
rev = version;
sha256 = "sha256-jPsbMhY1lWKBXlh6hsX6DGKXi/g7VQSU00tF6H7qkOo=";
};
propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [ python3.pkgs.certifi ];
doCheck = false;
});
})
(self: super: {
httpx = super.httpx.overridePythonAttrs (oldAttrs: rec {
version = "0.21.1";
src = fetchFromGitHub {
owner = "encode";
repo = "httpx";
rev = version;
sha256 = "sha256-ayhLP+1hPWAx2ds227CKp5cebVkD5B2Z59L+3dzdINc=";
};
doCheck = false;
});
})
(self: super: {
pytest-httpx = super.pytest-httpx.overridePythonAttrs (oldAttrs: rec {
version = "0.15.0";
src = fetchFromGitHub {
owner = "Colin-bin";
repo = "pytest_httpx";
rev = "v${version}";
sha256 = "08dxvjkxlnam3r0yp17495d1vksyawzzkpykacjql1gi6hqlfrwg";
};
});
})
(self: super: {
respx = super.respx.overridePythonAttrs (oldAttrs: rec {
version = "0.19.0";
src = fetchFromGitHub {
owner = "lundberg";
repo = "respx";
rev = version;
sha256 = "sha256-xiAt42kc1+rro99KMwzYKi3XC+wxYVqOY11tM+M/uV8=";
};
});
})
(self: super: {
envoy-reader = super.envoy-reader.overridePythonAttrs (oldAttrs: rec {
patches = [
# Support for later httpx, https://github.com/jesserizzo/envoy_reader/pull/82
(fetchpatch {
name = "support-later-httpx.patch";
url = "https://github.com/jesserizzo/envoy_reader/commit/6019a89419fe9c830ba839be7d39ec54725268b0.patch";
sha256 = "17vsrx13rskvh8swvjisb2dk6x1jdbjcm8ikkpidia35pa24h272";
})
];
});
})
(self: super: {
sanic = super.sanic.overridePythonAttrs (oldAttrs: rec {
version = "21.9.3";
src = fetchFromGitHub {
owner = "sanic-org";
repo = "sanic";
rev = "v${version}";
sha256 = "0m18jdw1mvf7jhpnrxhm96p24pxvv0h9m71a8c7sqqkwnnpa3p5i";
};
disabledTests = oldAttrs.disabledTests ++ [
"test_redirect"
"test_chained_redirect"
"test_unix_connection"
];
});
})
(self: super: {
huawei-lte-api = super.huawei-lte-api.overridePythonAttrs (oldAttrs: rec {
version = "1.4.18";
src = fetchFromGitHub {
owner = "Salamek";
repo = "huawei-lte-api";
rev = version;
sha256 = "1qaqxmh03j10wa9wqbwgc5r3ays8wfr7bldvsm45fycr3qfyn5fg";
};
propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [ python3.pkgs.dicttoxml ];
});
})
# Pinned due to API changes in iaqualink>=2.0, remove after
# https://github.com/home-assistant/core/pull/48137 was merged
(self: super: {
iaqualink = super.iaqualink.overridePythonAttrs (oldAttrs: rec {
version = "0.3.90";
src = fetchFromGitHub {
owner = "flz";
repo = "iaqualink-py";
rev = "v${version}";
sha256 = "0c8ckbbr1n8gx5k63ymgyfkbz3d0rbdvghg8fqdvbg4nrigrs5v0";
};
checkInputs = oldAttrs.checkInputs ++ [ python3.pkgs.asynctest ];
});
})
# Pinned due to API changes in influxdb-client>1.21.0
(self: super: {
influxdb-client = super.influxdb-client.overridePythonAttrs (oldAttrs: rec {
version = "1.21.0";
src = fetchFromGitHub {
owner = "influxdata";
repo = "influxdb-client-python";
rev = "v${version}";
sha256 = "081pwd3aa7kbgxqcl1hfi2ny4iapnxkcp9ypsfslr69d0khvfc4s";
};
});
})
2021-12-11 19:59:08 +00:00
(mkOverride "jinja2" "3.0.3" "1mvwr02s86zck5wsmd9wjxxb9iaqr17hdi5xza9vkwv8rmrv46v1")
# Pinned due to API changes in pyruckus>0.12
(self: super: {
pyruckus = super.pyruckus.overridePythonAttrs (oldAttrs: rec {
version = "0.12";
src = fetchFromGitHub {
owner = "gabe565";
repo = "pyruckus";
rev = version;
sha256 = "0ykv6r6blbj3fg9fplk9i7xclkv5d93rwvx0fm5s8ms9f2s9ih8z";
};
});
})
# Pinned due to API changes in eebrightbox>=0.0.5
(self: super: {
eebrightbox = super.eebrightbox.overridePythonAttrs (oldAttrs: rec {
version = "0.0.4";
src = fetchFromGitHub {
owner = "krygal";
repo = "eebrightbox";
rev = version;
sha256 = "0d8mmpwgrd7gymw5263r1v2wjv6dx6w6pq13d62fkfm4h2hya4a4";
};
});
})
2021-09-10 01:59:36 +00:00
# Pinned due to API changes in 0.1.0
(mkOverride "poolsense" "0.0.8" "09y4fq0gdvgkfsykpxnvmfv92dpbknnq5v82spz43ak6hjnhgcyp")
2021-12-11 19:59:08 +00:00
# Pinned due to API changes in 0.4.0
(self: super: {
vilfo-api-client = super.vilfo-api-client.overridePythonAttrs (oldAttrs: rec {
version = "0.3.3";
src = fetchFromGitHub {
owner = "ManneW";
repo = "vilfo-api-client-python";
rev = "v$version}";
sha256 = "1gy5gpsg99rcm1cc3m30232za00r9i46sp74zpd12p3vzz1wyyqf";
};
});
})
# Pinned due to API changes ~1.0
(self: super: {
vultr = super.vultr.overridePythonAttrs (oldAttrs: rec {
version = "0.1.2";
src = fetchFromGitHub {
owner = "spry-group";
repo = "python-vultr";
rev = "v${version}";
sha256 = "1qjvvr2v9gfnwskdl0ayazpcmiyw9zlgnijnhgq9mcri5gq9jw5h";
};
});
})
2021-12-24 22:49:19 +00:00
# Remove with 2021.12.6 as the requirement will be 1.1.16 (at least)
(self: super: {
yalexs = super.yalexs.overridePythonAttrs (oldAttrs: rec {
version = "1.1.13";
src = fetchFromGitHub {
owner = "bdraco";
repo = "yalexs";
rev = "v${version}";
sha256 = "sha256-lnx8+VyDyO7Wg+QW+CC0FUg77Ndfjar6PLsDYwEpaCQ=";
};
});
})
# home-assistant-frontend does not exist in python3.pkgs
(self: super: {
home-assistant-frontend = self.callPackage ./frontend.nix { };
})
];
mkOverride = attrname: version: sha256:
self: super: {
${attrname} = super.${attrname}.overridePythonAttrs (oldAttrs: {
inherit version;
2018-05-11 17:39:37 +00:00
src = oldAttrs.src.override {
inherit version sha256;
2018-05-11 17:39:37 +00:00
};
});
2018-01-14 21:26:52 +00:00
};
py = python3.override {
# Put packageOverrides at the start so they are applied after defaultOverrides
packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) ([ packageOverrides ] ++ defaultOverrides);
2018-01-14 21:26:52 +00:00
};
componentPackages = import ./component-packages.nix;
availableComponents = builtins.attrNames componentPackages.components;
getPackages = component: builtins.getAttr component componentPackages.components;
componentBuildInputs = lib.concatMap (component: getPackages component py.pkgs) extraComponents;
2018-01-14 21:26:52 +00:00
# Ensure that we are using a consistent package set
extraBuildInputs = extraPackages py.pkgs;
# Don't forget to run parse-requirements.py after updating
2022-01-05 13:27:12 +00:00
hassVersion = "2021.12.8";
2018-01-14 21:26:52 +00:00
in with py.pkgs; buildPythonApplication rec {
pname = "homeassistant";
version = assert (componentPackages.version == hassVersion); hassVersion;
2018-01-14 21:26:52 +00:00
2020-10-07 18:28:25 +00:00
# check REQUIRED_PYTHON_VER in homeassistant/const.py
2021-03-03 21:21:01 +00:00
disabled = pythonOlder "3.8";
2020-02-26 15:51:25 +00:00
# don't try and fail to strip 6600+ python files, it takes minutes!
dontStrip = true;
2018-01-14 21:26:52 +00:00
# PyPI tarball is missing tests/ directory
src = fetchFromGitHub {
owner = "home-assistant";
2020-05-20 21:41:42 +00:00
repo = "core";
2018-01-14 21:26:52 +00:00
rev = version;
2022-01-05 13:27:12 +00:00
hash = "sha256:HxSEXaqNHh2hSr1fmu3xpC212PXhzvnD4CwR1Ulw9ok=";
2018-01-14 21:26:52 +00:00
};
2020-11-04 11:52:54 +00:00
# leave this in, so users don't have to constantly update their downstream patch handling
patches = [
2021-12-11 19:59:08 +00:00
(substituteAll {
src = ./patches/ffmpeg-path.patch;
ffmpeg = "${lib.getBin ffmpeg}/bin/ffmpeg";
})
./patches/tests-ignore-OSErrors-in-hass-fixture.patch
];
2020-11-04 11:52:54 +00:00
2020-08-18 08:07:27 +00:00
postPatch = ''
substituteInPlace setup.py \
2021-12-11 19:59:08 +00:00
--replace "aiohttp==3.8.1" "aiohttp" \
--replace "async_timeout==4.0.0" "async_timeout" \
2021-04-07 18:34:08 +00:00
--replace "bcrypt==3.1.7" "bcrypt" \
2021-12-11 19:59:08 +00:00
--replace "cryptography==35.0.0" "cryptography" \
--replace "httpx==0.21.0" "httpx" \
2020-12-11 13:30:12 +00:00
--replace "pip>=8.0.3,<20.3" "pip" \
2022-01-03 22:15:52 +00:00
--replace "PyJWT==2.1.0" "PyJWT" \
2021-11-03 21:28:03 +00:00
--replace "pyyaml==6.0" "pyyaml" \
2021-11-26 11:22:38 +00:00
--replace "yarl==1.6.3" "yarl"
2020-10-07 18:28:25 +00:00
substituteInPlace tests/test_config.py --replace '"/usr"' '"/build/media"'
2020-08-18 08:07:27 +00:00
'';
2018-01-14 21:26:52 +00:00
propagatedBuildInputs = [
# Only packages required in setup.py
aiohttp
astral
async-timeout
2021-12-11 19:59:08 +00:00
atomicwrites
attrs
2021-02-05 13:48:53 +00:00
awesomeversion
bcrypt
certifi
ciso8601
cryptography
httpx
2021-12-28 15:43:50 +00:00
ifaddr
jinja2
pip
pyjwt
python-slugify
pytz
pyyaml
requests
ruamel-yaml
voluptuous
voluptuous-serialize
yarl
# Not in setup.py, but used in homeassistant/util/package.py
setuptools
2021-06-03 01:43:31 +00:00
] ++ lib.optionals (pythonOlder "3.9") [
backports-zoneinfo
] ++ componentBuildInputs ++ extraBuildInputs;
2018-01-14 21:26:52 +00:00
makeWrapperArgs = lib.optional skipPip "--add-flags --skip-pip";
2020-05-06 06:27:19 +00:00
# upstream only tests on Linux, so do we.
doCheck = stdenv.isLinux;
2018-01-14 21:26:52 +00:00
checkInputs = [
# test infrastructure (selectively from requirement_test.txt)
2021-11-03 21:28:03 +00:00
freezegun
pytest-aiohttp
2021-11-03 21:28:03 +00:00
pytest-freezegun
pytest-mock
pytest-rerunfailures
2021-11-03 21:28:03 +00:00
pytest-socket
pytest-xdist
pytestCheckHook
requests-mock
2021-09-10 01:59:36 +00:00
stdlib-list
jsonpickle
respx
# required by tests/auth/mfa_modules
pyotp
] ++ lib.concatMap (component: getPackages component py.pkgs) componentTests;
2019-12-20 07:25:56 +00:00
# We can reasonably test components that don't communicate with any network
# services. Before adding new components to this list make sure we have all
# its dependencies packaged and listed in ./component-packages.nix.
componentTests = [
"abode"
"accuweather"
"acmeda"
"adguard"
"advantage_air"
2021-06-13 22:52:40 +00:00
"aemet"
"agent_dvr"
"air_quality"
2021-04-01 19:16:42 +00:00
"airly"
"airnow"
2021-10-18 07:33:09 +00:00
"airthings"
"airvisual"
"alarm_control_panel"
"alarmdecoder"
"alert"
"alexa"
"almond"
"ambiclimate"
"ambient_station"
2021-04-07 18:34:08 +00:00
"analytics"
2021-05-09 21:01:02 +00:00
"androidtv"
"apache_kafka"
"api"
"apple_tv"
"apprise"
2021-06-13 23:11:25 +00:00
"aprs"
"arcam_fmj"
"arlo"
"asuswrt"
2021-06-13 22:04:53 +00:00
"atag"
"august"
"aurora"
"auth"
"automation"
"awair"
"aws"
2021-04-03 13:15:49 +00:00
"axis"
"azure_devops"
"azure_event_hub"
"bayesian"
"binary_sensor"
"blackbird"
2021-06-15 17:44:00 +00:00
"blebox"
2021-06-15 17:59:58 +00:00
"blink"
"blueprint"
"bluetooth_le_tracker"
"bmw_connected_drive"
2021-06-15 21:57:18 +00:00
"bond"
2021-06-03 01:43:31 +00:00
"bosch_shc"
"braviatv"
"broadlink"
"brother"
"bsblan"
"buienradar"
"caldav"
"calendar"
"camera"
2021-05-15 22:53:40 +00:00
"canary"
2021-04-07 13:30:34 +00:00
"cast"
"cert_expiry"
2021-05-07 14:04:19 +00:00
"climacell"
"climate"
"cloud"
"cloudflare"
"color_extractor"
"comfoconnect"
"command_line"
"compensation"
"config"
"configurator"
"control4"
"conversation"
"coolmaster"
"coronavirus"
2021-02-03 17:57:09 +00:00
"counter"
"cover"
"daikin"
"darksky"
"datadog"
2021-03-22 23:12:47 +00:00
"deconz"
"default_config"
"demo"
2021-05-07 16:57:23 +00:00
"denonavr"
"derivative"
"device_automation"
"device_sun_light_trigger"
"device_tracker"
"devolo_home_control"
"dexcom"
2021-02-03 17:57:09 +00:00
"dhcp"
"dialogflow"
2021-06-17 10:34:28 +00:00
"directv"
"discovery"
"doorbird"
2021-04-21 21:55:09 +00:00
"dsmr"
"dte_energy_bridge"
"duckdns"
2021-06-17 18:14:21 +00:00
"dunehd"
"eafm"
2021-06-17 22:24:32 +00:00
"ecobee"
2021-04-11 14:24:21 +00:00
"econet"
2021-10-08 21:57:20 +00:00
"efergy"
2021-06-17 17:57:43 +00:00
"elgato"
2021-09-27 06:39:28 +00:00
"elkm1"
"emonitor"
"emulated_hue"
"emulated_kasa"
"emulated_roku"
2021-06-18 16:00:34 +00:00
"enocean"
"enphase_envoy"
2021-06-18 14:03:41 +00:00
"epson"
"esphome"
"everlights"
"ezviz"
2021-03-03 21:21:01 +00:00
"faa_delays"
"facebook"
"facebox"
"fail2ban"
"fan"
"feedreader"
"ffmpeg"
"fido"
"file"
"filesize"
"filter"
"fireservicerota"
"firmata"
"fjaraskupan"
"flick_electric"
2021-09-25 12:16:19 +00:00
"flipr"
"flo"
"flume"
"flunearyou"
"flux"
"folder"
"folder_watcher"
2021-06-15 11:05:03 +00:00
"foobot"
2021-06-15 11:16:31 +00:00
"foscam"
2021-04-03 16:23:36 +00:00
"freebox"
"freedns"
"fritz"
"fritzbox"
"fritzbox_callmonitor"
"frontend"
2021-06-15 11:37:53 +00:00
"garages_amsterdam"
"gdacs"
"generic"
"generic_thermostat"
"geo_json_events"
"geo_location"
2021-06-14 10:20:28 +00:00
"geo_rss_events"
"geofency"
2021-06-14 10:20:28 +00:00
"geonetnz_quakes"
"geonetnz_volcano"
2021-05-28 07:21:51 +00:00
"gios"
2021-12-11 19:59:08 +00:00
# updated to incompatible version and overriding is annoying because of async_timeout<4 pin
# "glances"
"goalzero"
2021-06-03 01:43:31 +00:00
"gogogate2"
"google"
"google_assistant"
"google_domains"
"google_pubsub"
"google_translate"
"google_travel_time"
"google_wifi"
"gpslogger"
"graphite"
2021-06-15 12:15:20 +00:00
"gree"
"group"
"growatt_server"
"guardian"
"habitica"
"hangouts"
"harmony"
"hassio"
"hddtemp"
2021-06-19 15:34:52 +00:00
"heos"
"here_travel_time"
"hisense_aehw4a1"
"history"
"history_stats"
2021-06-19 16:13:04 +00:00
"hive"
"hlk_sw16"
"home_connect"
2021-04-07 18:34:08 +00:00
"home_plus_control"
"homeassistant"
2021-08-06 20:53:16 +00:00
# disable homekit tests because they fail in the network component
#"homekit"
2021-03-03 21:21:01 +00:00
"homekit_controller"
"homematic"
"homematicip_cloud"
"honeywell"
"html5"
"http"
"huawei_lte"
"hue"
"huisbaasje"
"humidifier"
"hunterdouglas_powerview"
"hvv_departures"
2021-04-21 21:19:47 +00:00
"hyperion"
"ialarm"
2021-03-21 00:08:49 +00:00
"iaqualink"
"icloud"
"ifttt"
"ign_sismologia"
"image"
"image_processing"
"imap_email_content"
"influxdb"
"input_boolean"
"input_datetime"
"input_number"
"input_select"
"input_text"
"insteon"
"integration"
"intent"
"intent_script"
"ios"
2021-06-20 09:33:01 +00:00
"ipma"
"ipp"
"iqvia"
"islamic_prayer_times"
2021-06-23 17:42:14 +00:00
"isy994"
2021-06-24 16:17:48 +00:00
"izone"
"jewish_calendar"
"juicenet"
"keenetic_ndms2"
"kira"
2021-03-03 21:21:01 +00:00
"kmtronic"
2021-04-23 20:34:46 +00:00
"knx"
"kodi"
"konnected"
2021-06-25 18:55:09 +00:00
"kraken"
2021-06-12 09:32:36 +00:00
"kulersky"
"lastfm"
"lcn"
"light"
2021-04-07 18:34:08 +00:00
"litterrobot"
"local_file"
"local_ip"
"locative"
"lock"
"logbook"
"logentries"
"logger"
"london_air"
"lovelace"
"luftdaten"
"lutron_caseta"
"lyric"
"mailbox"
"manual"
"manual_mqtt"
2021-09-21 19:39:49 +00:00
"maxcube"
2021-03-03 21:21:01 +00:00
"mazda"
"media_player"
"media_source"
2021-11-28 13:15:05 +00:00
"melcloud"
"meraki"
"met"
"met_eireann"
"meteoclimatic"
2021-06-18 14:13:42 +00:00
"mhz19"
"microsoft_face"
"microsoft_face_detect"
"microsoft_face_identify"
"mikrotik"
2021-06-20 09:46:35 +00:00
"mill"
"min_max"
"minecraft_server"
"minio"
"mobile_app"
"modbus"
"mold_indicator"
"moon"
"motion_blinds"
2021-05-06 16:56:57 +00:00
"motioneye"
"mqtt"
"mqtt_eventstream"
"mqtt_json"
"mqtt_room"
"mqtt_statestream"
2021-03-03 21:21:01 +00:00
"mullvad"
2021-05-06 19:09:31 +00:00
"mutesync"
"my"
"myq"
"mysensors"
"mythicbeastsdns"
2021-06-12 09:58:54 +00:00
"nam"
"namecheapdns"
"neato"
"ness_alarm"
# python-nest has an unfree license, this prevents builds through ofborg
# "nest"
"netatmo"
2021-04-13 01:06:39 +00:00
"nexia"
"nightscout"
"no_ip"
"notify"
2021-03-20 22:49:26 +00:00
"notion"
2021-06-14 10:20:28 +00:00
"nsw_rural_fire_service_feed"
"nuki"
"number"
"nws"
2021-04-22 21:03:54 +00:00
"nx584"
"octoprint"
2021-04-09 16:49:21 +00:00
"omnilogic"
"onboarding"
"ondilo_ico"
"openalpr_cloud"
"openalpr_local"
2021-04-22 19:55:05 +00:00
"openerz"
"openhardwaremonitor"
"opentherm_gw"
"openuv"
"openweathermap"
"opnsense"
"ovo_energy"
"owntracks"
"ozw"
"p1_monitor"
"panel_custom"
"panel_iframe"
"persistent_notification"
"person"
"philips_js"
"pi_hole"
"picnic"
"ping"
2021-03-03 21:21:01 +00:00
"plaato"
"plant"
"plex"
2021-05-06 22:16:44 +00:00
"plugwise"
2021-06-30 21:46:22 +00:00
"point"
"poolsense"
"profiler"
"prometheus"
"proximity"
"push"
"pushbullet"
"pvpc_hourly_pricing"
"python_script"
"qld_bushfire"
"rachio"
"radarr"
"rainmachine"
"random"
"recollect_waste"
"recorder"
"reddit"
"remote"
2021-09-25 08:13:42 +00:00
"renault"
"rest"
"rest_command"
2021-06-25 12:53:27 +00:00
"rflink"
2021-06-29 20:41:32 +00:00
"rfxtrx"
"ring"
"risco"
2021-03-03 21:21:01 +00:00
"rituals_perfume_genie"
"rmvtransport"
"roku"
"roomba"
2021-05-27 22:07:09 +00:00
"roon"
"rss_feed_template"
"ruckus_unleashed"
"safe_mode"
"samsungtv"
"scene"
2021-04-07 18:34:08 +00:00
"screenlogic"
"script"
"search"
"season"
"sense"
"sensor"
"sentry"
"sharkiq"
"shell_command"
"shelly"
"shopping_list"
2021-06-25 18:34:41 +00:00
"sia"
"sigfox"
"sighthound"
"simplisafe"
"simulated"
"slack"
2021-04-11 17:02:46 +00:00
"sleepiq"
2021-03-22 23:41:26 +00:00
"sma"
"smappee"
"smart_meter_texas"
"smarthab"
"smartthings"
2021-03-03 21:21:01 +00:00
"smarttub"
"smhi"
"smtp"
"snips"
2021-03-24 22:49:55 +00:00
"solaredge"
"soma"
"somfy"
"somfy_mylink"
2021-06-29 09:47:06 +00:00
"sonarr"
2021-06-28 21:47:00 +00:00
"songpal"
2021-07-08 00:38:18 +00:00
# disable sonos components test because they rely on ssdp, which doesn't work in our sandbox
# "sonos"
"soundtouch"
"spaceapi"
2021-09-25 21:56:04 +00:00
"spc"
"speedtestdotnet"
2021-06-13 21:48:33 +00:00
"spider"
2021-04-01 13:42:31 +00:00
"spotify"
"sql"
"squeezebox"
"srp_energy"
"ssdp"
"starline"
"startca"
"statistics"
"statsd"
"stream"
"stt"
2021-03-22 23:55:41 +00:00
"subaru"
"sun"
"surepetcare"
"switch"
"switcher_kis"
"syncthing"
"syncthru"
"synology_dsm"
"system_health"
"system_log"
"tado"
"tag"
"tasmota"
"tcp"
"telegram"
"tellduslive"
"template"
"threshold"
2021-06-15 13:08:24 +00:00
"tibber"
"tile"
"time_date"
2021-02-03 17:57:09 +00:00
"timer"
"tod"
"tomato"
"toon"
"totalconnect"
"tplink"
2021-11-11 09:07:37 +00:00
"traccar"
2021-04-07 18:34:08 +00:00
"trace"
2021-06-26 12:41:07 +00:00
"tradfri"
"transmission"
"transport_nsw"
"trend"
"tts"
"tuya"
"twentemilieu"
"twilio"
"twinkly"
"twitch"
"uk_transport"
"unifi"
"unifi_direct"
"universal"
2021-06-26 12:13:50 +00:00
"upb"
2021-06-27 11:49:02 +00:00
"upcloud"
"updater"
2021-07-08 00:38:18 +00:00
# disabled, because it tries to join a multicast group and fails to find a usable network interface
# "upnp"
"uptime"
"uptimerobot"
"usgs_earthquakes_feed"
"utility_meter"
"uvc"
"vacuum"
"velbus"
2021-12-11 19:59:08 +00:00
# disabled, because it includes onewire component tests, for which we lack p1wire dependency
# "venstar"
"vera"
2021-04-01 08:57:50 +00:00
"verisure"
"version"
2021-05-13 22:07:31 +00:00
"vesync"
2021-06-25 17:52:04 +00:00
"vilfo"
"vizio"
"vlc_telnet"
"voicerss"
"volumio"
2021-12-11 19:59:08 +00:00
"vultr"
"wake_on_lan"
"wallbox"
"water_heater"
"waze_travel_time"
"weather"
2021-02-03 17:57:09 +00:00
"webhook"
"webostv"
"websocket_api"
2021-03-20 07:59:10 +00:00
"wemo"
"wiffi"
"wilight"
"wled"
"workday"
"worldclock"
"wsdot"
2021-06-14 18:49:56 +00:00
"xbox"
"xiaomi"
"xiaomi_aqara"
2021-12-11 19:59:08 +00:00
# disabled, because we require cryptography>=35.0 for the miio package
# "xiaomi_miio"
"yamaha"
"yandex_transport"
"yandextts"
2021-04-13 11:17:51 +00:00
"yeelight"
2021-09-06 22:02:36 +00:00
"youless"
2021-07-08 00:38:18 +00:00
# disabled, because it tries to join a multicast group and fails to find a usable network interface
# "zeroconf"
"zerproc"
"zha"
"zodiac"
"zone"
"zwave"
2021-04-22 16:12:20 +00:00
"zwave_js"
2021-05-13 21:52:56 +00:00
] ++ lib.optionals (builtins.any (s: s == stdenv.hostPlatform.system) debugpy.meta.platforms) [
"debugpy"
];
pytestFlagsArray = [
# parallelize test run
"--numprocesses $NIX_BUILD_CORES"
# assign tests grouped by file to workers
"--dist loadfile"
# retry racy tests that end in "RuntimeError: Event loop is closed"
"--reruns 3"
"--only-rerun RuntimeError"
# enable full variable printing on error
"--showlocals"
# here_travel_time/test_sensor.py: Tries to access HERE API: herepy.error.HEREError: Error occured on __get
"--deselect tests/components/here_travel_time/test_sensor.py::test_invalid_credentials"
2021-04-07 18:34:08 +00:00
# screenlogic/test_config_flow.py: Tries to send out UDP broadcasts
"--deselect tests/components/screenlogic/test_config_flow.py::test_form_cannot_connect"
home-assistant: disable adbode/test_camera.py::test_camera_off test ``` ___________________________ test_camera_off[pyloop] ____________________________ [gw5] linux -- Python 3.8.9 /nix/store/4s0h5aawbap3xhldxhcijvl26751qrjr-python3-3.8.9/bin/python3.8 hass = <homeassistant.core.HomeAssistant object at 0x7fff4433b580> async def test_camera_off(hass): """Test the camera turn off service.""" await setup_platform(hass, CAMERA_DOMAIN) with patch("abodepy.AbodeCamera.privacy_mode") as mock_capture: > await hass.services.async_call( CAMERA_DOMAIN, "turn_off", {ATTR_ENTITY_ID: "camera.test_cam"}, blocking=True, ) hass = <homeassistant.core.HomeAssistant object at 0x7fff4433b580> mock_capture = <MagicMock name='privacy_mode' id='140734337787888'> tests/components/abode/test_camera.py:64: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <homeassistant.core.ServiceRegistry object at 0x7fff442c1cd0> domain = 'camera', service = 'turn_off' service_data = {'entity_id': 'camera.test_cam'}, blocking = True context = Context(user_id=None, parent_id=None, id='20e520e6917f171d80558dcc4b10b219') limit = 10, target = None async def async_call( self, domain: str, service: str, service_data: dict | None = None, blocking: bool = False, context: Context | None = None, limit: float | None = SERVICE_CALL_LIMIT, target: dict | None = None, ) -> bool | None: """ Call a service. Specify blocking=True to wait until service is executed. Waits a maximum of limit, which may be None for no timeout. If blocking = True, will return boolean if service executed successfully within limit. This method will fire an event to indicate the service has been called. Because the service is sent as an event you are not allowed to use the keys ATTR_DOMAIN and ATTR_SERVICE in your service_data. This method is a coroutine. """ domain = domain.lower() service = service.lower() context = context or Context() service_data = service_data or {} try: handler = self._services[domain][service] except KeyError: > raise ServiceNotFound(domain, service) from None E homeassistant.exceptions.ServiceNotFound: Unable to find service camera.turn_off blocking = True context = Context(user_id=None, parent_id=None, id='20e520e6917f171d80558dcc4b10b219') domain = 'camera' limit = 10 self = <homeassistant.core.ServiceRegistry object at 0x7fff442c1cd0> service = 'turn_off' service_data = {'entity_id': 'camera.test_cam'} target = None homeassistant/core.py:1438: ServiceNotFound ---------------------------- Captured stderr setup ----------------------------- DEBUG:asyncio:Using selector: EpollSelector ------------------------------ Captured log setup ------------------------------ DEBUG asyncio:selector_events.py:59 Using selector: EpollSelector ----------------------------- Captured stderr call ----------------------------- INFO:homeassistant.loader:Loaded abode from homeassistant.components.abode INFO:homeassistant.setup:Setting up abode INFO:homeassistant.setup:Setup of domain abode took 0.0 seconds DEBUG:abodepy:Cache found at: /build/source/tests/testing_config/abodepy_cache.pickle WARNING:abodepy.utils:Empty pickle file: /build/source/tests/testing_config/abodepy_cache.pickle DEBUG:abodepy:Removing invalid cache file: /build/source/tests/testing_config/abodepy_cache.pickle ERROR:homeassistant.config_entries:Error setting up entry Mock Title for abode Traceback (most recent call last): File "/build/source/homeassistant/config_entries.py", line 293, in async_setup result = await component.async_setup_entry(hass, self) # type: ignore File "/build/source/homeassistant/components/abode/__init__.py", line 125, in async_setup_entry abode = await hass.async_add_executor_job( File "/nix/store/4s0h5aawbap3xhldxhcijvl26751qrjr-python3-3.8.9/lib/python3.8/concurrent/futures/thread.py", line 57, in run result = self.fn(*self.args, **self.kwargs) File "/nix/store/6s0sdvk0crvcfyv7w33yc7w4bkzl0y1w-python3.8-abodepy-1.2.1/lib/python3.8/site-packages/abodepy/__init__.py", line 85, in __init__ self._load_cache() File "/nix/store/6s0sdvk0crvcfyv7w33yc7w4bkzl0y1w-python3.8-abodepy-1.2.1/lib/python3.8/site-packages/abodepy/__init__.py", line 497, in _load_cache os.remove(self._cache_path) FileNotFoundError: [Errno 2] No such file or directory: '/build/source/tests/testing_config/abodepy_cache.pickle' DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=abode> ```
2021-06-20 18:11:45 +00:00
# abode/test_camera.py: Race condition in pickle file creationg
"--deselect tests/components/abode/test_camera.py::test_camera_off"
# asuswrt/test_config_flow.py: Sandbox network limitations, fails with unexpected error
"--deselect tests/components/asuswrt/test_config_flow.py::test_on_connect_failed"
# shelly/test_config_flow.py: Tries to join multicast group
"--deselect tests/components/shelly/test_config_flow.py::test_form"
"--deselect tests/components/shelly/test_config_flow.py::test_title_without_name"
"--deselect tests/components/shelly/test_config_flow.py::test_form_auth"
"--deselect tests/components/shelly/test_config_flow.py::test_form_errors_test_connection"
"--deselect tests/components/shelly/test_config_flow.py::test_user_setup_ignored_device"
"--deselect tests/components/shelly/test_config_flow.py::test_form_auth_errors_test_connection"
"--deselect tests/components/shelly/test_config_flow.py::test_form_auth_errors_test_connection"
"--deselect tests/components/shelly/test_config_flow.py::test_form_auth_errors_test_connection"
"--deselect tests/components/shelly/test_config_flow.py::test_zeroconf"
"--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_sleeping_device"
"--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_sleeping_device_error"
"--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_sleeping_device_error"
"--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_require_auth"
home-assistant: disable flaky test in prometheus component ______________________________ test_view[pyloop] _______________________________ [gw49] linux -- Python 3.8.9 /nix/store/7i305r9i4rsb1hmqwkdmphjf430niq3l-python3-3.8.9/bin/python3.8 hass = <homeassistant.core.HomeAssistant object at 0xffff56d041c0> hass_client = <function hass_client.<locals>.auth_client at 0xffff56a11ca0> async def test_view(hass, hass_client): """Test prometheus metrics view.""" client = await prometheus_client(hass, hass_client) resp = await client.get(prometheus.API_ENDPOINT) assert resp.status == 200 assert resp.headers["content-type"] == CONTENT_TYPE_TEXT_PLAIN body = await resp.text() body = body.split("\n") assert len(body) > 3 assert "# HELP python_info Python platform information" in body assert ( "# HELP python_gc_objects_collected_total " "Objects collected during gc" in body ) assert ( 'temperature_c{domain="sensor",' 'entity="sensor.outside_temperature",' 'friendly_name="Outside Temperature"} 15.6' in body ) assert ( 'battery_level_percent{domain="sensor",' 'entity="sensor.outside_temperature",' 'friendly_name="Outside Temperature"} 12.0' in body ) assert ( 'current_temperature_c{domain="climate",' 'entity="climate.heatpump",' 'friendly_name="HeatPump"} 25.0' in body ) > assert ( 'humidifier_target_humidity_percent{domain="humidifier",' 'entity="humidifier.humidifier",' 'friendly_name="Humidifier"} 68.0' in body ) E assert 'humidifier_target_humidity_percent{domain="humidifier",entity="humidifier.humidifier",friendly_name="Humidifier"} 68.0' in ['# HELP python_gc_objects_collected_total Objects collected during gc', '# TYPE python_gc_objects_collected_total cou...al{generation="2"} 175103.0', '# HELP python_gc_objects_uncollectable_total Uncollectable object found during GC', ...] tests/components/prometheus/test_init.py:130: AssertionError ---------------------------- Captured stderr setup ----------------------------- DEBUG:asyncio:Using selector: EpollSelector ------------------------------ Captured log setup ------------------------------ DEBUG asyncio:selector_events.py:59 Using selector: EpollSelector ----------------------------- Captured stderr call ----------------------------- INFO:homeassistant.loader:Loaded prometheus from homeassistant.components.prometheus INFO:homeassistant.loader:Loaded http from homeassistant.components.http DEBUG:homeassistant.setup:Dependency prometheus will wait for dependencies ['http'] INFO:homeassistant.setup:Setting up http INFO:homeassistant.setup:Setup of domain http took 0.0 seconds DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=http> INFO:homeassistant.setup:Setting up prometheus INFO:homeassistant.setup:Setup of domain prometheus took 0.0 seconds DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=prometheus> INFO:homeassistant.loader:Loaded sensor from homeassistant.components.sensor INFO:homeassistant.loader:Loaded demo from homeassistant.components.demo INFO:homeassistant.setup:Setting up sensor INFO:homeassistant.setup:Setup of domain sensor took 0.0 seconds DEBUG:homeassistant.setup:Dependency demo will wait for dependencies ['conversation', 'zone', 'group'] DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=sensor> INFO:homeassistant.loader:Loaded conversation from homeassistant.components.conversation INFO:homeassistant.loader:Loaded zone from homeassistant.components.zone INFO:homeassistant.setup:Setting up conversation INFO:homeassistant.loader:Loaded group from homeassistant.components.group DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=conversation, service=process> INFO:homeassistant.setup:Setup of domain conversation took 0.0 seconds INFO:homeassistant.loader:Loaded climate from homeassistant.components.climate INFO:homeassistant.setup:Setting up zone DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=conversation> INFO:homeassistant.setup:Setting up group INFO:homeassistant.setup:Setting up climate DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=climate, service=turn_on> DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=climate, service=turn_off> DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=climate, service=set_hvac_mode> DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=climate, service=set_preset_mode> DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=climate, service=set_aux_heat> DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=climate, service=set_temperature> DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=climate, service=set_humidity> DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=climate, service=set_fan_mode> DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=climate, service=set_swing_mode> INFO:homeassistant.setup:Setup of domain climate took 0.0 seconds DEBUG:homeassistant.setup:Dependency demo will wait for dependencies ['zone', 'group'] DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=climate> DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=group, service=reload> DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=group, service=set> DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=group, service=remove> INFO:homeassistant.setup:Setup of domain group took 0.1 seconds DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=zone, service=reload> DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=group> DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=zone.home, old_state=None, new_state=<state zone.home=zoning; latitude=32.87336, longitude=-117.22743, radius=100, passive=False, editable=True, friendly_name=test home, icon=mdi:home @ 2021-05-12T16:02:29.918726+00:00>> DEBUG:homeassistant.components.prometheus:Handling state update for zone.home INFO:homeassistant.setup:Setup of domain zone took 0.1 seconds DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=zone> INFO:homeassistant.setup:Setting up demo INFO:homeassistant.setup:Setup of domain demo took 0.0 seconds DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=demo> INFO:homeassistant.components.sensor:Setting up sensor.demo INFO:homeassistant.components.climate:Setting up climate.demo INFO:homeassistant.helpers.entity_registry:Registered new sensor.demo entity: sensor.outside_temperature DEBUG:homeassistant.core:Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.outside_temperature> DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=sensor.outside_temperature, old_state=None, new_state=<state sensor.outside_temperature=15.6; battery_level=12, unit_of_measurement=°C, friendly_name=Outside Temperature, device_class=temperature @ 2021-05-12T16:02:29.931161+00:00>> INFO:homeassistant.helpers.entity_registry:Registered new sensor.demo entity: sensor.outside_humidity DEBUG:homeassistant.core:Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.outside_humidity> DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=sensor.outside_humidity, old_state=None, new_state=<state sensor.outside_humidity=54; unit_of_measurement=%, friendly_name=Outside Humidity, device_class=humidity @ 2021-05-12T16:02:29.933965+00:00>> INFO:homeassistant.helpers.entity_registry:Registered new sensor.demo entity: sensor.carbon_monoxide DEBUG:homeassistant.components.prometheus:Handling state update for sensor.outside_humidity DEBUG:homeassistant.core:Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.carbon_monoxide> DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=sensor.carbon_monoxide, old_state=None, new_state=<state sensor.carbon_monoxide=54; unit_of_measurement=ppm, friendly_name=Carbon monoxide, device_class=carbon_monoxide @ 2021-05-12T16:02:29.954947+00:00>> INFO:homeassistant.helpers.entity_registry:Registered new sensor.demo entity: sensor.carbon_dioxide DEBUG:homeassistant.components.prometheus:Handling state update for sensor.carbon_monoxide DEBUG:homeassistant.core:Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.carbon_dioxide> DEBUG:homeassistant.components.prometheus:Handling state update for sensor.outside_temperature DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=sensor.carbon_dioxide, old_state=None, new_state=<state sensor.carbon_dioxide=54; battery_level=14, unit_of_measurement=ppm, friendly_name=Carbon dioxide, device_class=carbon_dioxide @ 2021-05-12T16:02:29.958608+00:00>> INFO:homeassistant.helpers.entity_registry:Registered new climate.demo entity: climate.heatpump DEBUG:homeassistant.core:Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=climate.heatpump> DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=climate.heatpump, old_state=None, new_state=<state climate.heatpump=heat; hvac_modes=['heat', 'off'], min_temp=7.0, max_temp=35.0, current_temperature=25.0, temperature=20.0, hvac_action=heating, friendly_name=HeatPump, supported_features=1 @ 2021-05-12T16:02:29.970499+00:00>> DEBUG:homeassistant.components.prometheus:Handling state update for sensor.carbon_dioxide DEBUG:homeassistant.components.prometheus:Handling state update for climate.heatpump INFO:homeassistant.helpers.entity_registry:Registered new climate.demo entity: climate.hvac DEBUG:homeassistant.core:Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=climate.hvac> DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=climate.hvac, old_state=None, new_state=<state climate.hvac=cool; hvac_modes=['off', 'heat', 'cool', 'auto', 'dry', 'fan_only'], min_temp=7, max_temp=35, min_humidity=30, max_humidity=99, fan_modes=['On Low', 'On High', 'Auto Low', 'Auto High', 'Off'], swing_modes=['Auto', '1', '2', '3', 'Off'], current_temperature=22, temperature=21, target_temp_high=None, target_temp_low=None, current_humidity=54, humidity=67, fan_mode=On High, hvac_action=cooling, swing_mode=Off, aux_heat=off, friendly_name=Hvac, supported_features=111 @ 2021-05-12T16:02:29.980988+00:00>> INFO:homeassistant.helpers.entity_registry:Registered new climate.demo entity: climate.ecobee DEBUG:homeassistant.core:Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=climate.ecobee> DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=climate.ecobee, old_state=None, new_state=<state climate.ecobee=heat_cool; hvac_modes=['heat_cool', 'cool', 'heat'], min_temp=7, max_temp=35, fan_modes=['On Low', 'On High', 'Auto Low', 'Auto High', 'Off'], preset_modes=['home', 'eco'], swing_modes=['Auto', '1', '2', '3', 'Off'], current_temperature=23, target_temp_high=24, target_temp_low=21, fan_mode=Auto Low, preset_mode=home, swing_mode=Auto, friendly_name=Ecobee, supported_features=58 @ 2021-05-12T16:02:29.984441+00:00>> DEBUG:homeassistant.components.prometheus:Handling state update for climate.hvac DEBUG:homeassistant.components.prometheus:Handling state update for climate.ecobee INFO:homeassistant.loader:Loaded humidifier from homeassistant.components.humidifier INFO:homeassistant.setup:Setting up humidifier DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=humidifier, service=turn_on> DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=humidifier, service=turn_off> DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=humidifier, service=toggle> DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=humidifier, service=set_mode> DEBUG:homeassistant.core:Bus:Handling <Event service_registered[L]: domain=humidifier, service=set_humidity> INFO:homeassistant.setup:Setup of domain humidifier took 0.0 seconds INFO:homeassistant.components.humidifier:Setting up humidifier.demo DEBUG:homeassistant.core:Bus:Handling <Event component_loaded[L]: component=humidifier> DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=sensor.television_energy, old_state=None, new_state=<state sensor.television_energy=74; unit_of_measurement=kWh, friendly_name=Television Energy @ 2021-05-12T16:02:30.004051+00:00>> DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=sensor.radio_energy, old_state=None, new_state=<state sensor.radio_energy=14; unit_of_measurement=kWh, friendly_name=Radio Energy, device_class=power @ 1970-01-02T00:00:00+00:00>> DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=sensor.electricity_price, old_state=None, new_state=<state sensor.electricity_price=0.123; unit_of_measurement=SEK/kWh, friendly_name=Electricity price @ 2021-05-12T16:02:30.007311+00:00>> DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=sensor.wind_direction, old_state=None, new_state=<state sensor.wind_direction=25; unit_of_measurement=°, friendly_name=Wind Direction @ 2021-05-12T16:02:30.008486+00:00>> DEBUG:homeassistant.components.prometheus:Handling state update for sensor.television_energy DEBUG:homeassistant.components.prometheus:Handling state update for sensor.radio_energy DEBUG:homeassistant.components.prometheus:Handling state update for sensor.electricity_price DEBUG:homeassistant.components.prometheus:Handling state update for sensor.wind_direction DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=sensor.sps30_pm_1um_weight_concentration, old_state=None, new_state=<state sensor.sps30_pm_1um_weight_concentration=3.7069; unit_of_measurement=µg/m³, friendly_name=SPS30 PM <1µm Weight concentration @ 2021-05-12T16:02:30.042774+00:00>> DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=humidifier.humidifier, old_state=None, new_state=<state humidifier.humidifier=on; min_humidity=0, max_humidity=100, humidity=68, friendly_name=Humidifier, supported_features=0, device_class=humidifier @ 2021-05-12T16:02:30.048191+00:00>> DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=humidifier.dehumidifier, old_state=None, new_state=<state humidifier.dehumidifier=on; min_humidity=0, max_humidity=100, humidity=54, friendly_name=Dehumidifier, supported_features=0, device_class=dehumidifier @ 2021-05-12T16:02:30.049812+00:00>> DEBUG:homeassistant.core:Bus:Handling <Event state_changed[L]: entity_id=humidifier.hygrostat, old_state=None, new_state=<state humidifier.hygrostat=on; min_humidity=0, max_humidity=100, available_modes=['home', 'eco'], humidity=50, mode=home, friendly_name=Hygrostat, supported_features=1 @ 2021-05-12T16:02:30.051561+00:00>> DEBUG:homeassistant.components.http.auth:Authenticated 127.0.0.1 for /api/prometheus using bearer token DEBUG:homeassistant.components.prometheus:Handling state update for sensor.sps30_pm_1um_weight_concentration DEBUG:homeassistant.components.http.view:Serving /api/prometheus to 127.0.0.1 (auth: True) DEBUG:homeassistant.components.prometheus:Handling state update for humidifier.hygrostat DEBUG:homeassistant.components.prometheus:Handling state update for humidifier.dehumidifier DEBUG:homeassistant.components.prometheus:Handling state update for humidifier.humidifier DEBUG:homeassistant.components.prometheus:Received Prometheus metrics request INFO:aiohttp.access:127.0.0.1 [12/May/2021:16:02:30 +0000] "GET /api/prometheus HTTP/1.1" 200 12216 "-" "Python/3.8 aiohttp/3.7.4.post0" ------------------------------ Captured log call ------------------------------- INFO homeassistant.loader:loader.py:344 Loaded prometheus from homeassistant.components.prometheus INFO homeassistant.loader:loader.py:344 Loaded http from homeassistant.components.http DEBUG homeassistant.setup:setup.py:130 Dependency prometheus will wait for dependencies ['http'] INFO homeassistant.setup:setup.py:217 Setting up http INFO homeassistant.setup:setup.py:265 Setup of domain http took 0.0 seconds DEBUG homeassistant.core:core.py:709 Bus:Handling <Event component_loaded[L]: component=http> INFO homeassistant.setup:setup.py:217 Setting up prometheus INFO homeassistant.setup:setup.py:265 Setup of domain prometheus took 0.0 seconds DEBUG homeassistant.core:core.py:709 Bus:Handling <Event component_loaded[L]: component=prometheus> INFO homeassistant.loader:loader.py:344 Loaded sensor from homeassistant.components.sensor INFO homeassistant.loader:loader.py:344 Loaded demo from homeassistant.components.demo INFO homeassistant.setup:setup.py:217 Setting up sensor INFO homeassistant.setup:setup.py:265 Setup of domain sensor took 0.0 seconds DEBUG homeassistant.setup:setup.py:130 Dependency demo will wait for dependencies ['conversation', 'zone', 'group'] DEBUG homeassistant.core:core.py:709 Bus:Handling <Event component_loaded[L]: component=sensor> INFO homeassistant.loader:loader.py:344 Loaded conversation from homeassistant.components.conversation INFO homeassistant.loader:loader.py:344 Loaded zone from homeassistant.components.zone INFO homeassistant.setup:setup.py:217 Setting up conversation INFO homeassistant.loader:loader.py:344 Loaded group from homeassistant.components.group DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=conversation, service=process> INFO homeassistant.setup:setup.py:265 Setup of domain conversation took 0.0 seconds INFO homeassistant.loader:loader.py:344 Loaded climate from homeassistant.components.climate INFO homeassistant.setup:setup.py:217 Setting up zone DEBUG homeassistant.core:core.py:709 Bus:Handling <Event component_loaded[L]: component=conversation> INFO homeassistant.setup:setup.py:217 Setting up group INFO homeassistant.setup:setup.py:217 Setting up climate DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=climate, service=turn_on> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=climate, service=turn_off> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=climate, service=set_hvac_mode> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=climate, service=set_preset_mode> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=climate, service=set_aux_heat> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=climate, service=set_temperature> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=climate, service=set_humidity> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=climate, service=set_fan_mode> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=climate, service=set_swing_mode> INFO homeassistant.setup:setup.py:265 Setup of domain climate took 0.0 seconds DEBUG homeassistant.setup:setup.py:130 Dependency demo will wait for dependencies ['zone', 'group'] DEBUG homeassistant.core:core.py:709 Bus:Handling <Event component_loaded[L]: component=climate> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=group, service=reload> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=group, service=set> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=group, service=remove> INFO homeassistant.setup:setup.py:265 Setup of domain group took 0.1 seconds DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=zone, service=reload> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event component_loaded[L]: component=group> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=zone.home, old_state=None, new_state=<state zone.home=zoning; latitude=32.87336, longitude=-117.22743, radius=100, passive=False, editable=True, friendly_name=test home, icon=mdi:home @ 2021-05-12T16:02:29.918726+00:00>> DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for zone.home INFO homeassistant.setup:setup.py:265 Setup of domain zone took 0.1 seconds DEBUG homeassistant.core:core.py:709 Bus:Handling <Event component_loaded[L]: component=zone> INFO homeassistant.setup:setup.py:217 Setting up demo INFO homeassistant.setup:setup.py:265 Setup of domain demo took 0.0 seconds DEBUG homeassistant.core:core.py:709 Bus:Handling <Event component_loaded[L]: component=demo> INFO homeassistant.components.sensor:entity_platform.py:217 Setting up sensor.demo INFO homeassistant.components.climate:entity_platform.py:217 Setting up climate.demo INFO homeassistant.helpers.entity_registry:entity_registry.py:297 Registered new sensor.demo entity: sensor.outside_temperature DEBUG homeassistant.core:core.py:709 Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.outside_temperature> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=sensor.outside_temperature, old_state=None, new_state=<state sensor.outside_temperature=15.6; battery_level=12, unit_of_measurement=°C, friendly_name=Outside Temperature, device_class=temperature @ 2021-05-12T16:02:29.931161+00:00>> INFO homeassistant.helpers.entity_registry:entity_registry.py:297 Registered new sensor.demo entity: sensor.outside_humidity DEBUG homeassistant.core:core.py:709 Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.outside_humidity> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=sensor.outside_humidity, old_state=None, new_state=<state sensor.outside_humidity=54; unit_of_measurement=%, friendly_name=Outside Humidity, device_class=humidity @ 2021-05-12T16:02:29.933965+00:00>> INFO homeassistant.helpers.entity_registry:entity_registry.py:297 Registered new sensor.demo entity: sensor.carbon_monoxide DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for sensor.outside_humidity DEBUG homeassistant.core:core.py:709 Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.carbon_monoxide> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=sensor.carbon_monoxide, old_state=None, new_state=<state sensor.carbon_monoxide=54; unit_of_measurement=ppm, friendly_name=Carbon monoxide, device_class=carbon_monoxide @ 2021-05-12T16:02:29.954947+00:00>> INFO homeassistant.helpers.entity_registry:entity_registry.py:297 Registered new sensor.demo entity: sensor.carbon_dioxide DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for sensor.carbon_monoxide DEBUG homeassistant.core:core.py:709 Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.carbon_dioxide> DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for sensor.outside_temperature DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=sensor.carbon_dioxide, old_state=None, new_state=<state sensor.carbon_dioxide=54; battery_level=14, unit_of_measurement=ppm, friendly_name=Carbon dioxide, device_class=carbon_dioxide @ 2021-05-12T16:02:29.958608+00:00>> INFO homeassistant.helpers.entity_registry:entity_registry.py:297 Registered new climate.demo entity: climate.heatpump DEBUG homeassistant.core:core.py:709 Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=climate.heatpump> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=climate.heatpump, old_state=None, new_state=<state climate.heatpump=heat; hvac_modes=['heat', 'off'], min_temp=7.0, max_temp=35.0, current_temperature=25.0, temperature=20.0, hvac_action=heating, friendly_name=HeatPump, supported_features=1 @ 2021-05-12T16:02:29.970499+00:00>> DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for sensor.carbon_dioxide DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for climate.heatpump INFO homeassistant.helpers.entity_registry:entity_registry.py:297 Registered new climate.demo entity: climate.hvac DEBUG homeassistant.core:core.py:709 Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=climate.hvac> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=climate.hvac, old_state=None, new_state=<state climate.hvac=cool; hvac_modes=['off', 'heat', 'cool', 'auto', 'dry', 'fan_only'], min_temp=7, max_temp=35, min_humidity=30, max_humidity=99, fan_modes=['On Low', 'On High', 'Auto Low', 'Auto High', 'Off'], swing_modes=['Auto', '1', '2', '3', 'Off'], current_temperature=22, temperature=21, target_temp_high=None, target_temp_low=None, current_humidity=54, humidity=67, fan_mode=On High, hvac_action=cooling, swing_mode=Off, aux_heat=off, friendly_name=Hvac, supported_features=111 @ 2021-05-12T16:02:29.980988+00:00>> INFO homeassistant.helpers.entity_registry:entity_registry.py:297 Registered new climate.demo entity: climate.ecobee DEBUG homeassistant.core:core.py:709 Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=climate.ecobee> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=climate.ecobee, old_state=None, new_state=<state climate.ecobee=heat_cool; hvac_modes=['heat_cool', 'cool', 'heat'], min_temp=7, max_temp=35, fan_modes=['On Low', 'On High', 'Auto Low', 'Auto High', 'Off'], preset_modes=['home', 'eco'], swing_modes=['Auto', '1', '2', '3', 'Off'], current_temperature=23, target_temp_high=24, target_temp_low=21, fan_mode=Auto Low, preset_mode=home, swing_mode=Auto, friendly_name=Ecobee, supported_features=58 @ 2021-05-12T16:02:29.984441+00:00>> DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for climate.hvac DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for climate.ecobee INFO homeassistant.loader:loader.py:344 Loaded humidifier from homeassistant.components.humidifier INFO homeassistant.setup:setup.py:217 Setting up humidifier DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=humidifier, service=turn_on> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=humidifier, service=turn_off> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=humidifier, service=toggle> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=humidifier, service=set_mode> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event service_registered[L]: domain=humidifier, service=set_humidity> INFO homeassistant.setup:setup.py:265 Setup of domain humidifier took 0.0 seconds INFO homeassistant.components.humidifier:entity_platform.py:217 Setting up humidifier.demo DEBUG homeassistant.core:core.py:709 Bus:Handling <Event component_loaded[L]: component=humidifier> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=sensor.television_energy, old_state=None, new_state=<state sensor.television_energy=74; unit_of_measurement=kWh, friendly_name=Television Energy @ 2021-05-12T16:02:30.004051+00:00>> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=sensor.radio_energy, old_state=None, new_state=<state sensor.radio_energy=14; unit_of_measurement=kWh, friendly_name=Radio Energy, device_class=power @ 1970-01-02T00:00:00+00:00>> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=sensor.electricity_price, old_state=None, new_state=<state sensor.electricity_price=0.123; unit_of_measurement=SEK/kWh, friendly_name=Electricity price @ 2021-05-12T16:02:30.007311+00:00>> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=sensor.wind_direction, old_state=None, new_state=<state sensor.wind_direction=25; unit_of_measurement=°, friendly_name=Wind Direction @ 2021-05-12T16:02:30.008486+00:00>> DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for sensor.television_energy DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for sensor.radio_energy DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for sensor.electricity_price DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for sensor.wind_direction DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=sensor.sps30_pm_1um_weight_concentration, old_state=None, new_state=<state sensor.sps30_pm_1um_weight_concentration=3.7069; unit_of_measurement=µg/m³, friendly_name=SPS30 PM <1µm Weight concentration @ 2021-05-12T16:02:30.042774+00:00>> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=humidifier.humidifier, old_state=None, new_state=<state humidifier.humidifier=on; min_humidity=0, max_humidity=100, humidity=68, friendly_name=Humidifier, supported_features=0, device_class=humidifier @ 2021-05-12T16:02:30.048191+00:00>> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=humidifier.dehumidifier, old_state=None, new_state=<state humidifier.dehumidifier=on; min_humidity=0, max_humidity=100, humidity=54, friendly_name=Dehumidifier, supported_features=0, device_class=dehumidifier @ 2021-05-12T16:02:30.049812+00:00>> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event state_changed[L]: entity_id=humidifier.hygrostat, old_state=None, new_state=<state humidifier.hygrostat=on; min_humidity=0, max_humidity=100, available_modes=['home', 'eco'], humidity=50, mode=home, friendly_name=Hygrostat, supported_features=1 @ 2021-05-12T16:02:30.051561+00:00>> DEBUG homeassistant.components.http.auth:auth.py:127 Authenticated 127.0.0.1 for /api/prometheus using bearer token DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for sensor.sps30_pm_1um_weight_concentration DEBUG homeassistant.components.http.view:view.py:120 Serving /api/prometheus to 127.0.0.1 (auth: True) DEBUG homeassistant.components.prometheus:__init__.py:491 Received Prometheus metrics request DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for humidifier.hygrostat INFO aiohttp.access:web_log.py:206 127.0.0.1 [12/May/2021:16:02:30 +0000] "GET /api/prometheus HTTP/1.1" 200 12216 "-" "Python/3.8 aiohttp/3.7.4.post0" DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for humidifier.dehumidifier DEBUG homeassistant.components.prometheus:__init__.py:152 Handling state update for humidifier.humidifier --------------------------- Captured stderr teardown --------------------------- DEBUG:homeassistant.core:Bus:Handling <Event homeassistant_stop[L]> DEBUG:homeassistant.core:Bus:Handling <Event homeassistant_final_write[L]> INFO:tests.common:Writing data to auth: {'version': 1, 'key': 'auth', 'data': {'users': [{'id': '7addd24334454b2fa200bec8bca48fb7', 'group_ids': ['system-admin'], 'is_owner': False, 'is_active': True, 'name': 'Mock User', 'system_generated': False}], 'groups': [{'id': 'system-admin', 'name': 'Administrators'}, {'id': 'system-users', 'name': 'Users'}, {'id': 'system-read-only', 'name': 'Read Only'}], 'credentials': [{'id': 'mock-credential-id', 'user_id': '7addd24334454b2fa200bec8bca48fb7', 'auth_provider_type': 'homeassistant', 'auth_provider_id': None, 'data': {'username': 'admin'}}], 'refresh_tokens': [{'id': '6c4c17c1d99848ef922f8e3d91e047e8', 'user_id': '7addd24334454b2fa200bec8bca48fb7', 'client_id': 'https://example.com/app', 'client_name': None, 'client_icon': None, 'token_type': 'normal', 'created_at': '2021-05-12T16:02:29.787536+00:00', 'access_token_expiration': 1800.0, 'token': 'f6360b0454c9a629a55879cf598e44469f96fb84ba590a4e1b54a096289b4fa65ab044f54d56ef38cfac698c26840e6025a67062ca3fc8bfa324093451bf12eb', 'jwt_key': 'e15fba373768d8be7a4c3b4055213e5fa6a9e443bcfe406e519b91f38cffc1fcf8463ffa86ec5b8824591f123f6f7059a4c15dcfcd30db3a673c3b9da4dd9dd3', 'last_used_at': '2021-05-12T16:02:29.787737+00:00', 'last_used_ip': None, 'credential_id': 'mock-credential-id', 'version': '2021.5.3'}]}} INFO:tests.common:Writing data to core.entity_registry: {'version': 1, 'key': 'core.entity_registry', 'data': {'entities': [{'entity_id': 'sensor.outside_temperature', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'sensor_1', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': None, 'supported_features': 0, 'device_class': 'temperature', 'unit_of_measurement': '°C', 'original_name': 'Outside Temperature', 'original_icon': None}, {'entity_id': 'sensor.outside_humidity', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'sensor_2', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': None, 'supported_features': 0, 'device_class': 'humidity', 'unit_of_measurement': '%', 'original_name': 'Outside Humidity', 'original_icon': None}, {'entity_id': 'sensor.carbon_monoxide', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'sensor_3', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': None, 'supported_features': 0, 'device_class': 'carbon_monoxide', 'unit_of_measurement': 'ppm', 'original_name': 'Carbon monoxide', 'original_icon': None}, {'entity_id': 'sensor.carbon_dioxide', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'sensor_4', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': None, 'supported_features': 0, 'device_class': 'carbon_dioxide', 'unit_of_measurement': 'ppm', 'original_name': 'Carbon dioxide', 'original_icon': None}, {'entity_id': 'climate.heatpump', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'climate_1', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': {'hvac_modes': ['heat', 'off'], 'min_temp': 7.0, 'max_temp': 35.0}, 'supported_features': 1, 'device_class': None, 'unit_of_measurement': None, 'original_name': 'HeatPump', 'original_icon': None}, {'entity_id': 'climate.hvac', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'climate_2', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': {'hvac_modes': ['off', 'heat', 'cool', 'auto', 'dry', 'fan_only'], 'min_temp': 7, 'max_temp': 35, 'min_humidity': 30, 'max_humidity': 99, 'fan_modes': ['On Low', 'On High', 'Auto Low', 'Auto High', 'Off'], 'swing_modes': ['Auto', '1', '2', '3', 'Off']}, 'supported_features': 111, 'device_class': None, 'unit_of_measurement': None, 'original_name': 'Hvac', 'original_icon': None}, {'entity_id': 'climate.ecobee', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'climate_3', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': {'hvac_modes': ['heat_cool', 'cool', 'heat'], 'min_temp': 7, 'max_temp': 35, 'fan_modes': ['On Low', 'On High', 'Auto Low', 'Auto High', 'Off'], 'preset_modes': ['home', 'eco'], 'swing_modes': ['Auto', '1', '2', '3', 'Off']}, 'supported_features': 58, 'device_class': None, 'unit_of_measurement': None, 'original_name': 'Ecobee', 'original_icon': None}]}} DEBUG:homeassistant.core:Bus:Handling <Event homeassistant_close[L]> ---------------------------- Captured log teardown ----------------------------- DEBUG homeassistant.core:core.py:709 Bus:Handling <Event homeassistant_stop[L]> DEBUG homeassistant.core:core.py:709 Bus:Handling <Event homeassistant_final_write[L]> INFO tests.common:common.py:1013 Writing data to auth: {'version': 1, 'key': 'auth', 'data': {'users': [{'id': '7addd24334454b2fa200bec8bca48fb7', 'group_ids': ['system-admin'], 'is_owner': False, 'is_active': True, 'name': 'Mock User', 'system_generated': False}], 'groups': [{'id': 'system-admin', 'name': 'Administrators'}, {'id': 'system-users', 'name': 'Users'}, {'id': 'system-read-only', 'name': 'Read Only'}], 'credentials': [{'id': 'mock-credential-id', 'user_id': '7addd24334454b2fa200bec8bca48fb7', 'auth_provider_type': 'homeassistant', 'auth_provider_id': None, 'data': {'username': 'admin'}}], 'refresh_tokens': [{'id': '6c4c17c1d99848ef922f8e3d91e047e8', 'user_id': '7addd24334454b2fa200bec8bca48fb7', 'client_id': 'https://example.com/app', 'client_name': None, 'client_icon': None, 'token_type': 'normal', 'created_at': '2021-05-12T16:02:29.787536+00:00', 'access_token_expiration': 1800.0, 'token': 'f6360b0454c9a629a55879cf598e44469f96fb84ba590a4e1b54a096289b4fa65ab044f54d56ef38cfac698c26840e6025a67062ca3fc8bfa324093451bf12eb', 'jwt_key': 'e15fba373768d8be7a4c3b4055213e5fa6a9e443bcfe406e519b91f38cffc1fcf8463ffa86ec5b8824591f123f6f7059a4c15dcfcd30db3a673c3b9da4dd9dd3', 'last_used_at': '2021-05-12T16:02:29.787737+00:00', 'last_used_ip': None, 'credential_id': 'mock-credential-id', 'version': '2021.5.3'}]}} INFO tests.common:common.py:1013 Writing data to core.entity_registry: {'version': 1, 'key': 'core.entity_registry', 'data': {'entities': [{'entity_id': 'sensor.outside_temperature', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'sensor_1', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': None, 'supported_features': 0, 'device_class': 'temperature', 'unit_of_measurement': '°C', 'original_name': 'Outside Temperature', 'original_icon': None}, {'entity_id': 'sensor.outside_humidity', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'sensor_2', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': None, 'supported_features': 0, 'device_class': 'humidity', 'unit_of_measurement': '%', 'original_name': 'Outside Humidity', 'original_icon': None}, {'entity_id': 'sensor.carbon_monoxide', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'sensor_3', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': None, 'supported_features': 0, 'device_class': 'carbon_monoxide', 'unit_of_measurement': 'ppm', 'original_name': 'Carbon monoxide', 'original_icon': None}, {'entity_id': 'sensor.carbon_dioxide', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'sensor_4', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': None, 'supported_features': 0, 'device_class': 'carbon_dioxide', 'unit_of_measurement': 'ppm', 'original_name': 'Carbon dioxide', 'original_icon': None}, {'entity_id': 'climate.heatpump', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'climate_1', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': {'hvac_modes': ['heat', 'off'], 'min_temp': 7.0, 'max_temp': 35.0}, 'supported_features': 1, 'device_class': None, 'unit_of_measurement': None, 'original_name': 'HeatPump', 'original_icon': None}, {'entity_id': 'climate.hvac', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'climate_2', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': {'hvac_modes': ['off', 'heat', 'cool', 'auto', 'dry', 'fan_only'], 'min_temp': 7, 'max_temp': 35, 'min_humidity': 30, 'max_humidity': 99, 'fan_modes': ['On Low', 'On High', 'Auto Low', 'Auto High', 'Off'], 'swing_modes': ['Auto', '1', '2', '3', 'Off']}, 'supported_features': 111, 'device_class': None, 'unit_of_measurement': None, 'original_name': 'Hvac', 'original_icon': None}, {'entity_id': 'climate.ecobee', 'config_entry_id': None, 'device_id': None, 'area_id': None, 'unique_id': 'climate_3', 'platform': 'demo', 'name': None, 'icon': None, 'disabled_by': None, 'capabilities': {'hvac_modes': ['heat_cool', 'cool', 'heat'], 'min_temp': 7, 'max_temp': 35, 'fan_modes': ['On Low', 'On High', 'Auto Low', 'Auto High', 'Off'], 'preset_modes': ['home', 'eco'], 'swing_modes': ['Auto', '1', '2', '3', 'Off']}, 'supported_features': 58, 'device_class': None, 'unit_of_measurement': None, 'original_name': 'Ecobee', 'original_icon': None}]}} DEBUG homeassistant.core:core.py:709 Bus:Handling <Event homeassistant_close[L]>
2021-05-26 00:33:12 +00:00
# prometheus/test_init.py: Spurious AssertionError regarding humidifier_target_humidity_percent metric
"--deselect tests/components/prometheus/test_init.py::test_view"
2021-06-03 01:43:31 +00:00
# smhi/test_init.py: Tries to fetch data from the network: socket.gaierror: [Errno -2] Name or service not known
"--deselect tests/components/smhi/test_init.py::test_remove_entry"
# wallbox/test_config_flow.py: Tries to connect to api.wall-box.cim: Failed to establish a new connection: [Errno -2] Name or service not known
"--deselect tests/components/wallbox/test_config_flow.py::test_form_invalid_auth"
"--deselect tests/components/wallbox/test_config_flow.py::test_form_cannot_connect"
2021-08-06 20:53:16 +00:00
# default_config/test_init.py: Tries to check for updates and fails ungracefully without network access
2021-07-08 00:38:18 +00:00
"--deselect tests/components/default_config/test_init.py::test_setup"
2021-08-06 20:53:16 +00:00
# local_ip/test_{init,config_flow}.py: tries to lookup a route towards a multicast address and fails
"--deselect tests/components/local_ip/test_init.py::test_basic_setup"
"--deselect tests/components/local_ip/test_config_flow.py::test_config_flow"
# netatmo/test_select.py: NoneType object has no attribute state
"--deselect tests/components/netatmo/test_select.py::test_select_schedule_thermostats"
2021-09-10 01:59:36 +00:00
# wemo/test_sensor.py: KeyError for various power attributes
"--deselect tests/components/wemo/test_sensor.py::TestInsightTodayEnergy::test_state_unavailable"
"--deselect tests/components/wemo/test_sensor.py::TestInsightCurrentPower::test_state_unavailable"
2021-08-06 20:53:16 +00:00
# helpers/test_system_info.py: AssertionError: assert 'Unknown' == 'Home Assistant Container'
"--deselect tests/helpers/test_system_info.py::test_container_installationtype"
# tests are located in tests/
"tests"
# dynamically add packages required for component tests
] ++ map (component: "tests/components/" + component) componentTests;
disabledTestPaths = [
# don't bulk test all components
"tests/components"
# pyotp since v2.4.0 complains about the short mock keys, hass pins v2.3.0
"tests/auth/mfa_modules/test_notify.py"
2021-10-07 00:15:08 +00:00
# emulated_hue/test_upnp.py: Tries to establish the public ipv4 address
"tests/components/emulated_hue/test_upnp.py"
# tado/test_{climate,water_heater}.py: Tries to connect to my.tado.com
2021-10-12 14:29:34 +00:00
"tests/components/tado/test_climate.py"
"tests/components/tado/test_water_heater.py"
];
disabledTests = [
# AssertionError: assert 1 == 0
2021-03-03 21:21:01 +00:00
"test_error_posted_as_event"
"test_merge"
# ModuleNotFoundError: No module named 'pyqwikswitch'
"test_merge_id_schema"
2021-01-06 18:57:47 +00:00
# keyring.errors.NoKeyringError: No recommended backend was available.
"test_secrets_from_unrelated_fails"
"test_secrets_credstash"
2021-03-03 21:21:01 +00:00
# generic/test_camera.py: AssertionError: 500 == 200
"test_fetching_without_verify_ssl"
"test_fetching_url_with_verify_ssl"
2021-04-07 18:34:08 +00:00
# util/test_package.py: AssertionError on package.is_installed('homeassistant>=999.999.999')
"test_check_package_version_does_not_match"
# homeassistant/util/thread.py:51: SystemError
"test_executor_shutdown_can_interrupt_threads"
home-assistant: disable failing test in mobile app component ____________________ test_webhook_handle_get_config[pyloop] ____________________ [gw18] linux -- Python 3.8.9 /nix/store/q6gfck5czr67090pwm53xrdyhpg6bx67-python3-3.8.9/bin/python3.8 hass = <homeassistant.core.HomeAssistant object at 0x7ffe4e71f370> create_registrations = ({'cloudhook_url': None, 'remote_ui_url': None, 'secret': 'ed8ac650f2b5865733d2cea4ad1b6b02bcfbdcc3e527524bc1c457d5c6f...emote_ui_url': None, 'secret': None, 'webhook_id': '558fde83113d48024a427ccf004e2d2bdf7c56646c6a5a953566c272d51f1bfc'}) webhook_client = <aiohttp.test_utils.TestClient object at 0x7ffe4e640ca0> async def test_webhook_handle_get_config(hass, create_registrations, webhook_client): """Test that we can get config properly.""" resp = await webhook_client.post( "/api/webhook/{}".format(create_registrations[1]["webhook_id"]), json={"type": "get_config"}, ) assert resp.status == 200 json = await resp.json() if "components" in json: json["components"] = set(json["components"]) if "allowlist_external_dirs" in json: json["allowlist_external_dirs"] = set(json["allowlist_external_dirs"]) hass_config = hass.config.as_dict() expected_dict = { "latitude": hass_config["latitude"], "longitude": hass_config["longitude"], "elevation": hass_config["elevation"], "unit_system": hass_config["unit_system"], "location_name": hass_config["location_name"], "time_zone": hass_config["time_zone"], "components": hass_config["components"], "version": hass_config["version"], "theme_color": "#03A9F4", # Default frontend theme color } > assert expected_dict == json E AssertionError: assert {'components'...st home', ...} == {'components'...st home', ...} E Omitting 8 identical items, use -vv to show E Differing items: E {'theme_color': '#03A9F4'} != {'theme_color': 'blue'} E Use -v to get the full diff tests/components/mobile_app/test_webhook.py:231: AssertionError
2021-05-17 01:41:47 +00:00
# {'theme_color': '#03A9F4'} != {'theme_color': 'blue'}
"test_webhook_handle_get_config"
# onboarding tests rpi_power component, for which we are lacking rpi_bad_power library
"test_onboarding_core_sets_up_rpi_power"
"test_onboarding_core_no_rpi_power"
# hue/test_sensor_base.py: Race condition when counting events
"test_hue_events"
# august/test_lock.py: AssertionError: assert 'unlocked' == 'locked' / assert 'off' == 'on'
2021-07-08 00:38:18 +00:00
"test_lock_update_via_pubnub"
"test_door_sense_update_via_pubnub"
];
preCheck = ''
2021-04-07 18:34:08 +00:00
export HOME="$TEMPDIR"
2021-12-11 19:59:08 +00:00
patch -p1 < ${./patches/tests-mock-source-ip.patch}
# the tests require the existance of a media dir
mkdir /build/media
# put ping binary into PATH, e.g. for wake_on_lan tests
export PATH=${inetutils}/bin:$PATH
# error out when component test directory is missing, otherwise hidden by xdist execution :(
for component in ${lib.concatStringsSep " " (map lib.escapeShellArg componentTests)}; do
test -d "tests/components/$component" || {
>2& echo "ERROR: Tests for component '$component' were enabled, but they do not exist!"
exit 1
}
done
2018-01-14 21:26:52 +00:00
'';
2020-05-06 06:39:44 +00:00
passthru = {
inherit availableComponents extraComponents;
python = py;
2020-06-20 10:05:30 +00:00
tests = {
inherit (nixosTests) home-assistant;
};
2020-05-06 06:39:44 +00:00
};
2018-02-10 22:19:19 +00:00
meta = with lib; {
homepage = "https://home-assistant.io/";
description = "Open source home automation that puts local control and privacy first";
2018-01-14 21:26:52 +00:00
license = licenses.asl20;
maintainers = teams.home-assistant.members;
platforms = platforms.linux;
2018-01-14 21:26:52 +00:00
};
}