90 lines
3.2 KiB
Python
90 lines
3.2 KiB
Python
|
import pytest
|
||
|
from mock import Mock
|
||
|
|
||
|
import util
|
||
|
from data import model
|
||
|
from endpoints.api.repoemail_models_interface import RepositoryAuthorizedEmail
|
||
|
from endpoints.api.repoemail_models_pre_oci import pre_oci_model
|
||
|
|
||
|
|
||
|
@pytest.fixture
|
||
|
def get_monkeypatch(monkeypatch):
|
||
|
return monkeypatch
|
||
|
|
||
|
|
||
|
def return_none(name, repo, email):
|
||
|
return None
|
||
|
|
||
|
|
||
|
def get_return_mock(mock):
|
||
|
def return_mock(name, repo, email):
|
||
|
return mock
|
||
|
|
||
|
return return_mock
|
||
|
|
||
|
|
||
|
def test_get_email_authorized_for_repo(get_monkeypatch):
|
||
|
mock = Mock()
|
||
|
|
||
|
get_monkeypatch.setattr(model.repository, 'get_email_authorized_for_repo', mock)
|
||
|
|
||
|
pre_oci_model.get_email_authorized_for_repo('namespace_name', 'repository_name', 'email')
|
||
|
|
||
|
mock.assert_called_once_with('namespace_name', 'repository_name', 'email')
|
||
|
|
||
|
|
||
|
def test_get_email_authorized_for_repo_return_none(get_monkeypatch):
|
||
|
get_monkeypatch.setattr(model.repository, 'get_email_authorized_for_repo', return_none)
|
||
|
|
||
|
repo = pre_oci_model.get_email_authorized_for_repo('namespace_name', 'repository_name', 'email')
|
||
|
|
||
|
assert repo is None
|
||
|
|
||
|
|
||
|
def test_get_email_authorized_for_repo_return_repo(get_monkeypatch):
|
||
|
mock = Mock(confirmed=True, code='code')
|
||
|
get_monkeypatch.setattr(model.repository, 'get_email_authorized_for_repo', get_return_mock(mock))
|
||
|
|
||
|
actual = pre_oci_model.get_email_authorized_for_repo('namespace_name', 'repository_name',
|
||
|
'email')
|
||
|
|
||
|
assert actual == RepositoryAuthorizedEmail('email', 'repository_name', 'namespace_name', True,
|
||
|
'code')
|
||
|
|
||
|
|
||
|
def test_create_email_authorization_for_repo(get_monkeypatch):
|
||
|
mock = Mock()
|
||
|
get_monkeypatch.setattr(model.repository, 'create_email_authorization_for_repo', mock)
|
||
|
|
||
|
pre_oci_model.create_email_authorization_for_repo('namespace_name', 'repository_name', 'email')
|
||
|
|
||
|
mock.assert_called_once_with('namespace_name', 'repository_name', 'email')
|
||
|
|
||
|
|
||
|
def test_create_email_authorization_for_repo_return_none(get_monkeypatch):
|
||
|
get_monkeypatch.setattr(model.repository, 'create_email_authorization_for_repo', return_none)
|
||
|
|
||
|
assert pre_oci_model.create_email_authorization_for_repo('namespace_name', 'repository_name',
|
||
|
'email') is None
|
||
|
|
||
|
|
||
|
def test_create_email_authorization_for_repo_return_mock(get_monkeypatch):
|
||
|
mock = Mock()
|
||
|
get_monkeypatch.setattr(model.repository, 'create_email_authorization_for_repo',
|
||
|
get_return_mock(mock))
|
||
|
|
||
|
assert pre_oci_model.create_email_authorization_for_repo('namespace_name', 'repository_name',
|
||
|
'email') is not None
|
||
|
|
||
|
|
||
|
def test_create_email_authorization_for_repo_return_value(get_monkeypatch):
|
||
|
mock = Mock(confirmed=False, code='code')
|
||
|
|
||
|
get_monkeypatch.setattr(model.repository, 'create_email_authorization_for_repo',
|
||
|
get_return_mock(mock))
|
||
|
|
||
|
actual = pre_oci_model.create_email_authorization_for_repo('namespace_name', 'repository_name',
|
||
|
'email')
|
||
|
assert actual == RepositoryAuthorizedEmail('email', 'repository_name', 'namespace_name', False,
|
||
|
'code')
|