Skip to content

Insufficient removal of control characters on windows with cmd.exe as shell #82

@mf01

Description

@mf01

Affected Line

endpoint = output.strip().decode("utf-8")

endpoint = output.strip().decode("utf-8")
Affected Version: at least since 0.10.3

I use PyCharm on Windows 10 to debug my pytest test cases. Starting the conatiners the above line is executed to to resolve a port for a service.

output = self._docker_compose.execute("port %s %d" % (service, container_port)) results to b'0.0.0.0:12347\r\n\x1b[0m'. No control character is removed. Hence, output.strip().decode("utf-8") result to s string including the control characters.

Some lines later (L86) if len(endpoint.split("\n")) > 1: does not support windows line endings.

On Linux or Git Bash for Windows, there is no problem.

My fix for that. Please check this solution:

endpoint = endpoint.replace("\r",'') # add support for windows line ending
if len(endpoint.split("\n")) > 1:
      endpoint = endpoint.split("\n")[-1] # index -1 is also wrong for me because it results to '\x1b[0m'. Maybe use 0 or -2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions