Beispiel #1
0
# -*- coding: utf-8 -*-
import logging
import os

from pyutils import get_password, run_bg, is_python_3

from source.plugins.base import PluginItem, Plugin, PluginItemDescription
from source.plugins.todoist_plugin.todoist_api_wrapper import TodoistApiWrapper
from source.plugins.todoist_plugin.todoist_webhooks import get_todoist_webhook_handler
# import todoist
from .proto.config_pb2 import TTodoistConfig
from .proto.todoist_pb2 import TTodoistTask, TTodoistProject

if is_python_3():
    # py3:
    import socketserver  # socketserver.TCPServer

else:
    # py2:
    import SocketServer as socketserver  # SocketServer.TCPServer


class TodoistTaskItem(PluginItem, TTodoistTask):
    dependencies = {
        # PluginItemDescription(plugin='uid', name='uid'),
        PluginItemDescription(plugin='task', name='task'),
    }

    def __init__(self, uid=None, todoist_id=None, text=None, schedule=None, due_date=None, parent=None):
        super(TodoistTaskItem, self).__init__(uid=uid, todoist_id=todoist_id, text=text, schedule=schedule, due_date=due_date, parent=parent)
def main(api_token, output_path):
    from pyutils import connected_to_internet
    if not connected_to_internet():
        raise RuntimeError("Need connection to the internet to generate mock")
    if api_token is None:
        api_token = os.path.join(lib_root, 'config', 'todoist.token')
    if os.path.exists(api_token):
        from pyutils import get_password
        api_token = get_password(api_token)
    else:
        raise RuntimeError("Need api token to generate mock")

    prototype = todoist.TodoistAPI(api_token)
    engine = 'pkl'  # 'json' or 'pkl'
    mock_path = output_path or os.path.join(lib_root, 'app_data', 'mock_TodoistAPI_py{}.{}'.format('3' if is_python_3() else '2', engine))

    from pyutils import Mock
    mock_api = Mock(prototype, dump_path=mock_path, dump_engine=engine)

    # now do sample requests
    mock_api.sync()
    # _ = mock_api.updates # no such field, what was i thinking
    _ = mock_api.activity
    mock_api.commit()
    mock_api.items.all()
    mock_api.projects.all()
 def connect_to_todoist(self, api_token=None):
     if connected_to_internet():
         if api_token is None:
             from dev.old.resources import default_token_path
             api_token = default_token_path
         if os.path.exists(api_token):
             from pyutils import get_token
             api_token = get_token(api_token)
         if True:
             print("WARNING - using mock to generate mock.")
             prototype = TodoistAPI(api_token)
             engine = 'pkl'  # 'json' or 'pkl'
             from secrets import lib_root
             mock_path = os.path.join(lib_root, 'app_data', 'mock_TodoistAPI_py{}.{}'.format('3' if is_python_3() else '2', engine))
             from pyutils import Mock
             self._api = Mock(prototype, dump_path=mock_path, dump_engine=engine)
         else:
             self._api = TodoistAPI(api_token)
     else:
         prototype = TodoistAPI()
         engine = 'pkl'  # 'json' or 'pkl'
         from secrets import lib_root
         mock_path = os.path.join(lib_root, 'app_data', 'mock_TodoistAPI_py{}.{}'.format('3' if is_python_3() else '2', engine))
         from pyutils import Mock
         self._api = Mock(prototype, dump_path=mock_path, dump_engine=engine)
#!/usr/bin/env python
import argparse
import os
import sys

import todoist

sys.path.append('/Users/plavrov/work/pyutils/')
# from secrets import lib_root
from pyutils import is_unix, is_python_3

if not is_python_3():
    import copy_reg
    import types


    def _pickle_method(m):
        if m.im_self is None:
            return getattr, (m.im_class, m.im_func.func_name)
        else:
            return getattr, (m.im_self, m.im_func.func_name)


    copy_reg.pickle(types.MethodType, _pickle_method)

if is_unix():
    lib_root = "/Users/plavrov/work/PersonalAssistant"
else:
    lib_root = "C:\\Users\\Petr\\Desktop\\HomeAutomation\\PersonalAssistant"

sys.path.append(lib_root)
def main():
    prototype = todoist.TodoistAPI()
    engine = 'pkl'  # 'json' or 'pkl'
    mock_path = os.path.join(lib_root, 'app_data', 'mock_TodoistAPI_py{}.{}'.format('3' if is_python_3() else '2', engine))
    from pyutils import Mock
    mock_api = Mock(prototype, dump_path=mock_path, dump_engine=engine)

    print("Following fields are mocked:")
    print(mock_api.mock.keys())

    # now do sample requests
    print("Sync:\n", mock_api.sync().__repr__()[:200])

    # _ = mock_api.updates # no such field, what was i thinking
    print("\n\tActivity:\n", mock_api.activity.__repr__()[:200])
    print("\n\tcommit:\n", mock_api.commit().__repr__()[:200])
    print("\n\titems:\n", mock_api.items.all().__repr__()[:200])
    print("\n\tprojects:\n", mock_api.projects.all().__repr__()[:200])
    print('It seems mock is doing alright')