mirror of
https://github.com/odoo/runbot.git
synced 2025-03-27 13:25:47 +07:00
[ADD] tests: shitty support for context
The API doesn't correctly match the server-side `Environment`/`Model` API, but neither did `with_user`, so probably fine for now, can revisit this thing if I start needing it more than once in a blue moon.
This commit is contained in:
parent
86796ed730
commit
62dd3ee636
@ -1238,12 +1238,18 @@ class Environment:
|
|||||||
self._password = None
|
self._password = None
|
||||||
self._object = xmlrpc.client.ServerProxy(f'http://localhost:{port}/xmlrpc/2/object')
|
self._object = xmlrpc.client.ServerProxy(f'http://localhost:{port}/xmlrpc/2/object')
|
||||||
self.login('admin', 'admin')
|
self.login('admin', 'admin')
|
||||||
|
self._context = {}
|
||||||
|
|
||||||
def with_user(self, login, password):
|
def with_user(self, login, password):
|
||||||
env = copy.copy(self)
|
env = copy.copy(self)
|
||||||
env.login(login, password)
|
env.login(login, password)
|
||||||
return env
|
return env
|
||||||
|
|
||||||
|
def with_context(self, **kw):
|
||||||
|
env = copy.copy(self)
|
||||||
|
env._context = {**self._context, **kw}
|
||||||
|
return env
|
||||||
|
|
||||||
def login(self, login, password):
|
def login(self, login, password):
|
||||||
self._password = password
|
self._password = password
|
||||||
self._uid = xmlrpc.client.ServerProxy(
|
self._uid = xmlrpc.client.ServerProxy(
|
||||||
@ -1251,6 +1257,7 @@ class Environment:
|
|||||||
).authenticate(self._db, login, password, {})
|
).authenticate(self._db, login, password, {})
|
||||||
|
|
||||||
def __call__(self, model, method, *args, **kwargs):
|
def __call__(self, model, method, *args, **kwargs):
|
||||||
|
kwargs['context'] = {**self._context, **kwargs.get('context', {})}
|
||||||
return self._object.execute_kw(
|
return self._object.execute_kw(
|
||||||
self._db, self._uid, self._password,
|
self._db, self._uid, self._password,
|
||||||
model, method,
|
model, method,
|
||||||
|
Loading…
Reference in New Issue
Block a user