예제 #1
0
 def setUp(self):
     self.say = Say(lambda *ar, **kw: False)
     self.ask = Ask(self.say)
예제 #2
0
class TestAskFunctions(unittest.TestCase):
    """Тестирование ввода данных"""
    
    def setUp(self):
        self.say = Say(lambda *ar, **kw: False)
        self.ask = Ask(self.say)
    
    # рандом
    def test_dice(self):
        probability = 90
        self.ask.random_int_func = lambda *args: 10
        self.assertTrue(self.ask.dice(probability))
        
        self.ask.random_int_func = lambda *args: 99
        self.assertFalse(self.ask.dice(probability))
    
    
    # фигня
    def test_rand(self):
        self.assertIsInstance(self.ask.rand(990, 1000), int)
        self.assertIsInstance(self.ask.frand(0.1, 10), float)
    
    
    # да-нет
    def test_yesno(self):
        for answer in ["", "1", "y", "Yes", "yes", "YES", "111"]:
            with self.subTest("Test for Yes", answer=answer):
                self.ask.input_func = lambda: answer.lower()
                self.assertTrue(self.ask.yesno(prompt="Yes?", default=True),
                                msg="'{:s}' should be Yes".format(answer))
        
        for answer in ["0", "n", "No", "000", "wtf", "1dg6seq112"]:
            with self.subTest("Test for No", answer=answer):
                self.ask.input_func = lambda: answer.lower()
                self.assertFalse(self.ask.yesno(prompt="Yes?", default=True),
                                msg="'{:s}' should be No".format(answer))
        
    
    # ввод чисел
    def test_good_number(self):
        max = 100
        for i in ["56", " 56   "]:
            with self.subTest("Good numbers", i=i):
                self.ask.input_func = lambda: i
                num, error, msg = self.ask.number("Number?", max)
                self.assertEqual(num, 56, msg="Got wrong number")
                self.assertFalse(error, msg="'error' param isn't False")
                self.assertEqual(msg, "", msg="'msg' param not empty string")
                
    def test_bad_number(self):
        max = 100
        for i in ["56.6", " 56,5   ", "56 56 ", "wtf ", "56wtf", "wtf56"]:
            with self.subTest("Good numbers", i=i):
                self.ask.input_func = lambda: i
                num, error, msg = self.ask.number("Number?", max)
                self.assertEqual(num, -1, msg="Is '{:s}' number?".format(i))
                self.assertTrue(error, msg="'error' param is False, should be True")
                self.assertEqual(msg, "Это не число!", msg="'msg' is wrong")
    
    def test_number_more_than_max(self):
        max = 100
        error_msg = "more than max"
        for i in ["120", " 120   "]:
            with self.subTest("Number more than max", i=i):
                self.ask.input_func = lambda: i
                num, error, msg = self.ask.number("Number?", max, error_msg=error_msg)
                self.assertEqual(num, max, msg="Is '{:s}' a number?".format(i))
                self.assertTrue(error, msg="'error' param is False, should be True")
                self.assertEqual(msg, error_msg, msg="'msg' is wrong")
    

    # ввод распределения зерна - перенести в маркет
    @unittest.skip("Corn moved to Disrtibute class")
    def test_corn(self):
        max = 1000
        for answer in ["110 230", "110,  230", "  110 -   230.   ", "110. 230. "]:
            with self.subTest("Test corn", answer=answer):
                [food, seed] = self.ask.corn(max, input_func=lambda: answer, try_once=True)
                self.assertTrue(food == 110 and seed == 230)
    
    @unittest.skip("Corn moved to Disrtibute class")
    def test_corn_food_not_enough(self):
        max = 1000
        for answer in ["1100 230", "1100,  230", "  1100 -   230.   ", "1100. 230. "]:
            with self.subTest("Test corn more food than max", answer=answer):
                [food, seed] = self.ask.corn(max, input_func=lambda: answer, try_once=True)
                self.assertTrue(food < 0 and seed < 0)
    
    @unittest.skip("Corn moved to Disrtibute class")
    def test_corn_seed_not_enough(self):
        max = 1000
        for answer in ["950 230", "950,  230", "  950 -   230.   ", "950. 230. "]:
            with self.subTest("Test corn more food than max", answer=answer):
                [food, seed] = self.ask.corn(max, input_func=lambda: answer, try_once=True)
                self.assertTrue(food == 950 and seed == 50)
예제 #3
0
from bing import Bing
from yahoo import Yahoo
from ask import Ask
from yandex import Yandex
from baidu import Baidu
from exalead import Exalead
from quora import Quora
from youtube import Youtube
from parsijoo import Parsijoo

scrapers = {
    'g': Google(),
    'b': Bing(),
    'y': Yahoo(),
    'd': Duckduckgo(),
    'a': Ask(),
    'yd': Yandex(),
    'u': Baidu(),
    'e': Exalead(),
    'q': Quora(),
    't': Youtube(),
    'p': Parsijoo()
}


def read_in():
    lines = sys.stdin.readlines()
    return json.loads(lines[0])


def small_test():
예제 #4
0
from flask import Flask, request, make_response, Response
import json
from collections import defaultdict
from tokens import SLACK_BOT_TOKEN, SLACK_VERIFICATION_TOKEN
from slackclient import SlackClient
from vote import Vote
from ask import Ask

slack_client = SlackClient(SLACK_BOT_TOKEN)
app = Flask(__name__)

feedback_id = 0
vote_id = 0

asker = Ask()
voter = Vote()
slasher = {asker.command: asker, voter.command: voter}

#TODO: Add checks for all responses from slack api calls

store = {}

# converted to following structure for multi user answering support
# dict store
# top level: per question/command (callback_id)
#   users: list
#   counter: defaultdict(int)
#   ques_ts: public message_ts
#   admin_ts: admin message_ts
# EXAMPLE:
# store = {"feedback1": {"users": [], "counter": defaultdict(int), "ques_ts": "1503435956.000247", "admin_ts": "1503484268.000285"}}
예제 #5
0
파일: main.py 프로젝트: bonus-tm/euforia
import random, sys, locale
locale.setlocale(locale.LC_ALL, 'ru_RU.utf-8')
sys.path.append('./events')

# import main modules
from data import Data
from say import Say
from info import Info
from ask import Ask
from act import Act


# init main modules
say = Say()
ask = Ask(say)
data = Data(ask)
info = Info(data)
act = Act(data, ask)

# import events modules
# from market import Market
# from distribute import Distribute
# from vizier import Vizier
from caravan import Caravan
# from church import Church
# from inheritance import Inheritance
#
# # init event modules
events = [
#     Market(),
예제 #6
0
from ask import Ask
from baidu import Baidu
from bing import Bing
from dailymotion import Dailymotion
from duckduckgo import Duckduckgo
from exalead import Exalead
from google import Google
from mojeek import Mojeek
from parsijoo import Parsijoo
from quora import Quora
from yahoo import Yahoo
from yandex import Yandex
from youtube import Youtube

scrapers = {
    'ask': Ask(),
    'baidu': Baidu(),
    'bing': Bing(),
    'dailymotion': Dailymotion(),
    'duckduckgo': Duckduckgo(),
    'exalead': Exalead(),
    'google': Google(),
    'mojeek': Mojeek(),
    'parsijoo': Parsijoo(),
    'quora': Quora(),
    'yahoo': Yahoo(),
    'yandex': Yandex(),
    'youtube': Youtube()
}