# -*- 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')