Blame SOURCES/test_centos_cert.py

47f15e
import imp
47f15e
import pytest
47f15e
import requests
47f15e
47f15e
centos_cert = imp.load_source('centos_cert', 'centos-cert')
47f15e
47f15e
47f15e
class MockResponse(object):
47f15e
    def raise_for_status(self):
47f15e
        pass
47f15e
47f15e
    @property
47f15e
    def text(self):
47f15e
        if self.url == 'https://accounts.centos.org/user/dogencert':
47f15e
            return 'DUMMY-USER-CERT'
47f15e
        if self.url == 'https://accounts.centos.org/ca/ca-cert.pem':
47f15e
            return 'DUMMY-CA-CERT'
47f15e
        raise NotImplementedError()
47f15e
47f15e
47f15e
class RequestRecorder(object):
47f15e
    """ Record args to requests.get() or requests.post() """
47f15e
    def __call__(self, url, **kwargs):
47f15e
        """ mocking requests.get() or requests.post() """
47f15e
        self.response = MockResponse()
47f15e
        self.response.url = url
47f15e
        self.kwargs = kwargs
47f15e
        return self.response
47f15e
47f15e
47f15e
@pytest.fixture
47f15e
def mock_get():
47f15e
    return RequestRecorder()
47f15e
47f15e
47f15e
@pytest.fixture
47f15e
def mock_post():
47f15e
    return RequestRecorder()
47f15e
47f15e
47f15e
def test_download(monkeypatch, tmpdir, mock_get, mock_post):
47f15e
    monkeypatch.delattr('requests.sessions.Session.request')
47f15e
    monkeypatch.setenv('HOME', str(tmpdir))
47f15e
    monkeypatch.setattr(requests, 'get', mock_get)
47f15e
    monkeypatch.setattr(requests, 'post', mock_post)
47f15e
    centos_cert.download_cert('myuser', 'mypass')
47f15e
47f15e
    assert mock_get.response.url == \
47f15e
        'https://accounts.centos.org/ca/ca-cert.pem'
47f15e
    assert mock_post.response.url == \
47f15e
        'https://accounts.centos.org/user/dogencert'
47f15e
47f15e
    certfile = tmpdir.join('.centos.cert')
47f15e
    assert certfile.check(file=1)
47f15e
    assert certfile.read() == 'DUMMY-USER-CERT'
47f15e
    assert oct(certfile.stat().mode & 0777) == '0600'
47f15e
47f15e
    cacertfile = tmpdir.join('.centos-server-ca.cert')
47f15e
    assert cacertfile.check(file=1)
47f15e
    assert cacertfile.read() == 'DUMMY-CA-CERT'
47f15e
47f15e
    uploadcafile = tmpdir.join('.centos-upload-ca.cert')
47f15e
    assert uploadcafile.check(file=1)
47f15e
    assert uploadcafile.read() == 'DUMMY-CA-CERT'