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