Skip to content

Commit

Permalink
Improve test coverage, docs, and .gitignore
Browse files Browse the repository at this point in the history
  • Loading branch information
boxydog committed Jun 1, 2024
1 parent 8fd94ea commit 8f456f4
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 3 deletions.
4 changes: 3 additions & 1 deletion .coveragerc
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
[report]
omit = pelican/tests/*
omit =
pelican/tests/*
pelican/signals.py
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,9 @@ samples/output
*.lock
.pdm-python
.venv

# direnv
.envrc

# pycharm
.idea
28 changes: 28 additions & 0 deletions docs/contribute.rst
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,20 @@ your bug fix or feature::
Now you can make changes to Pelican, its documentation, and/or other aspects of
the project.

Setting up git blame
--------------------

``git blame`` annotates lines from a file with information about the pull request
that last modified it. Sweeping shallow changes (like formatting) can make that
information less useful, so we keep a list of such changes to be ignored. To set
that up in your repository::

git config blame.ignoreRevsFile .git-blame-ignore-revs

For more information, see here_.

.. _here: https://www.michaelheap.com/git-ignore-rev/

Running the test suite
----------------------

Expand Down Expand Up @@ -108,6 +122,20 @@ environments.

.. _Tox: https://tox.readthedocs.io/en/latest/

Running a code coverage report
------------------------------

The code is more likely to stay robust if it is tested.
coverage_ is a library that measures how much of the code is tested.
To run it::

invoke coverage
open htmlcov/index.html

The HTML will show overall coverage, coverage per file, and even line-by-line coverage.

.. _coverage: https://github.com/nedbat/coveragepy

Building the docs
-----------------

Expand Down
1 change: 1 addition & 0 deletions pelican/tests/simple_content/article_with_md_extension.md
31 changes: 29 additions & 2 deletions pelican/tests/test_pelican.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import contextlib
import io
import locale
import logging
import os
Expand All @@ -6,9 +8,9 @@
import unittest
from collections.abc import Sequence
from shutil import rmtree
from tempfile import mkdtemp
from tempfile import TemporaryDirectory, mkdtemp

from pelican import Pelican
from pelican import Pelican, __version__, main
from pelican.generators import StaticGenerator
from pelican.settings import read_settings
from pelican.tests.support import (
Expand Down Expand Up @@ -271,3 +273,28 @@ def test_module_load(self):
[sys.executable, "-m", "pelican", "--help"]
).decode("ascii", "replace")
assert "usage:" in output

def test_main_version(self):
"""Run main --version."""
out = io.StringIO()
with contextlib.redirect_stdout(out):
with self.assertRaises(SystemExit):
main(["--version"])
self.assertEqual(f"{__version__}\n", out.getvalue())

def test_main_help(self):
"""Run main --help."""
out = io.StringIO()
with contextlib.redirect_stdout(out):
with self.assertRaises(SystemExit):
main(["--help"])
self.assertIn("A tool to generate a static blog", out.getvalue())

def test_main_on_content(self):
"""Invoke main on simple_content directory."""
out, err = io.StringIO(), io.StringIO()
with contextlib.redirect_stdout(out), contextlib.redirect_stderr(err):
with TemporaryDirectory() as temp_dir:
main(["-o", temp_dir, "pelican/tests/simple_content"])
self.assertIn("Processed 1 article", out.getvalue())
self.assertEqual("", err.getvalue())

0 comments on commit 8f456f4

Please sign in to comment.