From 5bd3ad7644de2229315e5814a336e6f193c4c6c3 Mon Sep 17 00:00:00 2001 From: Rohan McGovern Date: Tue, 1 Jun 2021 11:18:30 +1000 Subject: [PATCH] refactor: deduplicate fixtures in errata tests fake_koji and fake_errata_tool were set up identically across several tests. Adding them to conftest.py allows removing this duplicate code. --- tests/errata/conftest.py | 26 ++++++++++++++++++++++++++ tests/errata/test_errata_errors.py | 13 +------------ tests/errata/test_errata_metadata.py | 13 ------------- tests/errata/test_errata_modules.py | 26 -------------------------- tests/errata/test_errata_rpms.py | 26 -------------------------- 5 files changed, 27 insertions(+), 77 deletions(-) create mode 100644 tests/errata/conftest.py diff --git a/tests/errata/conftest.py b/tests/errata/conftest.py new file mode 100644 index 00000000..b6950414 --- /dev/null +++ b/tests/errata/conftest.py @@ -0,0 +1,26 @@ +from pytest import fixture +from mock import patch + +from .fake_errata_tool import FakeErrataToolController +from ..koji.fake_koji import FakeKojiController + + +@fixture +def fake_errata_tool(): + controller = FakeErrataToolController() + with patch("pushsource._impl.backend.errata_source.ServerProxy") as mock_proxy: + mock_proxy.side_effect = controller.proxy + yield controller + + +@fixture +def fake_koji(): + controller = FakeKojiController() + with patch("koji.ClientSession") as mock_session: + mock_session.side_effect = controller.session + yield controller + + +@fixture +def koji_dir(tmpdir): + yield str(tmpdir.mkdir("koji")) diff --git a/tests/errata/test_errata_errors.py b/tests/errata/test_errata_errors.py index ec083b50..aa59942f 100644 --- a/tests/errata/test_errata_errors.py +++ b/tests/errata/test_errata_errors.py @@ -1,19 +1,8 @@ -from pytest import raises, fixture -from mock import patch - -from .fake_errata_tool import FakeErrataToolController +from pytest import raises from pushsource import Source, ErratumPushItem, ErratumReference, RpmPushItem -@fixture -def fake_errata_tool(): - controller = FakeErrataToolController() - with patch("pushsource._impl.backend.errata_source.ServerProxy") as mock_proxy: - mock_proxy.side_effect = controller.proxy - yield controller - - def test_errata_files_needs_koji_url(fake_errata_tool): """Can't obtain errata referring to files if koji source URL is missing""" diff --git a/tests/errata/test_errata_metadata.py b/tests/errata/test_errata_metadata.py index 52bb1dfe..326cc04c 100644 --- a/tests/errata/test_errata_metadata.py +++ b/tests/errata/test_errata_metadata.py @@ -1,19 +1,6 @@ -from pytest import raises, fixture -from mock import patch - -from .fake_errata_tool import FakeErrataToolController - from pushsource import Source, ErratumPushItem, ErratumReference -@fixture -def fake_errata_tool(): - controller = FakeErrataToolController() - with patch("pushsource._impl.backend.errata_source.ServerProxy") as mock_proxy: - mock_proxy.side_effect = controller.proxy - yield controller - - def test_errata_typical_metadata(fake_errata_tool): """Test fetching an advisory with no files: diff --git a/tests/errata/test_errata_modules.py b/tests/errata/test_errata_modules.py index d536bcba..363fa20e 100644 --- a/tests/errata/test_errata_modules.py +++ b/tests/errata/test_errata_modules.py @@ -1,9 +1,4 @@ import os -from pytest import raises, fixture -from mock import patch - -from .fake_errata_tool import FakeErrataToolController -from ..koji.fake_koji import FakeKojiController from pushsource import ( Source, @@ -16,27 +11,6 @@ ) -@fixture -def fake_errata_tool(): - controller = FakeErrataToolController() - with patch("pushsource._impl.backend.errata_source.ServerProxy") as mock_proxy: - mock_proxy.side_effect = controller.proxy - yield controller - - -@fixture -def fake_koji(): - controller = FakeKojiController() - with patch("koji.ClientSession") as mock_session: - mock_session.side_effect = controller.session - yield controller - - -@fixture -def koji_dir(tmpdir): - yield str(tmpdir.mkdir("koji")) - - def test_errata_modules_via_koji(fake_errata_tool, fake_koji, koji_dir): """Errata source containing a module yields modules & RPMs taken from koji source""" diff --git a/tests/errata/test_errata_rpms.py b/tests/errata/test_errata_rpms.py index e45f4688..5ee7bb35 100644 --- a/tests/errata/test_errata_rpms.py +++ b/tests/errata/test_errata_rpms.py @@ -1,9 +1,4 @@ import os -from pytest import raises, fixture -from mock import patch - -from .fake_errata_tool import FakeErrataToolController -from ..koji.fake_koji import FakeKojiController from pushsource import ( Source, @@ -15,27 +10,6 @@ ) -@fixture -def fake_errata_tool(): - controller = FakeErrataToolController() - with patch("pushsource._impl.backend.errata_source.ServerProxy") as mock_proxy: - mock_proxy.side_effect = controller.proxy - yield controller - - -@fixture -def fake_koji(): - controller = FakeKojiController() - with patch("koji.ClientSession") as mock_session: - mock_session.side_effect = controller.session - yield controller - - -@fixture -def koji_dir(tmpdir): - yield str(tmpdir.mkdir("koji")) - - def test_errata_rpms_via_koji(fake_errata_tool, fake_koji, koji_dir): """Errata source yields RPMs taken from koji source"""