Skip to content

Commit

Permalink
Some very basic tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Cadair committed Jan 23, 2024
1 parent 11289a9 commit da03ed3
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 1 deletion.
11 changes: 10 additions & 1 deletion dkist/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,23 @@
from astropy.time import Time
from sunpy.coordinates.frames import Helioprojective

from dkist import load_dataset
from dkist import load_dataset, log
from dkist.data.test import rootdir
from dkist.dataset import Dataset
from dkist.dataset.tiled_dataset import TiledDataset
from dkist.io import FileManager
from dkist.io.loaders import AstropyFITSLoader


@pytest.fixture
def caplog_dkist(caplog):
"""
A `dkist.log` specifc equivalent to caplog.
"""
log.addHandler(caplog.handler)
return caplog


@pytest.fixture
def array():
shape = 2**np.random.randint(2, 7, size=2)
Expand Down
9 changes: 9 additions & 0 deletions dkist/logger.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,19 @@ class DKISTLogger(logging.Logger):
def __init__(self, name, level=logging.NOTSET, *, capture_warning_classes=None):
super().__init__(name, level=level)
self.capture_warning_classes = tuple(capture_warning_classes) if capture_warning_classes is not None else tuple()

self.enable_warnings_capture()

def enable_warnings_capture(self):
if self._showwarning_orig is None:
self._showwarning_orig = warnings.showwarning
warnings.showwarning = self._showwarning

def disable_warnings_capture(self):
if self._showwarning_orig is not None:
warnings.showwarning = self._showwarning_orig
self._showwarning_orig = None

Check warning on line 45 in dkist/logger.py

View check run for this annotation

Codecov / codecov/patch

dkist/logger.py#L43-L45

Added lines #L43 - L45 were not covered by tests

def makeRecord(
self,
name,
Expand Down
43 changes: 43 additions & 0 deletions dkist/tests/test_logger.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import logging

from dkist import log


def test_debug_log(caplog_dkist):
# By default the level is set to INFO so we shouldn't get anything here.
log.debug("test_debug_log")
assert caplog_dkist.record_tuples == []


def test_debug_on(caplog_dkist, capsys):
log.setLevel("DEBUG")

log.debug("test_debug_log")
assert caplog_dkist.record_tuples == [("dkist", logging.DEBUG, "test_debug_log")]

captured = capsys.readouterr()
assert "DEBUG: test_debug_log [dkist.tests.test_logger]" in captured.out


def test_info_log(caplog_dkist, capsys):
log.info("test_info_log")
assert caplog_dkist.record_tuples == [("dkist", logging.INFO, "test_info_log")]

captured = capsys.readouterr()
assert "WARNING: test_warning_log [dkist.tests.test_logger]" in captured.out


def test_warning_log(caplog_dkist, capsys):
log.warning("test_warning_log")

assert caplog_dkist.record_tuples == [("dkist", logging.WARNING, "test_warning_log")]
captured = capsys.readouterr()
assert "WARNING: test_warning_log [dkist.tests.test_logger]" in captured.err


def test_error_log(caplog_dkist, capsys):
log.error("test_error_log")

assert caplog_dkist.record_tuples == [("dkist", logging.ERROR, "test_error_log")]
captured = capsys.readouterr()
assert "ERROR: test_error_log [dkist.tests.test_logger]" in captured.err

0 comments on commit da03ed3

Please sign in to comment.