pytest-dev/pytest-testinfra

Allow disabling argument quoting with `run` function for WinRM backends

Open

#310 aberto em 4 de mai. de 2018

Ver no GitHub
 (1 comment) (0 reactions) (0 assignees)Python (318 forks)batch import
help wantedwindows

Métricas do repositório

Stars
 (2.156 stars)
Métricas de merge de PR
 (Mesclagem média 87d 19h) (6 fundiu PRs em 30d)

Description

Hello,

Consider the following basic WinRM test:

def test_echo(host):
    hello = 'Hello, world!'
    res = host.run('echo %s', hello)
    assert res.stdout == hello # Fails
    assert res.stdout== hello
E   assert '"Hello, world!"\r\n' == 'Hello, world!'
# I'm fine with that extra CRLF, but the quotes bugged me for some time...

Related log entry: INFO:testinfra:RUN CommandResult(command='echo "Hello, world!"', exit_status=0, stdout=b'"Hello, world!"\r\n', stderr=None)

It would be nice to be able to turn off argument quoting for executables which behave like MS echo (they echo back quotes, apparently :panda_face: ). Pywinrm already seems to handle arguments escaping/quoting, but I haven't played much with this library yet. It could be possible to let pywinrm handle the command formatting/escaping.

Unrelated to this issue, worth mentioning: the CommandResult.stdout value is a binary string instead of a string when using run with WinRM. Is it intended?

Guia do colaborador