Unit tests for scm_request_processor done

Unit tests are now covering 100% of current code.

Signed-off-by: Michal Konečný <mkonecny@redhat.com>
This commit is contained in:
Michal Konečný 2022-03-21 13:22:10 +01:00
parent 03b815c112
commit d5f38f16d6

View file

@ -2626,3 +2626,131 @@ class TestValidateReviewBug:
call({"username": user}, "packager"),
call({"username": user}, "packager"),
])
class TestValidEpelPackage:
"""
Test class for `toddlers.plugins.scm_request_processor.SCMRequestProcessor.valid_epel_package` method.
"""
def setup(self):
"""
Initialize toddler.
"""
self.toddler = scm_request_processor.SCMRequestProcessor()
self.toddler.pagure_io = Mock()
self.toddler.dist_git = Mock()
self.toddler.requests_session = Mock()
def test_valid_epel_package_bad_response(self):
"""
Assert that method will raise error when bad response is retrieved.
"""
# Preparation
name = "package"
branch = "epel8"
mock_response = Mock()
mock_response.status_code = 500
self.toddler.requests_session.get.return_value = mock_response
error = "Couldn't retrieve the list of official EL packages"
# Method to test
with pytest.raises(ValidationError, match=error):
self.toddler.valid_epel_package(name=name, branch=branch)
# Asserts
self.toddler.requests_session.get.assert_called_with(
"https://infrastructure.fedoraproject.org/repo/json/pkg_el8.json"
)
def test_valid_epel_package_epel6_noarch(self):
"""
Assert that method will return False when epel6 noarch package is introduced.
"""
# Preparation
name = "package"
branch = "epel6"
mock_response = Mock()
mock_response.status_code = 200
mock_response.json.return_value = {
"arches": ["noarch", "ppc", "i386"],
"packages": {
name: {
"arch": ["noarch"]
}
}
}
self.toddler.requests_session.get.return_value = mock_response
# Method to test
result = self.toddler.valid_epel_package(name=name, branch=branch)
# Asserts
self.toddler.requests_session.get.assert_called_with(
"https://infrastructure.fedoraproject.org/repo/json/pkg_el6.json"
)
assert result is False
def test_valid_epel_package_epel7_noarch(self):
"""
Assert that method will return False when epel7 noarch package is introduced.
"""
# Preparation
name = "package"
branch = "epel7"
mock_response = Mock()
mock_response.status_code = 200
mock_response.json.return_value = {
"arches": ["noarch", "ppc", "i386"],
"packages": {
name: {
"arch": ["noarch"]
}
}
}
self.toddler.requests_session.get.return_value = mock_response
# Method to test
result = self.toddler.valid_epel_package(name=name, branch=branch)
# Asserts
self.toddler.requests_session.get.assert_called_with(
"https://infrastructure.fedoraproject.org/repo/json/pkg_el7.json"
)
assert result is False
def test_valid_epel_package_valid_package(self):
"""
Assert that method will return True when package is valid.
"""
# Preparation
name = "package"
branch = "epel8"
mock_response = Mock()
mock_response.status_code = 200
mock_response.json.return_value = {
"arches": ["noarch", "ppc", "i386"],
"packages": {
name: {
"arch": ["x86_64"]
}
}
}
self.toddler.requests_session.get.return_value = mock_response
# Method to test
result = self.toddler.valid_epel_package(name=name, branch=branch)
# Asserts
self.toddler.requests_session.get.assert_called_with(
"https://infrastructure.fedoraproject.org/repo/json/pkg_el8.json"
)
assert result is True