tests: Add tests for image-minimizer
This commit is contained in:
parent
ab9068c2d0
commit
cc90406a58
2
Makefile
2
Makefile
@ -47,7 +47,7 @@ check:
|
|||||||
test:
|
test:
|
||||||
@echo "*** Running tests ***"
|
@echo "*** Running tests ***"
|
||||||
PYTHONPATH=$(PYTHONPATH):./src/ $(PYTHON) -X dev -m pytest -v --cov-branch \
|
PYTHONPATH=$(PYTHONPATH):./src/ $(PYTHON) -X dev -m pytest -v --cov-branch \
|
||||||
--cov=pylorax ./tests/pylorax/
|
--cov=pylorax ./tests/pylorax/ ./tests/image-minimizer/
|
||||||
|
|
||||||
coverage3 report -m
|
coverage3 report -m
|
||||||
[ -f "/usr/bin/coveralls" ] && [ -n "$(COVERALLS_REPO_TOKEN)" ] && coveralls || echo
|
[ -f "/usr/bin/coveralls" ] && [ -n "$(COVERALLS_REPO_TOKEN)" ] && coveralls || echo
|
||||||
|
11
tests/image-minimizer/im-script.txt
Normal file
11
tests/image-minimizer/im-script.txt
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# test script for image-minimizer
|
||||||
|
drop /etc/pki/rpm-gpg/*
|
||||||
|
keep /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-11-primary
|
||||||
|
keep /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-12-primary
|
||||||
|
drop /usr/share/zoneinfo/*
|
||||||
|
keep /usr/share/zoneinfo/America
|
||||||
|
keep /usr/share/zoneinfo/US
|
||||||
|
keep /usr/share/zoneinfo/UTC
|
||||||
|
droprpm fedora-*
|
||||||
|
keeprpm fedora-release
|
||||||
|
keeprpm fedora-gpg-keys
|
1
tests/image-minimizer/minimizer.py
Symbolic link
1
tests/image-minimizer/minimizer.py
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../src/bin/image-minimizer
|
45
tests/image-minimizer/test_minimizer.py
Normal file
45
tests/image-minimizer/test_minimizer.py
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
import os
|
||||||
|
from subprocess import check_call, CalledProcessError
|
||||||
|
import tempfile
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
from minimizer import ImageMinimizer
|
||||||
|
|
||||||
|
class BuildStampTestCase(unittest.TestCase):
|
||||||
|
def test_minimizer_ok(self):
|
||||||
|
with tempfile.TemporaryDirectory(prefix="minimize.test.") as rootdir:
|
||||||
|
check_call(["dnf", "--installroot", rootdir, "install", "-y", \
|
||||||
|
"filesystem"])
|
||||||
|
|
||||||
|
im = ImageMinimizer("./tests/image-minimizer/im-script.txt", rootdir, False, False)
|
||||||
|
im.filter()
|
||||||
|
|
||||||
|
# /etc/pki/rpm-gpg/ should only have 2 files
|
||||||
|
self.assertEqual(sorted(os.listdir(f"{rootdir}/etc/pki/rpm-gpg/")), ["RPM-GPG-KEY-fedora-11-primary", "RPM-GPG-KEY-fedora-12-primary"])
|
||||||
|
|
||||||
|
# zoneinfo should have 2 directories and a file
|
||||||
|
self.assertEqual(sorted(os.listdir(f"{rootdir}/usr/share/zoneinfo/")), ["America", "US", "UTC"])
|
||||||
|
|
||||||
|
check_call(["rpm", "--root", rootdir, "-q", "fedora-release", "fedora-gpg-keys"])
|
||||||
|
|
||||||
|
with self.assertRaises(CalledProcessError):
|
||||||
|
check_call(["rpm", "--root", rootdir, "-q", "fedora-repos"])
|
||||||
|
|
||||||
|
def test_minimizer_empty(self):
|
||||||
|
## No packages in tree (this is ok, nothing to remove)
|
||||||
|
with tempfile.TemporaryDirectory(prefix="minimize.test.") as rootdir:
|
||||||
|
im = ImageMinimizer("./tests/image-minimizer/im-script.txt", rootdir, False, False)
|
||||||
|
im.filter()
|
||||||
|
|
||||||
|
def test_minimizer_missing_script(self):
|
||||||
|
## No minimizer script
|
||||||
|
with tempfile.TemporaryDirectory(prefix="minimize.test.") as rootdir:
|
||||||
|
im = ImageMinimizer("./tests/image-minimizer/missing.txt", rootdir, False, False)
|
||||||
|
with self.assertRaises(FileNotFoundError):
|
||||||
|
im.filter()
|
||||||
|
|
||||||
|
def test_minimizer_missing_root(self):
|
||||||
|
## Missing directory
|
||||||
|
im = ImageMinimizer("./tests/image-minimizer/im-script.txt", "/tmp/minimizer.root", False, False)
|
||||||
|
with self.assertRaises(FileNotFoundError):
|
||||||
|
im.filter()
|
Loading…
Reference in New Issue
Block a user