Repository: MycroftAI/mycroft-core

Issue:
Unittests never seem to finish running
```
mycroft-core-py3) the-kid@thekid-Main:~/Projects/mycroft-core$ ./start.sh unittest
Starting unittest
2017-01-09 21:10:55,710 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/Projects/mycroft-core/mycroft/configuration/mycroft.conf' loaded
2017-01-09 21:10:55,710 - mycroft.configuration - DEBUG - Configuration '/etc/mycroft/mycroft.conf' not found
2017-01-09 21:10:55,710 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/.mycroft/mycroft.conf' loaded
2017-01-09 21:10:55,749 - requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): api.mycroft.ai
2017-01-09 21:10:56,097 - requests.packages.urllib3.connectionpool - DEBUG - "GET /v1/device/5628ed6e-5338-4856-bed3-50c4dca62d58/setting HTTP/1.1" 200 2879
2017-01-09 21:10:56,100 - mycroft.configuration - DEBUG - Configuration 'mycroft.conf' not found

Running tests...
----------------------------------------------------------------------
ALSA lib pcm_dsnoop.c:606:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib dlmisc.c:254:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_pcm_equal.so
ALSA lib dlmisc.c:254:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_pcm_equal.so
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
EEEEEEE.EE....2017-01-09 21:10:56,578 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/Projects/mycroft-core/mycroft/configuration/mycroft.conf' loaded
2017-01-09 21:10:56,579 - mycroft.configuration - DEBUG - Configuration '/etc/mycroft/mycroft.conf' not found
2017-01-09 21:10:56,579 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/.mycroft/mycroft.conf' loaded
.2017-01-09 21:10:56,579 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/Projects/mycroft-core/mycroft/configuration/mycroft.conf' loaded
2017-01-09 21:10:56,579 - mycroft.configuration - DEBUG - Configuration '/etc/mycroft/mycroft.conf' not found
2017-01-09 21:10:56,579 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/.mycroft/mycroft.conf' loaded
.2017-01-09 21:10:56,579 - mycroft.configuration - ERROR - Invalid configuration data type.
2017-01-09 21:10:56,579 - mycroft.configuration - ERROR - Locations: ['/home/the-kid/Projects/mycroft-core/mycroft/configuration/mycroft.conf', '/etc/mycroft/mycroft.conf', '/home/the-kid/.mycroft/mycroft.conf']
2017-01-09 21:10:56,579 - mycroft.configuration - ERROR - Configuration: invalid_type
.2017-01-09 21:10:56,579 - mycroft.configuration - DEBUG - Configuration './invalid/mycroft.conf' not found
2017-01-09 21:10:56,579 - mycroft.configuration - DEBUG - Configuration './invalid_mycroft.conf' not found
..2017-01-09 21:10:56,579 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/Projects/mycroft-core/mycroft/configuration/mycroft.conf' loaded
2017-01-09 21:10:56,580 - mycroft.configuration - DEBUG - Configuration '/etc/mycroft/mycroft.conf' not found
2017-01-09 21:10:56,580 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/.mycroft/mycroft.conf' loaded
.2017-01-09 21:10:56,580 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/Projects/mycroft-core/test/configuration/mycroft.conf' loaded
2017-01-09 21:10:56,580 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/.mycroft/mycroft.conf' loaded
F.2017-01-09 21:10:56,580 - mycroft.configuration - ERROR - Invalid configuration data type.
2017-01-09 21:10:56,580 - mycroft.configuration - ERROR - Locations: None
2017-01-09 21:10:56,580 - mycroft.configuration - ERROR - Configuration: None
.2017-01-09 21:10:56,580 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/Projects/mycroft-core/mycroft/configuration/mycroft.conf' loaded
2017-01-09 21:10:56,580 - mycroft.configuration - DEBUG - Configuration '/etc/mycroft/mycroft.conf' not found
2017-01-09 21:10:56,580 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/.mycroft/mycroft.conf' loaded
2017-01-09 21:10:56,581 - requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): api.mycroft.ai
2017-01-09 21:10:56,929 - requests.packages.urllib3.connectionpool - DEBUG - "GET /v1/device/5628ed6e-5338-4856-bed3-50c4dca62d58/setting HTTP/1.1" 200 2879
.2017-01-09 21:10:56,932 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/Projects/mycroft-core/mycroft/configuration/mycroft.conf' loaded
2017-01-09 21:10:56,932 - mycroft.configuration - DEBUG - Configuration '/etc/mycroft/mycroft.conf' not found
2017-01-09 21:10:56,932 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/.mycroft/mycroft.conf' loaded
2017-01-09 21:10:56,933 - requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): api.mycroft.ai
2017-01-09 21:10:57,278 - requests.packages.urllib3.connectionpool - DEBUG - "GET /v1/device/5628ed6e-5338-4856-bed3-50c4dca62d58/setting HTTP/1.1" 200 2879
2017-01-09 21:10:57,280 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/Projects/mycroft-core/mycroft/configuration/mycroft.conf' loaded
2017-01-09 21:10:57,281 - mycroft.configuration - DEBUG - Configuration '/etc/mycroft/mycroft.conf' not found
2017-01-09 21:10:57,281 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/.mycroft/mycroft.conf' loaded
2017-01-09 21:10:57,281 - requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): api.mycroft.ai
2017-01-09 21:10:57,617 - requests.packages.urllib3.connectionpool - DEBUG - "GET /v1/device/5628ed6e-5338-4856-bed3-50c4dca62d58/setting HTTP/1.1" 200 2879
.2017-01-09 21:10:57,620 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/Projects/mycroft-core/mycroft/configuration/mycroft.conf' loaded
2017-01-09 21:10:57,620 - mycroft.configuration - DEBUG - Configuration '/etc/mycroft/mycroft.conf' not found
2017-01-09 21:10:57,620 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/.mycroft/mycroft.conf' loaded
2017-01-09 21:10:57,620 - requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): api.mycroft.ai
2017-01-09 21:10:57,991 - requests.packages.urllib3.connectionpool - DEBUG - "GET /v1/device/5628ed6e-5338-4856-bed3-50c4dca62d58/setting HTTP/1.1" 200 2879
2017-01-09 21:10:57,993 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/Projects/mycroft-core/test/configuration/mycroft.conf' loaded
2017-01-09 21:10:57,994 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/.mycroft/mycroft.conf' loaded
F2017-01-09 21:10:57,994 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/Projects/mycroft-core/mycroft/configuration/mycroft.conf' loaded
2017-01-09 21:10:57,994 - mycroft.configuration - DEBUG - Configuration '/etc/mycroft/mycroft.conf' not found
2017-01-09 21:10:57,994 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/.mycroft/mycroft.conf' loaded
2017-01-09 21:10:57,995 - requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): api.mycroft.ai
2017-01-09 21:10:58,320 - requests.packages.urllib3.connectionpool - DEBUG - "GET /v1/device/5628ed6e-5338-4856-bed3-50c4dca62d58/setting HTTP/1.1" 200 2879
2017-01-09 21:10:58,322 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/Projects/mycroft-core/mycroft/configuration/mycroft.conf' loaded
2017-01-09 21:10:58,322 - mycroft.configuration - DEBUG - Configuration '/etc/mycroft/mycroft.conf' not found
2017-01-09 21:10:58,322 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/.mycroft/mycroft.conf' loaded
.2017-01-09 21:10:58,323 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/Projects/mycroft-core/mycroft/configuration/mycroft.conf' loaded
2017-01-09 21:10:58,323 - mycroft.configuration - DEBUG - Configuration '/etc/mycroft/mycroft.conf' not found
2017-01-09 21:10:58,323 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/.mycroft/mycroft.conf' loaded
2017-01-09 21:10:58,323 - requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): api.mycroft.ai
2017-01-09 21:10:58,665 - requests.packages.urllib3.connectionpool - DEBUG - "GET /v1/device/5628ed6e-5338-4856-bed3-50c4dca62d58/setting HTTP/1.1" 200 2879
2017-01-09 21:10:58,668 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/Projects/mycroft-core/test/configuration/mycroft.conf' loaded
2017-01-09 21:10:58,668 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/.mycroft/mycroft.conf' loaded
F2017-01-09 21:10:58,668 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/Projects/mycroft-core/mycroft/configuration/mycroft.conf' loaded
2017-01-09 21:10:58,668 - mycroft.configuration - DEBUG - Configuration '/etc/mycroft/mycroft.conf' not found
2017-01-09 21:10:58,668 - mycroft.configuration - DEBUG - Configuration '/home/the-kid/.mycroft/mycroft.conf' loaded
2017-01-09 21:10:58,669 - requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): api.mycroft.ai
2017-01-09 21:10:59,009 - requests.packages.urllib3.connectionpool - DEBUG - "GET /v1/device/5628ed6e-5338-4856-bed3-50c4dca62d58/setting HTTP/1.1" 200 2879
2017-01-09 21:10:59,012 - requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): api.mycroft.ai
2017-01-09 21:10:59,334 - requests.packages.urllib3.connectionpool - DEBUG - "GET /v1/device/5628ed6e-5338-4856-bed3-50c4dca62d58/setting HTTP/1.1" 200 2879
.2017-01-09 21:10:59,337 - mycroft.configuration - DEBUG - Remote configuration not activated.
...F.F.....F......F...................
** (process:17916): WARNING **: Trying to register gtype 'GMountMountFlags' as enum when in fact it is of type 'GFlags'

** (process:17916): WARNING **: Trying to register gtype 'GDriveStartFlags' as enum when in fact it is of type 'GFlags'

** (process:17916): WARNING **: Trying to register gtype 'GSocketMsgFlags' as enum when in fact it is of type 'GFlags'
................Expected UpdateConfigurationPhrase: update configuration, Actual: None
F..........................Expected DevicePairingPhrase: pair my device, Actual: None
FExpected DevicePairingPhrase: register my device, Actual: None
F.....................................
======================================================================
ERROR [0.177s]: test_ignore_wakeword_when_sleeping (client.audio_consumer_test.AudioConsumerTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/client/audio_consumer_test.py", line 60, in setUp
    self.loop.wakeup_recognizer.phonemes, "1e-16"),
  File "/home/the-kid/Projects/mycroft-core/mycroft/client/speech/local_recognizer.py", line 40, in __init__
    self.decoder = Decoder(self.create_config(dict_name))
  File "/home/the-kid/Projects/mycroft-core/mycroft/client/speech/local_recognizer.py", line 56, in create_config
    config.set_float('-kws_threshold', self.threshold)
  File "/home/the-kid/.virtualenvs/mycroft/local/lib/python2.7/site-packages/sphinxbase/sphinxbase.py", line 138, in set_float
    return _sphinxbase.Config_set_float(self, key, val)
TypeError: in method 'Config_set_float', argument 3 of type 'double'

======================================================================
ERROR [0.028s]: test_record (client.audio_consumer_test.AudioConsumerTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/client/audio_consumer_test.py", line 60, in setUp
    self.loop.wakeup_recognizer.phonemes, "1e-16"),
  File "/home/the-kid/Projects/mycroft-core/mycroft/client/speech/local_recognizer.py", line 40, in __init__
    self.decoder = Decoder(self.create_config(dict_name))
  File "/home/the-kid/Projects/mycroft-core/mycroft/client/speech/local_recognizer.py", line 56, in create_config
    config.set_float('-kws_threshold', self.threshold)
  File "/home/the-kid/.virtualenvs/mycroft/local/lib/python2.7/site-packages/sphinxbase/sphinxbase.py", line 138, in set_float
    return _sphinxbase.Config_set_float(self, key, val)
TypeError: in method 'Config_set_float', argument 3 of type 'double'

======================================================================
ERROR [0.028s]: test_stop (client.audio_consumer_test.AudioConsumerTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/client/audio_consumer_test.py", line 60, in setUp
    self.loop.wakeup_recognizer.phonemes, "1e-16"),
  File "/home/the-kid/Projects/mycroft-core/mycroft/client/speech/local_recognizer.py", line 40, in __init__
    self.decoder = Decoder(self.create_config(dict_name))
  File "/home/the-kid/Projects/mycroft-core/mycroft/client/speech/local_recognizer.py", line 56, in create_config
    config.set_float('-kws_threshold', self.threshold)
  File "/home/the-kid/.virtualenvs/mycroft/local/lib/python2.7/site-packages/sphinxbase/sphinxbase.py", line 138, in set_float
    return _sphinxbase.Config_set_float(self, key, val)
TypeError: in method 'Config_set_float', argument 3 of type 'double'

======================================================================
ERROR [0.028s]: test_wakeup (client.audio_consumer_test.AudioConsumerTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/client/audio_consumer_test.py", line 60, in setUp
    self.loop.wakeup_recognizer.phonemes, "1e-16"),
  File "/home/the-kid/Projects/mycroft-core/mycroft/client/speech/local_recognizer.py", line 40, in __init__
    self.decoder = Decoder(self.create_config(dict_name))
  File "/home/the-kid/Projects/mycroft-core/mycroft/client/speech/local_recognizer.py", line 56, in create_config
    config.set_float('-kws_threshold', self.threshold)
  File "/home/the-kid/.virtualenvs/mycroft/local/lib/python2.7/site-packages/sphinxbase/sphinxbase.py", line 138, in set_float
    return _sphinxbase.Config_set_float(self, key, val)
TypeError: in method 'Config_set_float', argument 3 of type 'double'

======================================================================
ERROR [0.028s]: test_wakeword (client.audio_consumer_test.AudioConsumerTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/client/audio_consumer_test.py", line 60, in setUp
    self.loop.wakeup_recognizer.phonemes, "1e-16"),
  File "/home/the-kid/Projects/mycroft-core/mycroft/client/speech/local_recognizer.py", line 40, in __init__
    self.decoder = Decoder(self.create_config(dict_name))
  File "/home/the-kid/Projects/mycroft-core/mycroft/client/speech/local_recognizer.py", line 56, in create_config
    config.set_float('-kws_threshold', self.threshold)
  File "/home/the-kid/.virtualenvs/mycroft/local/lib/python2.7/site-packages/sphinxbase/sphinxbase.py", line 138, in set_float
    return _sphinxbase.Config_set_float(self, key, val)
TypeError: in method 'Config_set_float', argument 3 of type 'double'

======================================================================
ERROR [0.028s]: test_wakeword_in_beginning (client.audio_consumer_test.AudioConsumerTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/client/audio_consumer_test.py", line 60, in setUp
    self.loop.wakeup_recognizer.phonemes, "1e-16"),
  File "/home/the-kid/Projects/mycroft-core/mycroft/client/speech/local_recognizer.py", line 40, in __init__
    self.decoder = Decoder(self.create_config(dict_name))
  File "/home/the-kid/Projects/mycroft-core/mycroft/client/speech/local_recognizer.py", line 56, in create_config
    config.set_float('-kws_threshold', self.threshold)
  File "/home/the-kid/.virtualenvs/mycroft/local/lib/python2.7/site-packages/sphinxbase/sphinxbase.py", line 138, in set_float
    return _sphinxbase.Config_set_float(self, key, val)
TypeError: in method 'Config_set_float', argument 3 of type 'double'

======================================================================
ERROR [0.028s]: test_word_extraction (client.audio_consumer_test.AudioConsumerTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/client/audio_consumer_test.py", line 60, in setUp
    self.loop.wakeup_recognizer.phonemes, "1e-16"),
  File "/home/the-kid/Projects/mycroft-core/mycroft/client/speech/local_recognizer.py", line 40, in __init__
    self.decoder = Decoder(self.create_config(dict_name))
  File "/home/the-kid/Projects/mycroft-core/mycroft/client/speech/local_recognizer.py", line 56, in create_config
    config.set_float('-kws_threshold', self.threshold)
  File "/home/the-kid/.virtualenvs/mycroft/local/lib/python2.7/site-packages/sphinxbase/sphinxbase.py", line 138, in set_float
    return _sphinxbase.Config_set_float(self, key, val)
TypeError: in method 'Config_set_float', argument 3 of type 'double'

======================================================================
ERROR [0.000s]: testRecognitionInLongerUtterance (client.local_recognizer_test.LocalRecognizerTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/client/local_recognizer_test.py", line 16, in setUp
    "en-us")
TypeError: unbound method create_mycroft_recognizer() must be called with RecognizerLoop instance as first argument (got int instance instead)

======================================================================
ERROR [0.000s]: testRecognizerWrapper (client.local_recognizer_test.LocalRecognizerTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/client/local_recognizer_test.py", line 16, in setUp
    "en-us")
TypeError: unbound method create_mycroft_recognizer() must be called with RecognizerLoop instance as first argument (got int instance instead)

======================================================================
ERROR [0.000s]: test_load_with_override_default (configuration.__init__.ConfigurationLoaderTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/configuration/__init__.py", line 76, in test_load_with_override_default
    self.assert_config(config, 'pt-br', 'espeak', 'f1')
  File "/home/the-kid/Projects/mycroft-core/test/configuration/__init__.py", line 30, in assert_config
    self.assertEquals(lan, lang)
AssertionError: u'en-us' != 'pt-br'

======================================================================
ERROR [0.374s]: test_load_get_with_locations (configuration.__init__.ConfigurationManagerTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/configuration/__init__.py", line 140, in test_load_get_with_locations
    self.assert_config(config, 'pt-br', 'espeak', 'f1')
  File "/home/the-kid/Projects/mycroft-core/test/configuration/__init__.py", line 30, in assert_config
    self.assertEquals(lan, lang)
AssertionError: u'en-us' != 'pt-br'

======================================================================
ERROR [0.345s]: test_load_local_with_locations (configuration.__init__.ConfigurationManagerTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/configuration/__init__.py", line 127, in test_load_local_with_locations
    self.assert_config(config, 'pt-br', 'espeak', 'f1')
  File "/home/the-kid/Projects/mycroft-core/test/configuration/__init__.py", line 30, in assert_config
    self.assertEquals(lan, lang)
AssertionError: u'en-us' != 'pt-br'

======================================================================
ERROR [0.001s]: test_basic_information_pod (skills.wolfram_alpha.__init__.WolframAlphaTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/skills/wolfram_alpha/__init__.py", line 55, in test_basic_information_pod
    self.assertEqual(self.skill.get_result(res), "Born in 1997")
AssertionError: 'Born ' != 'Born in 1997'

======================================================================
ERROR [0.000s]: test_definition_pod (skills.wolfram_alpha.__init__.WolframAlphaTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/skills/wolfram_alpha/__init__.py", line 65, in test_definition_pod
    "a cat is a feline")
AssertionError: 'a cat' != 'a cat is a feline'

======================================================================
ERROR [0.000s]: test_notable_facts_pod (skills.wolfram_alpha.__init__.WolframAlphaTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/skills/wolfram_alpha/__init__.py", line 50, in test_notable_facts_pod
    self.assertEqual(self.skill.get_result(res), "PeopleData")
AssertionError: 'Peopl' != 'PeopleData'

======================================================================
ERROR [0.000s]: test_formatted_time_days (skills.scheduled_skills.ScheduledSkillTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/skills/scheduled_skills.py", line 31, in test_formatted_time_days
    date.strftime("%A, %B %d, %Y at %H:%M"))
AssertionError: '11 January, 2017 at 21:10' != 'Wednesday, January 11, 2017 at 21:10'

======================================================================
ERROR [0.054s]: test_IntentValidation[configuration:sample1] (skills.discover_tests.IntentTestSequence)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/skills/discover_tests.py", line 34, in test
    SkillTest(a, b, self.emitter).run()
  File "/home/the-kid/Projects/mycroft-core/test/skills/skill_tester.py", line 64, in run
    Message('recognizer_loop:utterance', event))
  File "/home/the-kid/.virtualenvs/mycroft/local/lib/python2.7/site-packages/pyee/__init__.py", line 113, in emit
    f(*args, **kwargs)
  File "/home/the-kid/Projects/mycroft-core/mycroft/skills/intent/__init__.py", line 58, in handle_utterance
    self.emitter.emit(reply)
  File "/home/the-kid/Projects/mycroft-core/test/skills/skill_tester.py", line 25, in emit
    self.emitter.emit(event_name, event, *args, **kwargs)
  File "/home/the-kid/.virtualenvs/mycroft/local/lib/python2.7/site-packages/pyee/__init__.py", line 113, in emit
    f(*args, **kwargs)
  File "/home/the-kid/.virtualenvs/mycroft/local/lib/python2.7/site-packages/pyee/__init__.py", line 127, in g
    f(*args, **kwargs)
  File "/home/the-kid/Projects/mycroft-core/test/skills/skill_tester.py", line 58, in compare
    self.compare_intents(example_json.get('intent'), intent.data)
  File "/home/the-kid/Projects/mycroft-core/test/skills/skill_tester.py", line 51, in compare_intents
    assert False
AssertionError

======================================================================
ERROR [0.057s]: test_IntentValidation[pairing:sample1] (skills.discover_tests.IntentTestSequence)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/skills/discover_tests.py", line 34, in test
    SkillTest(a, b, self.emitter).run()
  File "/home/the-kid/Projects/mycroft-core/test/skills/skill_tester.py", line 64, in run
    Message('recognizer_loop:utterance', event))
  File "/home/the-kid/.virtualenvs/mycroft/local/lib/python2.7/site-packages/pyee/__init__.py", line 113, in emit
    f(*args, **kwargs)
  File "/home/the-kid/Projects/mycroft-core/mycroft/skills/intent/__init__.py", line 58, in handle_utterance
    self.emitter.emit(reply)
  File "/home/the-kid/Projects/mycroft-core/test/skills/skill_tester.py", line 25, in emit
    self.emitter.emit(event_name, event, *args, **kwargs)
  File "/home/the-kid/.virtualenvs/mycroft/local/lib/python2.7/site-packages/pyee/__init__.py", line 113, in emit
    f(*args, **kwargs)
  File "/home/the-kid/.virtualenvs/mycroft/local/lib/python2.7/site-packages/pyee/__init__.py", line 127, in g
    f(*args, **kwargs)
  File "/home/the-kid/Projects/mycroft-core/test/skills/skill_tester.py", line 58, in compare
    self.compare_intents(example_json.get('intent'), intent.data)
  File "/home/the-kid/Projects/mycroft-core/test/skills/skill_tester.py", line 51, in compare_intents
    assert False
AssertionError

======================================================================
ERROR [0.056s]: test_IntentValidation[pairing:sample2] (skills.discover_tests.IntentTestSequence)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/the-kid/Projects/mycroft-core/test/skills/discover_tests.py", line 34, in test
    SkillTest(a, b, self.emitter).run()
  File "/home/the-kid/Projects/mycroft-core/test/skills/skill_tester.py", line 64, in run
    Message('recognizer_loop:utterance', event))
  File "/home/the-kid/.virtualenvs/mycroft/local/lib/python2.7/site-packages/pyee/__init__.py", line 113, in emit
    f(*args, **kwargs)
  File "/home/the-kid/Projects/mycroft-core/mycroft/skills/intent/__init__.py", line 58, in handle_utterance
    self.emitter.emit(reply)
  File "/home/the-kid/Projects/mycroft-core/test/skills/skill_tester.py", line 25, in emit
    self.emitter.emit(event_name, event, *args, **kwargs)
  File "/home/the-kid/.virtualenvs/mycroft/local/lib/python2.7/site-packages/pyee/__init__.py", line 113, in emit
    f(*args, **kwargs)
  File "/home/the-kid/.virtualenvs/mycroft/local/lib/python2.7/site-packages/pyee/__init__.py", line 127, in g
    f(*args, **kwargs)
  File "/home/the-kid/Projects/mycroft-core/test/skills/skill_tester.py", line 58, in compare
    self.compare_intents(example_json.get('intent'), intent.data)
  File "/home/the-kid/Projects/mycroft-core/test/skills/skill_tester.py", line 51, in compare_intents
    assert False
AssertionError

----------------------------------------------------------------------
Ran 149 tests in 9.537s

FAILED (errors=19)

Generating XML reports...
2017-01-09 21:20:59,361 - requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): api.mycroft.ai
2017-01-09 21:20:59,488 - requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): api.mycroft.ai
2017-01-09 21:20:59,547 - requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): api.mycroft.ai
2017-01-09 21:20:59,600 - requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): api.mycroft.ai
2017-01-09 21:20:59,653 - requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): api.mycroft.ai
2017-01-09 21:20:59,709 - requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): api.mycroft.ai
```


