Skip to content

Commit

Permalink
Wrap stdout into a new fixture (#17)
Browse files Browse the repository at this point in the history
  • Loading branch information
multani authored Sep 3, 2023
1 parent dc83ca6 commit 782a094
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 24 deletions.
10 changes: 10 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,13 @@ def logger(mock_logger_env):
yield logger

structlog.reset_defaults()


@pytest.fixture
def stdout(capsys):
def read():
output = capsys.readouterr()
assert "" == output.err
return output.out

yield read
36 changes: 12 additions & 24 deletions tests/test_log.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,10 @@
import structlog_gcp


def test_normal(capsys, logger):
def test_normal(stdout, logger):
logger.info("test")

output = capsys.readouterr()

assert "" == output.err

msg = json.loads(output.out)
msg = json.loads(stdout())

expected = {
"logging.googleapis.com/sourceLocation": {
Expand All @@ -29,17 +25,13 @@ def test_normal(capsys, logger):
assert expected == msg


def test_error(capsys, logger):
def test_error(stdout, logger):
try:
1 / 0
except ZeroDivisionError:
logger.exception("oh noes", foo="bar")

output = capsys.readouterr()

assert "" == output.err

msg = json.loads(output.out)
msg = json.loads(stdout())

expected = {
"@type": "type.googleapis.com/google.devtools.clouderrorreporting.v1beta1.ReportedErrorEvent",
Expand Down Expand Up @@ -68,13 +60,13 @@ def test_error(capsys, logger):
assert expected == msg


def test_service_context_default(capsys, logger):
def test_service_context_default(stdout, logger):
try:
1 / 0
except ZeroDivisionError:
logger.exception("oh noes")

msg = json.loads(capsys.readouterr().out)
msg = json.loads(stdout())

assert msg["serviceContext"] == {
"service": "unknown service",
Expand All @@ -83,7 +75,7 @@ def test_service_context_default(capsys, logger):


@patch.dict("os.environ", {"K_SERVICE": "test-service", "K_REVISION": "test-version"})
def test_service_context_envvar(capsys, mock_logger_env):
def test_service_context_envvar(stdout, mock_logger_env):
processors = structlog_gcp.build_processors()
structlog.configure(processors=processors)
logger = structlog.get_logger()
Expand All @@ -93,15 +85,15 @@ def test_service_context_envvar(capsys, mock_logger_env):
except ZeroDivisionError:
logger.exception("oh noes")

msg = json.loads(capsys.readouterr().out)
msg = json.loads(stdout())

assert msg["serviceContext"] == {
"service": "test-service",
"version": "test-version",
}


def test_service_context_custom(capsys, mock_logger_env):
def test_service_context_custom(stdout, mock_logger_env):
processors = structlog_gcp.build_processors(
service="my-service",
version="deadbeef",
Expand All @@ -114,15 +106,15 @@ def test_service_context_custom(capsys, mock_logger_env):
except ZeroDivisionError:
logger.exception("oh noes")

msg = json.loads(capsys.readouterr().out)
msg = json.loads(stdout())

assert msg["serviceContext"] == {
"service": "my-service",
"version": "deadbeef",
}


def test_labels_string(capsys, logger):
def test_labels_string(stdout, logger):
logger.info(
"test",
test1="test1",
Expand All @@ -131,11 +123,7 @@ def test_labels_string(capsys, logger):
test4={"date": datetime.date(2023, 1, 1)},
)

output = capsys.readouterr()

assert "" == output.err

msg = json.loads(output.out)
msg = json.loads(stdout())

expected = {
"logging.googleapis.com/sourceLocation": {
Expand Down

0 comments on commit 782a094

Please sign in to comment.