aboutsummaryrefslogtreecommitdiffstats
path: root/community/mycroft-core/0001-xdg-settings-cache-and-runtime-data.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/mycroft-core/0001-xdg-settings-cache-and-runtime-data.patch')
-rw-r--r--community/mycroft-core/0001-xdg-settings-cache-and-runtime-data.patch214
1 files changed, 131 insertions, 83 deletions
diff --git a/community/mycroft-core/0001-xdg-settings-cache-and-runtime-data.patch b/community/mycroft-core/0001-xdg-settings-cache-and-runtime-data.patch
index f6ae296b12d..4113441d8b8 100644
--- a/community/mycroft-core/0001-xdg-settings-cache-and-runtime-data.patch
+++ b/community/mycroft-core/0001-xdg-settings-cache-and-runtime-data.patch
@@ -1,16 +1,42 @@
-From e1397d10abb4d1e6d45f5eeacd550efe6b5737ef Mon Sep 17 00:00:00 2001
+From 96593f740c0ed52993ad80422552d17c083ed68b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=85ke=20Forslund?= <ake.forslund@gmail.com>
+Date: Fri, 8 Jan 2021 21:40:22 +0100
+Subject: [PATCH 1/4] Update identity location for VK test
+
+Moved from .mycroft to XDG folder
+---
+ Jenkinsfile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Jenkinsfile b/Jenkinsfile
+index be7ea9d8fa0..9382ad35a91 100644
+--- a/Jenkinsfile
++++ b/Jenkinsfile
+@@ -57,7 +57,7 @@ pipeline {
+ sh 'mkdir -p $HOME/core/$BRANCH_ALIAS/allure'
+ sh 'mkdir -p $HOME/core/$BRANCH_ALIAS/mycroft-logs'
+ sh 'docker run \
+- -v "$HOME/voight-kampff/identity:/root/.mycroft/identity" \
++ -v "$HOME/voight-kampff/identity:/root/.config/mycroft/identity" \
+ -v "$HOME/core/$BRANCH_ALIAS/allure:/root/allure" \
+ -v "$HOME/core/$BRANCH_ALIAS/mycroft-logs:/var/log/mycroft" \
+ --label build=${JOB_NAME} \
+
+From 96d85187a64dee8046135e0ef3dc898812af83b1 Mon Sep 17 00:00:00 2001
From: Bart Ribbers <bribbers@disroot.org>
Date: Fri, 8 May 2020 21:32:33 +0200
-Subject: [PATCH] Use XDG Base directories for settings, cache and runtime data
+Subject: [PATCH 2/4] Use XDG Base directories for settings, cache and runtime
+ data
+Improve deprecation warning message
---
- README.md | 10 +--
+ README.md | 8 +--
bin/mycroft-config | 6 +-
mycroft/api/__init__.py | 17 ++----
mycroft/client/enclosure/__main__.py | 6 +-
mycroft/client/enclosure/mark1/__init__.py | 5 ++
- mycroft/client/speech/hotword_factory.py | 48 +++++++++++++--
- mycroft/client/text/text_client.py | 35 ++++++++++-
+ mycroft/client/speech/hotword_factory.py | 33 ++++++++--
+ mycroft/client/text/text_client.py | 36 ++++++++++-
mycroft/configuration/__init__.py | 1 -
mycroft/configuration/config.py | 67 +++++++++++++++++----
mycroft/configuration/locations.py | 25 ++------
@@ -24,23 +50,22 @@ Subject: [PATCH] Use XDG Base directories for settings, cache and runtime data
test/unittests/skills/test_skill_updater.py | 6 +-
test/unittests/util/commented.json | 2 +-
test/unittests/util/plain.json | 2 +-
- 20 files changed, 212 insertions(+), 92 deletions(-)
+ 20 files changed, 197 insertions(+), 91 deletions(-)
diff --git a/README.md b/README.md
-index 1665b0a68d..eaf04259dd 100644
+index 01958ef2c73..82fcca33e7b 100644
--- a/README.md
+++ b/README.md
-@@ -71,20 +71,20 @@ Mycroft is nothing without skills. There are a handful of default skills that a
+@@ -73,20 +73,20 @@ Mycroft is nothing without skills. There are a handful of default skills that a
- ## Pairing Information
+ ### Pairing Information
Pairing information generated by registering with Home is stored in:
-`~/.mycroft/identity/identity2.json` <b><-- DO NOT SHARE THIS WITH OTHERS!</b>
+`~/.config/mycroft/identity/identity2.json` <b><-- DO NOT SHARE THIS WITH OTHERS!</b>
- ## Configuration
- Mycroft configuration consists of 4 possible locations:
--- `mycroft-core/mycroft/configuration/mycroft.conf`(Defaults)
-+- `mycroft-core/mycroft/configuration/mycroft.conf` (Defaults)
+ ### Configuration
+ Mycroft's configuration consists of 4 possible locations:
+ - `mycroft-core/mycroft/configuration/mycroft.conf`(Defaults)
- [Mycroft Home](https://home.mycroft.ai) (Remote)
-- `/etc/mycroft/mycroft.conf`(Machine)
-- `$HOME/.mycroft/mycroft.conf`(User)
@@ -49,7 +74,7 @@ index 1665b0a68d..eaf04259dd 100644
When the configuration loader starts, it looks in these locations in this order, and loads ALL configurations. Keys that exist in multiple configuration files will be overridden by the last file to contain the value. This process results in a minimal amount being written for a specific device and user, without modifying default distribution files.
- ## Using Mycroft Without Home
+ ### Using Mycroft Without Home
-If you do not wish to use the Mycroft Home service, before starting Mycroft for the first time, create `$HOME/.mycroft/mycroft.conf` with the following contents:
+If you do not wish to use the Mycroft Home service, before starting Mycroft for the first time, create `$HOME/.config/mycroft/mycroft.conf` with the following contents:
@@ -57,7 +82,7 @@ index 1665b0a68d..eaf04259dd 100644
```
{
diff --git a/bin/mycroft-config b/bin/mycroft-config
-index a1271b328d..981f2c5d0c 100755
+index a1271b328df..981f2c5d0c6 100755
--- a/bin/mycroft-config
+++ b/bin/mycroft-config
@@ -95,13 +95,13 @@ function validate_config_file() {
@@ -78,10 +103,10 @@ index a1271b328d..981f2c5d0c 100755
*)
echo "ERROR: Unknown name '${1}'."
diff --git a/mycroft/api/__init__.py b/mycroft/api/__init__.py
-index 43663ee127..d2843120ef 100644
+index 43663ee1270..d2843120ef4 100644
--- a/mycroft/api/__init__.py
+++ b/mycroft/api/__init__.py
-@@ -20,8 +20,6 @@ import requests
+@@ -20,8 +20,6 @@
from requests import HTTPError, RequestException
from mycroft.configuration import Configuration
@@ -105,7 +130,7 @@ index 43663ee127..d2843120ef 100644
config_server = config.get("server")
self.url = config_server.get("url")
self.version = config_server.get("version")
-@@ -238,9 +233,7 @@ class DeviceApi(Api):
+@@ -238,9 +233,7 @@ def activate(self, state, token):
platform_build = ""
# load just the local configs to get platform info
@@ -116,7 +141,7 @@ index 43663ee127..d2843120ef 100644
if "enclosure" in config:
platform = config.get("enclosure").get("platform", "unknown")
platform_build = config.get("enclosure").get("platform_build", "")
-@@ -262,9 +255,7 @@ class DeviceApi(Api):
+@@ -262,9 +255,7 @@ def update_version(self):
platform_build = ""
# load just the local configs to get platform info
@@ -128,7 +153,7 @@ index 43663ee127..d2843120ef 100644
platform = config.get("enclosure").get("platform", "unknown")
platform_build = config.get("enclosure").get("platform_build", "")
diff --git a/mycroft/client/enclosure/__main__.py b/mycroft/client/enclosure/__main__.py
-index 7ff403f417..074258e0d9 100644
+index 7ff403f4175..074258e0d9b 100644
--- a/mycroft/client/enclosure/__main__.py
+++ b/mycroft/client/enclosure/__main__.py
@@ -17,7 +17,7 @@
@@ -152,7 +177,7 @@ index 7ff403f417..074258e0d9 100644
enclosure = create_enclosure(platform)
if enclosure:
diff --git a/mycroft/client/enclosure/mark1/__init__.py b/mycroft/client/enclosure/mark1/__init__.py
-index 26a7311c79..491d096496 100644
+index 26a7311c791..491d096496c 100644
--- a/mycroft/client/enclosure/mark1/__init__.py
+++ b/mycroft/client/enclosure/mark1/__init__.py
@@ -15,8 +15,10 @@
@@ -166,7 +191,7 @@ index 26a7311c79..491d096496 100644
import serial
-@@ -163,6 +165,9 @@ class EnclosureReader(Thread):
+@@ -163,6 +165,9 @@ def process(self, data):
if "unit.factory-reset" in data:
self.bus.emit(Message("speak", {
'utterance': mycroft.dialog.get("reset to factory defaults")}))
@@ -177,24 +202,28 @@ index 26a7311c79..491d096496 100644
'rm ~/.mycroft/identity/identity2.json',
shell=True)
diff --git a/mycroft/client/speech/hotword_factory.py b/mycroft/client/speech/hotword_factory.py
-index 6573b7aac4..4938c9dbb8 100644
+index e5385bf5ed8..8ee4fb1c4f6 100644
--- a/mycroft/client/speech/hotword_factory.py
+++ b/mycroft/client/speech/hotword_factory.py
-@@ -28,10 +28,12 @@ from os.path import dirname, exists, join, abspath, expanduser, isfile, isdir
- from shutil import rmtree
+@@ -26,13 +26,15 @@
from threading import Timer, Thread
+ from time import time, sleep
from urllib.error import HTTPError
+from xdg import BaseDirectory
from petact import install_package
+ import requests
-from mycroft.configuration import Configuration, LocalConf, USER_CONFIG
+-from mycroft.util.monotonic_event import MonotonicEvent
+from mycroft.configuration import Configuration, LocalConf
+from mycroft.configuration.locations import OLD_USER_CONFIG
from mycroft.util.log import LOG
- from mycroft.util.monotonic_event import MonotonicEvent
++from mycroft.util.monotonic_event import MonotonicEvent
from mycroft.util.plugins import load_plugin
-@@ -191,7 +193,27 @@ class PreciseHotword(HotWordEngine):
+
+ RECOGNIZER_DIR = join(abspath(dirname(__file__)), "recognizer")
+@@ -189,7 +191,27 @@ def __init__(self, key_phrase="hey mycroft", config=None, lang="en-us"):
from precise_runner import (
PreciseRunner, PreciseEngine, ReadWriteStream
)
@@ -223,7 +252,7 @@ index 6573b7aac4..4938c9dbb8 100644
if (local_conf.get('precise', {}).get('dist_url') ==
'http://bootstrap.mycroft.ai/artifacts/static/daily/'):
del local_conf['precise']['dist_url']
-@@ -249,7 +271,10 @@ class PreciseHotword(HotWordEngine):
+@@ -247,7 +269,10 @@ def update_precise(self, precise_config):
@property
def folder(self):
@@ -235,33 +264,8 @@ index 6573b7aac4..4938c9dbb8 100644
@property
def install_destination(self):
-@@ -359,8 +384,23 @@ class SnowboyHotWord(HotWordEngine):
- class PorcupineHotWord(HotWordEngine):
- def __init__(self, key_phrase="hey mycroft", config=None, lang="en-us"):
- super(PorcupineHotWord, self).__init__(key_phrase, config, lang)
-+
-+ xdg_data_path = None
-+
-+ # Use the old path if available
-+ old_path = join(expanduser('~'), '.mycroft', 'Porcupine')
-+ if os.path.isdir(old_path):
-+ xdg_data_path = old_path
-+
-+ # Otherwise use the new XDG config dirs
-+ if xdg_data_path is None:
-+ for dir in BaseDirectory.load_data_paths('mycroft', 'Porcupine'):
-+ if os.path.isdir(dir):
-+ xdg_data_path = dir
-+ break
-+
- porcupine_path = expanduser(self.config.get(
-- "porcupine_path", join('~', '.mycroft', 'Porcupine')))
-+ "porcupine_path", xdg_data_path))
- keyword_file_paths = [expanduser(x.strip()) for x in self.config.get(
- "keyword_file_path", "hey_mycroft.ppn").split(',')]
- sensitivities = self.config.get("sensitivities", 0.5)
diff --git a/mycroft/client/text/text_client.py b/mycroft/client/text/text_client.py
-index 0c841d71a8..3729f153f2 100644
+index 0c841d71a87..a6be076e89f 100644
--- a/mycroft/client/text/text_client.py
+++ b/mycroft/client/text/text_client.py
@@ -15,6 +15,7 @@
@@ -281,7 +285,7 @@ index 0c841d71a8..3729f153f2 100644
def load_mycroft_config(bus):
-@@ -171,6 +172,34 @@ def load_settings():
+@@ -171,6 +172,35 @@ def load_settings():
global max_log_lines
global show_meter
@@ -298,7 +302,8 @@ index 0c841d71a8..3729f153f2 100644
+ LOG.warning(" Note that this location is deprecated and will" +
+ " not be used in the future")
+ LOG.warning(" Please move it to " +
-+ BaseDirectory.save_config_path('mycroft'))
++ os.path.join(BaseDirectory.save_config_path('mycroft'),
++ filename))
+ config_file = path
+
+ # Check XDG_CONFIG_DIR
@@ -316,7 +321,7 @@ index 0c841d71a8..3729f153f2 100644
try:
with io.open(config_file, 'r') as f:
config = json.load(f)
-@@ -196,6 +225,10 @@ def save_settings():
+@@ -196,6 +226,10 @@ def save_settings():
config["show_last_key"] = show_last_key
config["max_log_lines"] = max_log_lines
config["show_meter"] = show_meter
@@ -328,7 +333,7 @@ index 0c841d71a8..3729f153f2 100644
f.write(str(json.dumps(config, ensure_ascii=False)))
diff --git a/mycroft/configuration/__init__.py b/mycroft/configuration/__init__.py
-index da28826c11..b920d9c833 100644
+index da28826c11d..b920d9c8336 100644
--- a/mycroft/configuration/__init__.py
+++ b/mycroft/configuration/__init__.py
@@ -13,4 +13,3 @@
@@ -337,7 +342,7 @@ index da28826c11..b920d9c833 100644
from .config import Configuration, LocalConf, RemoteConf
-from .locations import SYSTEM_CONFIG, USER_CONFIG
diff --git a/mycroft/configuration/config.py b/mycroft/configuration/config.py
-index dd82eae651..d5a9fd520a 100644
+index 32af4d41bb8..b7304e48312 100644
--- a/mycroft/configuration/config.py
+++ b/mycroft/configuration/config.py
@@ -17,15 +17,15 @@
@@ -370,7 +375,7 @@ index dd82eae651..d5a9fd520a 100644
from mycroft.api import is_paired
if not is_paired():
self.load_local(cache)
-@@ -173,7 +174,7 @@ class Configuration:
+@@ -174,7 +175,7 @@ class Configuration:
__patch = {} # Patch config that skills can update to override config
@staticmethod
@@ -379,7 +384,7 @@ index dd82eae651..d5a9fd520a 100644
"""Get configuration
Returns cached instance if available otherwise builds a new
-@@ -182,6 +183,9 @@ class Configuration:
+@@ -183,6 +184,9 @@ def get(configs=None, cache=True):
Arguments:
configs (list): List of configuration dicts
cache (boolean): True if the result should be cached
@@ -389,7 +394,7 @@ index dd82eae651..d5a9fd520a 100644
Returns:
(dict) configuration dictionary.
-@@ -189,23 +193,62 @@ class Configuration:
+@@ -190,23 +194,62 @@ def get(configs=None, cache=True):
if Configuration.__config:
return Configuration.__config
else:
@@ -459,7 +464,7 @@ index dd82eae651..d5a9fd520a 100644
# Handle strings in stack
for index, item in enumerate(configs):
diff --git a/mycroft/configuration/locations.py b/mycroft/configuration/locations.py
-index cbbaab6ca9..eb8cfb18c7 100644
+index cbbaab6ca94..eb8cfb18c76 100644
--- a/mycroft/configuration/locations.py
+++ b/mycroft/configuration/locations.py
@@ -13,26 +13,13 @@
@@ -496,7 +501,7 @@ index cbbaab6ca9..eb8cfb18c7 100644
+USER_CONFIG = join(BaseDirectory.save_config_path('mycroft'),
+ 'mycroft.conf')
diff --git a/mycroft/configuration/mycroft.conf b/mycroft/configuration/mycroft.conf
-index b18eb9b09a..c61fd90579 100644
+index b18eb9b09a9..c61fd90579b 100644
--- a/mycroft/configuration/mycroft.conf
+++ b/mycroft/configuration/mycroft.conf
@@ -5,7 +5,7 @@
@@ -536,7 +541,7 @@ index b18eb9b09a..c61fd90579 100644
"single_thread": false
},
diff --git a/mycroft/filesystem/__init__.py b/mycroft/filesystem/__init__.py
-index 45ec15a4ac..ecd10d86e4 100644
+index b8804241585..21b12e8f9a5 100644
--- a/mycroft/filesystem/__init__.py
+++ b/mycroft/filesystem/__init__.py
@@ -13,7 +13,9 @@
@@ -549,7 +554,7 @@ index 45ec15a4ac..ecd10d86e4 100644
class FileSystemAccess:
-@@ -30,7 +32,13 @@ class FileSystemAccess:
+@@ -31,7 +33,13 @@ def __init__(self, path):
def __init_path(path):
if not isinstance(path, str) or len(path) == 0:
raise ValueError("path must be initialized as a non empty string")
@@ -565,7 +570,7 @@ index 45ec15a4ac..ecd10d86e4 100644
if not isdir(path):
os.makedirs(path)
diff --git a/mycroft/messagebus/send_func.py b/mycroft/messagebus/send_func.py
-index 403db9f45c..a11a9b0a59 100644
+index 403db9f45c1..a11a9b0a591 100644
--- a/mycroft/messagebus/send_func.py
+++ b/mycroft/messagebus/send_func.py
@@ -15,8 +15,6 @@
@@ -590,7 +595,7 @@ index 403db9f45c..a11a9b0a59 100644
url = MessageBusClient.build_url(
config.get("host"),
diff --git a/mycroft/skills/event_scheduler.py b/mycroft/skills/event_scheduler.py
-index fe41ac1bed..f9931a7ea1 100644
+index fe41ac1bedc..f9931a7ea13 100644
--- a/mycroft/skills/event_scheduler.py
+++ b/mycroft/skills/event_scheduler.py
@@ -16,10 +16,12 @@
@@ -629,10 +634,10 @@ index fe41ac1bed..f9931a7ea1 100644
self.load()
diff --git a/mycroft/skills/skill_updater.py b/mycroft/skills/skill_updater.py
-index ace247e2db..2fa2ab6834 100644
+index ace247e2db4..2fa2ab6834f 100644
--- a/mycroft/skills/skill_updater.py
+++ b/mycroft/skills/skill_updater.py
-@@ -17,6 +17,7 @@ import os
+@@ -17,6 +17,7 @@
import sys
from datetime import datetime
from time import time
@@ -640,7 +645,7 @@ index ace247e2db..2fa2ab6834 100644
from msm import MsmException
-@@ -96,9 +97,8 @@ class SkillUpdater:
+@@ -96,9 +97,8 @@ def installed_skills_file_path(self):
'.mycroft-skills'
)
else:
@@ -653,10 +658,10 @@ index ace247e2db..2fa2ab6834 100644
return self._installed_skills_file_path
diff --git a/mycroft/util/file_utils.py b/mycroft/util/file_utils.py
-index 84555fc3bb..7c09fd226e 100644
+index 84555fc3bb3..7c09fd226ee 100644
--- a/mycroft/util/file_utils.py
+++ b/mycroft/util/file_utils.py
-@@ -22,6 +22,7 @@ import os
+@@ -22,6 +22,7 @@
import psutil
from stat import S_ISREG, ST_MTIME, ST_MODE, ST_SIZE
import tempfile
@@ -703,10 +708,10 @@ index 84555fc3bb..7c09fd226e 100644
return filename
diff --git a/mycroft/util/log.py b/mycroft/util/log.py
-index 0ea391f8f7..788f6df1c3 100644
+index 0ea391f8f79..788f6df1c37 100644
--- a/mycroft/util/log.py
+++ b/mycroft/util/log.py
-@@ -21,7 +21,7 @@ This module provides the LOG pseudo function quickly creating a logger instance
+@@ -21,7 +21,7 @@
for use.
The default log level of the logger created here can ONLY be set in
@@ -715,7 +720,7 @@ index 0ea391f8f7..788f6df1c3 100644
The default log level can also be programatically be changed by setting the
LOG.level parameter.
-@@ -31,10 +31,10 @@ import inspect
+@@ -31,10 +31,10 @@
import logging
import sys
@@ -728,7 +733,7 @@ index 0ea391f8f7..788f6df1c3 100644
def getLogger(name="MYCROFT"):
-@@ -84,7 +84,10 @@ class LOG:
+@@ -84,7 +84,10 @@ def init(cls):
# Check configs manually, the Mycroft configuration system can't be
# used since it uses the LOG system and would cause horrible cyclic
# dependencies.
@@ -741,7 +746,7 @@ index 0ea391f8f7..788f6df1c3 100644
for conf in confs:
try:
diff --git a/test/unittests/skills/test_skill_updater.py b/test/unittests/skills/test_skill_updater.py
-index 38d4083d7f..d7cc72e3e6 100644
+index 38d4083d7f2..d7cc72e3e67 100644
--- a/test/unittests/skills/test_skill_updater.py
+++ b/test/unittests/skills/test_skill_updater.py
@@ -13,8 +13,9 @@
@@ -755,7 +760,7 @@ index 38d4083d7f..d7cc72e3e6 100644
from unittest.mock import Mock, patch, PropertyMock
from mycroft.skills.skill_updater import SkillUpdater
-@@ -143,7 +144,8 @@ class TestSkillUpdater(MycroftUnitTestBase):
+@@ -143,7 +144,8 @@ def test_installed_skills_path_not_virtual_env(self):
os_patch.return_value = False
updater = SkillUpdater(self.message_bus_mock)
self.assertEqual(
@@ -766,7 +771,7 @@ index 38d4083d7f..d7cc72e3e6 100644
)
diff --git a/test/unittests/util/commented.json b/test/unittests/util/commented.json
-index 87c7d3e2c2..00a581f6df 100644
+index 87c7d3e2c2d..00a581f6df4 100644
--- a/test/unittests/util/commented.json
+++ b/test/unittests/util/commented.json
@@ -54,7 +54,7 @@
@@ -779,7 +784,7 @@ index 87c7d3e2c2..00a581f6df 100644
"server": {
"url": "https://api.mycroft.ai",
diff --git a/test/unittests/util/plain.json b/test/unittests/util/plain.json
-index f8c474139c..eec84631d8 100644
+index f8c474139ce..eec84631d88 100644
--- a/test/unittests/util/plain.json
+++ b/test/unittests/util/plain.json
@@ -36,7 +36,7 @@
@@ -791,6 +796,49 @@ index f8c474139c..eec84631d8 100644
},
"server": {
"url": "https://api.mycroft.ai",
---
-2.30.0
+From db60de5dc7016b13c2de73c7c2b5ca82504e2c2e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=85ke=20Forslund?= <ake.forslund@gmail.com>
+Date: Sun, 31 Jan 2021 08:56:10 +0100
+Subject: [PATCH 3/4] Increase Jenkins timeout
+
+---
+ Jenkinsfile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Jenkinsfile b/Jenkinsfile
+index 9382ad35a91..4db48e1d8a7 100644
+--- a/Jenkinsfile
++++ b/Jenkinsfile
+@@ -52,7 +52,7 @@ pipeline {
+ --label build=${JOB_NAME} \
+ -t voight-kampff-mark-1:${BRANCH_ALIAS} .'
+ echo 'Running Mark I Voight-Kampff Test Suite'
+- timeout(time: 60, unit: 'MINUTES')
++ timeout(time: 90, unit: 'MINUTES')
+ {
+ sh 'mkdir -p $HOME/core/$BRANCH_ALIAS/allure'
+ sh 'mkdir -p $HOME/core/$BRANCH_ALIAS/mycroft-logs'
+
+From 0fd7742287810a8ccd515077d92d85ebee575121 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=85ke=20Forslund?= <ake.forslund@gmail.com>
+Date: Tue, 2 Feb 2021 17:02:32 +0100
+Subject: [PATCH 4/4] wait some more before user input
+
+---
+ .../voight_kampff/features/steps/utterance_responses.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/integrationtests/voight_kampff/features/steps/utterance_responses.py b/test/integrationtests/voight_kampff/features/steps/utterance_responses.py
+index cb703189d0c..e3fcdb733d2 100644
+--- a/test/integrationtests/voight_kampff/features/steps/utterance_responses.py
++++ b/test/integrationtests/voight_kampff/features/steps/utterance_responses.py
+@@ -235,7 +235,7 @@ def check_contains(message):
+ @then('the user replies "{text}"')
+ @then('the user says "{text}"')
+ def then_user_follow_up(context, text):
+- time.sleep(2)
++ time.sleep(3)
+ wait_while_speaking()
+ context.bus.emit(Message('recognizer_loop:utterance',
+ data={'utterances': [text],