Discussion:
Update with further log information:

```
2017-01-09 22:24:43,299 - mycroft.messagebus.client.ws - ERROR - Exception("Uncaught 'error' event.",)
2017-01-09 22:24:43,299 - mycroft.messagebus.client.ws - WARNING - WS Client will reconnect in 60 seconds.
2017-01-09 22:25:43,356 - mycroft.messagebus.client.ws - INFO - Connected
2017-01-09 22:25:43,356 - Skills - DEBUG - {"type": "connected", "data": {}, "context": null}
2017-01-09 22:25:43,358 - Skills - DEBUG - {"type": "enclosure.reset", "data": {}, "context": null}
2017-01-09 22:30:46,518 - requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): api.mycroft.ai
2017-01-09 22:30:46,868 - requests.packages.urllib3.connectionpool - DEBUG - "GET /v1/device/5628ed6e-5338-4856-bed3-50c4dca62d58/setting HTTP/1.1" 200 2879
2017-01-09 22:30:46,872 - Skills - DEBUG - {"type": "configuration.updated", "data": {"systemUnit":
```

Resolving patch:
diff --git a/mycroft/skills/core.py b/mycroft/skills/core.py
--- a/mycroft/skills/core.py
+++ b/mycroft/skills/core.py
@@ -142,15 +142,22 @@ def create_skill_descriptor(skill_folder):
 
 
 def load_skills(emitter, skills_root=SKILLS_BASEDIR):
