bbe9b033d0
### Description of Changes Issue: https://coreosdev.atlassian.net/browse/QUAY-626 ## Reviewer Checklist - [ ] It works! - [ ] Comments provide sufficient explanations for the next contributor - [ ] Tests cover changes and corner cases - [ ] Follows Quay syntax patterns and format
89 lines
3.2 KiB
Python
89 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')
|