def start_service(): dispatcher = cherrypy.dispatch.RoutesDispatcher() conf = {'global': { 'request.dispatch': cherrypy.dispatch.MethodDispatcher(), 'tools.staticdir.root': os.path.dirname(os.path.abspath(__file__)), 'server.socket_host':'0.0.0.0' }, '/' : { 'request.dispatch' : dispatcher, }, '/css': { 'tools.staticdir.on': True, 'tools.staticdir.dir': 'css' }, '/js': { 'tools.staticdir.on': True, 'tools.staticdir.dir': 'js' }, '/img': { 'tools.staticdir.on': True, 'tools.staticdir.dir': 'img' } } cherrypy.config.update(conf) app = cherrypy.tree.mount(None, config=conf) if os.path.isfile('HangmanDB.pickle'): print 'loading db' db = pickle.load(file('HangmanDB.pickle')) else: db = { 'games':{}, 'users':{}, 'emails_to_uids':{}, 'username_words_to_uids':{}, 'username_word_starts_to_uids':{}, 'events':[] } if 'ai' not in db['users']: db['users']['ai'] = { 'usermail':"*****@*****.**", 'hashed_pass' : 'ai', 'username': "******", 'friends': [], 'incoming_friend_requests':[], 'outgoing_friend_requests':[], 'profile_image' : 'watson.jpg' } if 'events' not in db: db['events'] = list() #Overwrite DB for testing if len(sys.argv) > 1 and sys.argv[1] == '-d': db = createMockDB() page_handler = Page_Handler(db) game_handler = Game_Handler(db) account_handler = Account_Handler(db) thread.start_new_thread(auto_save, (db,)) connect_page_handler_dispatches(dispatcher, page_handler) connect_game_handler_dispatches(dispatcher, game_handler) connect_account_handler_dispatches(dispatcher, account_handler) cherrypy.quickstart(app)
def letter_completes_word(letter): #try: if letter not in games['2']['correct_letters']: game_handler.guess_letter('2', letter) if letter in games['2']['correct_letters'] and games['2']['win'] == '2': print "> Letter in word, completes word: PASSED" else: print "> Letter in word, completes word: FAILED" #except: # print ">> Letter in word, completes word: FAILED" if __name__ == "__main__": mockDB = createMockDB() global games global game_handler games = mockDB["games"] game_handler = Game_Handler(mockDB) letter_in_word("I") letter_not_in_word("P") letter_already_used("E") letter_completes_word("T") duplicate_phrase("TESTBADWORD") incorrect_phrase("TESTING") correct_phrase("TESTINGWORD")