+    skill_list = []
     skills = get_skills(skills_root)
     for skill in skills:
         if skill['name'] in PRIMARY_SKILLS:
-            load_skill(skill, emitter)
+            skill_list.append(load_skill(skill, emitter))
 
     for skill in skills:
         if (skill['name'] not in PRIMARY_SKILLS and
                 skill['name'] not in BLACKLISTED_SKILLS):
-            load_skill(skill, emitter)
+            skill_list.append(load_skill(skill, emitter))
+    return skill_list
+
+
+def unload_skills(skills):
+    for s in skills:
+        s.cleanup()
 
 
 class MycroftSkill(object):
@@ -262,3 +269,7 @@ def stop(self):
     def is_stop(self):
         passed_time = time.time() - self.stop_time
         return passed_time < self.stop_threshold
+
+    def cleanup(self):
+        """ Clean up running threads, etc. """
+        pass
diff --git a/mycroft/skills/scheduled_skills.py b/mycroft/skills/scheduled_skills.py
--- a/mycroft/skills/scheduled_skills.py
+++ b/mycroft/skills/scheduled_skills.py
@@ -113,6 +113,11 @@ def get_times(self):
     def notify(self, timestamp):
         pass
 
+    def cleanup(self):
+        """ Cancel timer making the skill ready for shutdown """
+        if self.timer:
+            self.timer.cancel()
+
 
 class ScheduledCRUDSkill(ScheduledSkill):
     """


Test patch:
diff --git a/test/skills/discover_tests.py b/test/skills/discover_tests.py
--- a/test/skills/discover_tests.py
+++ b/test/skills/discover_tests.py
@@ -50,8 +50,13 @@ class IntentTestSequence(unittest.TestCase):
     __metaclass__ = IntentTestSequenceMeta
 
     def setUp(self):
-        self.emitter = MockSkillsLoader(
-            os.path.join(PROJECT_ROOT, 'mycroft', 'skills')).load_skills()
+        self.loader = MockSkillsLoader(
+            os.path.join(PROJECT_ROOT, 'mycroft', 'skills'))
+        self.emitter = self.loader.load_skills()
+
+    def tearDown(self):
+        self.loader.unload_skills()
+
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/test/skills/skill_tester.py b/test/skills/skill_tester.py
--- a/test/skills/skill_tester.py
+++ b/test/skills/skill_tester.py
@@ -3,7 +3,7 @@
 from pyee import EventEmitter
 
 from mycroft.messagebus.message import Message
-from mycroft.skills.core import load_skills
+from mycroft.skills.core import load_skills, unload_skills
 
 __author__ = 'seanfitz'
 
@@ -31,9 +31,12 @@ def __init__(self, skills_root):
         self.emitter = RegistrationOnlyEmitter()
 
     def load_skills(self):
-        load_skills(self.emitter, self.skills_root)
+        self.skills = load_skills(self.emitter, self.skills_root)
         return self.emitter.emitter  # kick out the underlying emitter
 
+    def unload_skills(self):
+        unload_skills(self.skills)
+
 
 class SkillTest(object):
     def __init__(self, skill, example, emitter):