Ejemplo n.º 1
0
def check(bot, update):
    model = Model()
    if model.check_is_exist_chat_id(update.message.chat_id):
        starter = Starter()
        starter.start(parameters=['-silent', '-report'], send_to=update.message.chat_id)
    else:
        bot.sendMessage(chat_id=update.message.chat_id, text="Тебя тут не ждали...")
Ejemplo n.º 2
0
    def executer(self, args):
        print('''Serveur PyUPnP ({})
'''.format(helper.VERSION))

        s = Starter()

        s.parametrer(**vars(args))
        s.executer()
Ejemplo n.º 3
0
    def setUp(self):
        self.mock_config = MagicMock(config.Config)
        self.mock_config.indexer_delay.return_value = 999
        self.mock_config.usb_mount_points.return_value = ['/media']
        self.mock_config.usb_devices_to_ignore.return_value = ['ignore-me']

        self.mock_scheduler = MagicMock(spec=sched.scheduler)
        self.mock_mtp_device = MagicMock(spec=mtp_device.MTPDevice)

        self.mock_usb_device_manager = MagicMock(spec=usb_device_manager.USBDeviceManager)
        self.mock_usb_device_manager.get_devices_to_index.return_value = [('/media/dev1', 'dev1'),
                                                                          ('/media/dev2', 'dev2')]

        self.mock_usb_device = MagicMock(spec=usb_device.USBDevice)

        self.mock_indexer = MagicMock(spec=indexer.Indexer)

        self.test_model = Starter(self.mock_config, self.mock_scheduler, self.mock_mtp_device,
                                  self.mock_usb_device_manager, self.mock_usb_device, self.mock_indexer)
Ejemplo n.º 4
0
class Learner(Cmd):

    prompt = "learnBash>"
    intro = "let's learnBash"

    courses = Starter([BasicCourse])

    def __init__(self):
        Cmd.__init__(self)

    # Operations

    def learn(self):
        self.cmdloop()

    # need to wipe out cmdqueue to ignore cmd line args
    def preloop(self):
        self.cmdqueue = []

    # Commands

    def do_quit(self, line):
        """Quit learnBash"""
        print("Quitting.")
        return True

    def do_courses(self, line):
        """List available courses"""
        print("Available courses:")
        print("\n".join(self.courses.names()))

    def do_start(self, line):
        """Start a course"""
        if not self.courses.start(line):
            print("No such course!")

    def complete_start(self, text, line, begidx, endidx):
        return self.courses.matching(text)
Ejemplo n.º 5
0
class Course(Cmd):

    name = "GenericCourse"

    lessons = Starter([])

    def __init__(self):
        Cmd.__init__(self)
        self.prompt = "{}>".format(self.name)
        self.intro = "Starting {}".format(self.name)

    def start(self):
        self.cmdloop()

    # need to wipe out cmdqueue to ignore cmd line args
    def preloop(self):
        self.cmdqueue = []

    def do_hello(self, line):
        print("Course says hello")

    def do_quit(self, line):
        print("Quitting course: {}".format(self.name))
        return True

    def do_lessons(self, line):
        """List lessons in course"""
        for pos, name in enumerate(self.lessons.names(), start=1):
            print("{}. {}".format(pos, name))

    def do_start(self, line):
        if not self.lessons.start(line):
            print("No such lesson!")

    def complete_start(self, text, line, begidx, endidx):
        return self.lessons.matching(text)
Ejemplo n.º 6
0
def test_day():
    input = Starter(2018, 1).read_from_input_file()
    if test_solution1(input):
        test_solution2(input)
Ejemplo n.º 7
0
class BasicCourse(Course):

    name = "BasicCourse"

    lessons = Starter([EchoLesson])
Ejemplo n.º 8
0
def test_foo():
    s = Starter()
    result = s.foo()
    assert 'foo' == result
Ejemplo n.º 9
0
def test_baz():
    s = Starter()
    result = s._baz('banana')
    assert 'baz' == result
Ejemplo n.º 10
0
def test_bar():
    s = Starter()
    result = s.bar()
    assert 'bar' == result
Ejemplo n.º 11
0
    def __init__(self):
        self.__starter = Starter()
        self.__monitor = Monitor()

        self.__register_url_rules()
