diff --git a/odoo-stubs/tests/__init__.pyi b/odoo-stubs/tests/__init__.pyi new file mode 100644 index 0000000..11d90a7 --- /dev/null +++ b/odoo-stubs/tests/__init__.pyi @@ -0,0 +1,2 @@ +from . import common +from .common import * \ No newline at end of file diff --git a/odoo-stubs/tests/common.pyi b/odoo-stubs/tests/common.pyi new file mode 100644 index 0000000..f0113ac --- /dev/null +++ b/odoo-stubs/tests/common.pyi @@ -0,0 +1,162 @@ +# Stubs for odoo.tests.common (Python 3) +# +# NOTE: This dynamically typed stub was automatically generated by stubgen. + +import collections +import unittest +from typing import Any, Optional + +from ..api import Environment +from ..modules.registry import Registry +from ..sql_db import Cursor + +ADDONS_PATH: Any +HOST: str +PORT: Any +ADMIN_USER_ID: Any + +def get_db_name(): ... + +DB: Any + +def at_install(flag: Any): ... +def post_install(flag: Any): ... +def new_test_user(env: Any, login: str = ..., groups: str = ..., context: Optional[Any] = ..., **kwargs: Any): ... + +class TreeCase(unittest.TestCase): + def __init__(self, methodName: str = ...) -> None: ... + def assertTreesEqual(self, n1: Any, n2: Any, msg: Optional[Any] = ...) -> None: ... + +class MetaCase(type): + def __init__(cls, name: Any, bases: Any, attrs: Any) -> None: ... + +class BaseCase(TreeCase): + longMessage: bool = ... + warm: bool = ... + registry: Registry = ... + cr: Cursor = ... + env: Environment = ... + def cursor(self): ... + @property + def uid(self): ... + @uid.setter + def uid(self, user: Any) -> None: ... + def ref(self, xid: Any): ... + def browse_ref(self, xid: Any): ... + def assertRaises(self, exception: Any, func: Optional[Any] = ..., *args: Any, **kwargs: Any): ... + def assertQueryCount(self, default: int = ..., **counters: Any): ... + def assertRecordValues(self, records: Any, expected_values: Any): ... + def shortDescription(self): ... + def assertItemsEqual(self, a: Any, b: Any, msg: Optional[Any] = ...) -> None: ... + def __getattr__(self, item): ... + +class TransactionCase(BaseCase): + def setUp(self): ... + def patch(self, obj: Any, key: Any, val: Any) -> None: ... + def patch_order(self, model: Any, order: Any) -> None: ... + +class SingleTransactionCase(BaseCase): + @classmethod + def setUpClass(cls) -> None: ... + @classmethod + def tearDownClass(cls) -> None: ... + +savepoint_seq: Any + +class SavepointCase(SingleTransactionCase): + def setUp(self) -> None: ... + def tearDown(self) -> None: ... + +class ChromeBrowser: + devtools_port: Any = ... + ws_url: str = ... + ws: Any = ... + request_id: int = ... + user_data_dir: Any = ... + chrome_process: Any = ... + screencast_frames: Any = ... + sigxcpu_handler: Any = ... + def __init__(self, logger: Any) -> None: ... + def signal_handler(self, sig: Any, frame: Any) -> None: ... + def stop(self) -> None: ... + @property + def executable(self): ... + def take_screenshot(self, prefix: str = ...) -> None: ... + def start_screencast(self) -> None: ... + def set_cookie(self, name: Any, value: Any, path: Any, domain: Any): ... + def delete_cookie(self, name: Any, **kwargs: Any): ... + def navigate_to(self, url: Any, wait_stop: bool = ...) -> None: ... + def clear(self) -> None: ... + +class HttpCase(TransactionCase): + registry_test_mode: bool = ... + browser: Any = ... + xmlrpc_url: Any = ... + xmlrpc_common: Any = ... + xmlrpc_db: Any = ... + xmlrpc_object: Any = ... + def __init__(self, methodName: str = ...) -> None: ... + @classmethod + def start_browser(cls, logger: Any) -> None: ... + @classmethod + def tearDownClass(cls) -> None: ... + session: Any = ... + session_id: Any = ... + opener: Any = ... + def setUp(self) -> None: ... + def url_open(self, url: Any, data: Optional[Any] = ..., timeout: int = ...): ... + def authenticate(self, user: Any, password: Any) -> None: ... + def browser_js(self, url_path: Any, code: Any, ready: str = ..., login: Optional[Any] = ..., timeout: int = ..., **kw: Any) -> None: ... + phantom_js: Any = ... + +def users(*logins: Any): ... +def warmup(func: Any, *args: Any, **kwargs: Any) -> None: ... +def can_import(module: Any): ... + +ref_re: Any + +class Form: + def __init__(self, recordp: Any, view: Optional[Any] = ...) -> None: ... + def __getattr__(self, field: Any): ... + def __setattr__(self, field: Any, value: Any) -> None: ... + def __enter__(self): ... + def __exit__(self, etype: Any, _evalue: Any, _etb: Any) -> None: ... + def save(self): ... + +class O2MForm(Form): + def __init__(self, proxy: Any, index: Optional[Any] = ...) -> None: ... + def save(self) -> None: ... + +class UpdateDict(dict): + def __init__(self, *args: Any, **kwargs: Any) -> None: ... + def changed_items(self): ... + def update(self, *args: Any, **kw: Any) -> None: ... + +class X2MProxy: ... + +class O2MProxy(X2MProxy): + def __init__(self, parent: Any, field: Any) -> None: ... + def __len__(self): ... + def new(self): ... + def edit(self, index: Any): ... + def remove(self, index: Any) -> None: ... + +class M2MProxy(X2MProxy, collections.Sequence): + def __init__(self, parent: Any, field: Any) -> None: ... + def __getitem__(self, it: Any): ... + def __len__(self): ... + def __iter__(self): ... + def __contains__(self, record: Any): ... + def add(self, record: Any) -> None: ... + def remove(self, id: Optional[Any] = ..., index: Optional[Any] = ...) -> None: ... + def clear(self) -> None: ... + +def record_to_values(fields: Any, record: Any): ... +def tagged(*tags: Any): ... + +class TagsSelector: + filter_spec_re: Any = ... + exclude: Any = ... + include: Any = ... + def __init__(self, spec: Any) -> None: ... + def check(self, test: Any): ...