Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion httpie/output/ui/man_pages.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import subprocess
import os
import sys
from httpie.context import Environment


Expand All @@ -18,7 +19,7 @@ def is_available(program: str) -> bool:
Check whether `program`'s man pages are available on this system.

"""
if NO_MAN_PAGES or os.system == 'nt':
if NO_MAN_PAGES or sys.platform == 'win32':
return False
try:
process = subprocess.run(
Expand Down
48 changes: 48 additions & 0 deletions tests/test_man_pages.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
from httpie.output.ui.man_pages import is_available


def test_is_available_returns_false_on_windows(monkeypatch):
monkeypatch.setattr("httpie.output.ui.man_pages.sys.platform", "win32")
assert is_available("http") is False


def test_is_available_honors_no_man_pages_env(monkeypatch):
monkeypatch.setattr("httpie.output.ui.man_pages.NO_MAN_PAGES", True)
monkeypatch.setattr("httpie.output.ui.man_pages.sys.platform", "linux")
assert is_available("http") is False


def test_is_available_returns_true_when_man_succeeds(monkeypatch):
monkeypatch.setattr("httpie.output.ui.man_pages.sys.platform", "linux")

class CompletedProcess:
returncode = 0

monkeypatch.setattr(
"httpie.output.ui.man_pages.subprocess.run",
lambda *args, **kwargs: CompletedProcess(),
)
assert is_available("http") is True


def test_is_available_returns_false_when_man_fails(monkeypatch):
monkeypatch.setattr("httpie.output.ui.man_pages.sys.platform", "linux")

class CompletedProcess:
returncode = 1

monkeypatch.setattr(
"httpie.output.ui.man_pages.subprocess.run",
lambda *args, **kwargs: CompletedProcess(),
)
assert is_available("http") is False


def test_is_available_returns_false_when_man_raises(monkeypatch):
monkeypatch.setattr("httpie.output.ui.man_pages.sys.platform", "linux")

def raise_error(*args, **kwargs):
raise OSError("no man")

monkeypatch.setattr("httpie.output.ui.man_pages.subprocess.run", raise_error)
assert is_available("http") is False
Loading