68 lines
2.5 KiB
Python
68 lines
2.5 KiB
Python
|
|
import unittest
|
||
|
|
from mock import patch, MagicMock
|
||
|
|
from flask import Flask
|
||
|
|
from flask_ask import Ask, audio
|
||
|
|
from flask_ask.models import _Field
|
||
|
|
|
||
|
|
|
||
|
|
class AudioUnitTests(unittest.TestCase):
|
||
|
|
|
||
|
|
def setUp(self):
|
||
|
|
self.ask_patcher = patch('flask_ask.core.find_ask', return_value=Ask())
|
||
|
|
self.ask_patcher.start()
|
||
|
|
self.context_patcher = patch('flask_ask.models.context', return_value=MagicMock())
|
||
|
|
self.context_patcher.start()
|
||
|
|
|
||
|
|
def tearDown(self):
|
||
|
|
self.ask_patcher.stop()
|
||
|
|
self.context_patcher.stop()
|
||
|
|
|
||
|
|
def test_token_generation(self):
|
||
|
|
""" Confirm we get a new token when setting a stream url """
|
||
|
|
audio_item = audio()._audio_item(stream_url='https://fakestream', offset=123)
|
||
|
|
self.assertEqual(36, len(audio_item['stream']['token']))
|
||
|
|
self.assertEqual(123, audio_item['stream']['offsetInMilliseconds'])
|
||
|
|
|
||
|
|
def test_custom_token(self):
|
||
|
|
""" Check to see that the provided opaque token remains constant"""
|
||
|
|
token = "hello_world"
|
||
|
|
audio_item = audio()._audio_item(stream_url='https://fakestream', offset=10, opaque_token=token)
|
||
|
|
self.assertEqual(token, audio_item['stream']['token'])
|
||
|
|
self.assertEqual(10, audio_item['stream']['offsetInMilliseconds'])
|
||
|
|
|
||
|
|
|
||
|
|
class AskStreamHandlingTests(unittest.TestCase):
|
||
|
|
|
||
|
|
def setUp(self):
|
||
|
|
fake_context = {'System': {'user': {'userId': 'dave'}}}
|
||
|
|
self.context_patcher = patch.object(Ask, 'context', return_value=fake_context)
|
||
|
|
self.context_patcher.start()
|
||
|
|
self.request_patcher = patch.object(Ask, 'request', return_value=MagicMock())
|
||
|
|
self.request_patcher.start()
|
||
|
|
|
||
|
|
def tearDown(self):
|
||
|
|
self.context_patcher.stop()
|
||
|
|
self.request_patcher.stop()
|
||
|
|
|
||
|
|
def test_setting_and_getting_current_stream(self):
|
||
|
|
ask = Ask()
|
||
|
|
with patch('flask_ask.core.find_ask', return_value=ask):
|
||
|
|
self.assertEqual(_Field(), ask.current_stream)
|
||
|
|
|
||
|
|
stream = _Field()
|
||
|
|
stream.__dict__.update({'token': 'asdf', 'offsetInMilliseconds': 123, 'url': 'junk'})
|
||
|
|
with patch('flask_ask.core.top_stream', return_value=stream):
|
||
|
|
self.assertEqual(stream, ask.current_stream)
|
||
|
|
|
||
|
|
def test_from_directive_call(self):
|
||
|
|
ask = Ask()
|
||
|
|
fake_stream = _Field()
|
||
|
|
fake_stream.__dict__.update({'token':'fake'})
|
||
|
|
with patch('flask_ask.core.top_stream', return_value=fake_stream):
|
||
|
|
from_buffer = ask._from_directive()
|
||
|
|
self.assertEqual(fake_stream, from_buffer)
|
||
|
|
|
||
|
|
|
||
|
|
if __name__ == '__main__':
|
||
|
|
unittest.main()
|