Ejemplo n.º 12
0
class RemoteStartAPI:
    app = Flask(__name__)

    def __init__(self):
        self.__starter = Starter()
        self.__monitor = Monitor()

        self.__register_url_rules()

    def __register_url_rules(self):
        self.app.add_url_rule("/", "hello", self.root)
        self.app.add_url_rule("/ignition_on", "ignition_on", self.ignition_on)
        self.app.add_url_rule("/ignition_off", "ignition_off", self.ignition_off)
        self.app.add_url_rule("/doors_open", "doors_open", self.doors_open)
        self.app.add_url_rule("/doors_close", "doors_close", self.doors_close)
        self.app.add_url_rule("/neutral_gear", "neutral_gear", self.neutral_gear)
        self.app.add_url_rule("/engine_start", "engine_start", self.engine_start)
        self.app.add_url_rule("/speed", "speed", self.speed)
        self.app.add_url_rule("/rpm", "rpm", self.rpm)

    @staticmethod
    def root():
        return "Rzabol says hello."

    @staticmethod
    def run_with_connection_error_check(f, *args, **kwargs):
        try:
            return f(*args, **kwargs), 200
        except ConnectionError as e:
            return {"Error": str(e)}, 500

    def ignition_on(self):
        return self.run_with_connection_error_check(self.__starter.ignition_on)

    def ignition_off(self):
        return self.run_with_connection_error_check(self.__starter.ignition_off)

    def doors_open(self):
        return self.run_with_connection_error_check(self.__starter.doors_open)

    def doors_close(self):
        return self.run_with_connection_error_check(self.__starter.doors_close)

    def neutral_gear(self):
        try:
            neutral = self.__starter.is_on_neutral_gear()
            return {"Neutral": bool(neutral)}
        except ConnectionError as e:
            return {"Error": str(e)}, 500

    def engine_start(self):
        time = request.args.get("time", None)
        try:
            if time is not None:
                self.__starter.engine_start(time)
            else:
                self.__starter.engine_start()
        except ConnectionError as e:
            return {"Error": str(e)}, 500
        except OnGearError:
            return {"Error": "Car is on gear!"}, 409
        else:
            return

    def speed(self):
        return {"speed": self.__monitor.get_speed()}

    def rpm(self):
        return {"rpm": self.__monitor.get_rpm()}

    def run(self):
        self.app.run()

    def __del__(self):
        self.__monitor.close()
        self.__starter.close_conn()
Ejemplo n.º 13
0
class TestStarter(unittest.TestCase):

    def setUp(self):
        self.mock_config = MagicMock(config.Config)
        self.mock_config.indexer_delay.return_value = 999
        self.mock_config.usb_mount_points.return_value = ['/media']
        self.mock_config.usb_devices_to_ignore.return_value = ['ignore-me']

        self.mock_scheduler = MagicMock(spec=sched.scheduler)
        self.mock_mtp_device = MagicMock(spec=mtp_device.MTPDevice)

        self.mock_usb_device_manager = MagicMock(spec=usb_device_manager.USBDeviceManager)
        self.mock_usb_device_manager.get_devices_to_index.return_value = [('/media/dev1', 'dev1'),
                                                                          ('/media/dev2', 'dev2')]

        self.mock_usb_device = MagicMock(spec=usb_device.USBDevice)

        self.mock_indexer = MagicMock(spec=indexer.Indexer)

        self.test_model = Starter(self.mock_config, self.mock_scheduler, self.mock_mtp_device,
                                  self.mock_usb_device_manager, self.mock_usb_device, self.mock_indexer)

    def test_it_should_transfer_media_from_an_mtp_device(self):
        self.test_model.start()
        self.mock_mtp_device.transfer_media.assert_called_once_with()

    def test_it_should_use_the_right_mount_points_for_usb_devices(self):
        self.test_model.start()
        self.mock_usb_device_manager.get_devices_to_index.assert_called_once_with(['/media'], ANY)

    def test_it_should_use_the_right_ignore_list_for_usb_devices(self):
        self.test_model.start()
        self.mock_usb_device_manager.get_devices_to_index.assert_called_once_with(ANY, ['ignore-me'])

    def test_it_should_transfer_media_from_usb_devices(self):
        self.test_model.start()
        calls = [call('/media/dev1', 'dev1'), call('/media/dev2', 'dev2')]
        self.mock_usb_device.transfer_media.assert_has_calls(calls)

    def test_it_should_start_the_indexer(self):
        self.test_model.start()
        self.mock_indexer.run.assert_called_once_with()

    def test_it_should_catch_errors_in_the_indexer(self):
        self.mock_indexer.run.side_effect = RuntimeError
        self.test_model.start()

    def test_it_should_use_the_config_value_to_schedule_jobs(self):
        self.test_model.start()
        self.mock_scheduler.enter.assert_called_once_with(999, ANY, ANY, argument=ANY)

    def test_it_should_use_a_zero_priority_when_scheduling_jobs(self):
        self.test_model.start()
        self.mock_scheduler.enter.assert_called_once_with(ANY, 0, ANY, argument=ANY)

    def test_it_should_not_include_any_arguments(self):
        self.test_model.start()
        self.mock_scheduler.enter.assert_called_once_with(ANY, ANY, ANY, argument=())

    def test_it_should_run_the_scheduler(self):
        self.test_model.start()
        self.mock_scheduler.run.assert_called_once_with()