def testGettingTheNextCorWithDelay(self):
        GPIO.setmode(GPIO.BCM)

        runner = buttonClickRunner(22, None)
        cc = [
            Choreography.SimpleSequencesText2Speech("one"),
            Choreography.SimpleSequencesText2Speech("two"),
            Choreography.SimpleSequencesText2Speech("three"),
            ]

        runner.SetChoreography(cc)
        sequence = runner.GetNextSequence()
        pprint(sequence.Sequences[0].Text)
        assert sequence.Sequences[0].Text is "one"

        sequence = runner.GetNextSequence()
        pprint(sequence.Sequences[0].Text)
        assert sequence.Sequences[0].Text is "two"

        print runner.LastCall
        runner.LastCall = datetime.datetime.now() - runner.DelayBeforeReset - runner.DelayBeforeReset
        print runner.LastCall

        sequence = runner.GetNextSequence()
        pprint(sequence.Sequences[0].Text)
        assert sequence.Sequences[0].Text is "one"

        sequence = runner.GetNextSequence()
        pprint(sequence.Sequences[0].Text)
        assert sequence.Sequences[0].Text is "two"

        runner.Stop()
        pass
    def testGettingTheNextCor(self):
        GPIO.setmode(GPIO.BCM)

        runner = buttonClickRunner(22, None)
        cc = [
            Choreography.SimpleSequencesText2Speech("one"),
            Choreography.SimpleSequencesText2Speech("two"),
            Choreography.SimpleSequencesText2Speech("three"),
        ]

        runner.SetChoreography(cc)
        sequence = runner.GetNextSequence()
        pprint(sequence.Sequences[0].Text)
        assert sequence.Sequences[0].Text is "one"

        sequence = runner.GetNextSequence()
        pprint(sequence.Sequences[0].Text)
        assert sequence.Sequences[0].Text is "two"

        sequence = runner.GetNextSequence()
        pprint(sequence.Sequences[0].Text)
        assert sequence.Sequences[0].Text is "three"

        sequence = runner.GetNextSequence()
        pprint(sequence.Sequences[0].Text)
        assert sequence.Sequences[0].Text is "three"

        runner.Stop()
        pass
    def testGetInitialString(self):
        GPIO.setmode(GPIO.BCM)
        runner = buttonClickRunner(22, None)
        string = runner.GetInitialString()

        print string
        runner.Stop()
        assert '1 9 2 dot 1 6 8' in string
# configuration
from buttonClickRunner import buttonClickRunner
from models import Passive, Choreography
from pins import *
from twitterListner import TwitterListener
from voiceRecognition import VoiceRecognition

DEBUG = True
MP3PATH = "resources/mp3"

# globals

GlobalTwitterCommunication = TwitterListener()
GlobalCompositionRunner = CompositionRunner()
GlobalCurrentProcess = PassiveManager(GlobalCompositionRunner)
GlobalButtonClickRunner = buttonClickRunner(buttonPin,GlobalCompositionRunner,isButtonSwitch)
GlobalVoiceRecognition = VoiceRecognition()

GlobalCompositionRunner.SetRepeatComposition(GlobalButtonClickRunner.SetLastComposition)
#
# my_thread = threading.Thread(target=GlobalVoiceRecognition.ProcessClips, args=(GlobalCompositionRunner,))
# my_thread.setDaemon(False)
# my_thread.start()

thread.start_new_thread(GlobalVoiceRecognition.ProcessClipsWithNoYield, (GlobalCompositionRunner,))
thread.start_new_thread(GlobalTwitterCommunication.GetTimeLineSteam, (GlobalCompositionRunner,))


app = Flask(__name__)

def add_response_headers(headers={}):