Open kasium opened 1 year ago
I'm running into this issue too.
I tried to do this Promise(Result("sdfsfsdf"))
But got this error:
AttributeError: 'Result' object has no attribute 'result_kwargs'
Promise seems to just take a Result so why is it choking on this?
I could not find a way to get invoke to just give me a properly instantiated Result that Promise would accept- issue was with that result_kwargs prop it demands. I'm probably just misunderstanding it, but it seems weird how it works. Promise inherits Result but result_kwargs is not a static property of the Result class?
I've been doing this which is not great but seems to work:
class MockPromise:
"""Manually mock invoke Promise. Currently MockContext does not support it ootb."""
class Runner:
def __init__(self, stderr: str = None, stdout: str = None):
self.stderr = stderr
self.stdout = stdout
self.kill = lambda: "Mocked kill method"
def __init__(self, command: str = None, stderr: str = None, stdout: str = None):
self.command = command
self.runner = self.Runner(stderr, stdout)
Then I just pass it in where I would Result
# In a test
ctx = MockContext(
run={
"some command": MockPromise(
stderr="Mocked stderr of command",
stdout="Mocked stdout of command",
)
}
)
Still, I'm sure there is a way to just ask invoke for a proper Promise somehow right?
If the
MockContext.run
method is called withasynchronous=True
asResult
is returned instead of aPromise