tests: stabilize tests for mysql/postgres.
This commit is contained in:
parent
4409e2b26b
commit
3876870e28
18 changed files with 169 additions and 68 deletions
|
|
@ -155,7 +155,7 @@ class TestAuthSettingsView(object):
|
|||
response = self._post_ldap_settings(params, override={
|
||||
'port': invalid_port_value,
|
||||
})
|
||||
assertr = AssertResponse(response)
|
||||
assertr = response.assert_response()
|
||||
assertr.element_contains(
|
||||
'.form .field #port ~ .error-message',
|
||||
invalid_port_value)
|
||||
|
|
|
|||
|
|
@ -81,13 +81,13 @@ class TestAdminRepos(object):
|
|||
def test_create_page_restricted_to_single_backend(self, autologin_user, backend):
|
||||
with mock.patch('rhodecode.BACKENDS', {'git': 'git'}):
|
||||
response = self.app.get(route_path('repo_new'), status=200)
|
||||
assert_response = AssertResponse(response)
|
||||
assert_response = response.assert_response()
|
||||
element = assert_response.get_element('#repo_type')
|
||||
assert element.text_content() == '\ngit\n'
|
||||
|
||||
def test_create_page_non_restricted_backends(self, autologin_user, backend):
|
||||
response = self.app.get(route_path('repo_new'), status=200)
|
||||
assert_response = AssertResponse(response)
|
||||
assert_response = response.assert_response()
|
||||
assert_response.element_contains('#repo_type', 'git')
|
||||
assert_response.element_contains('#repo_type', 'svn')
|
||||
assert_response.element_contains('#repo_type', 'hg')
|
||||
|
|
|
|||
|
|
@ -367,7 +367,7 @@ class TestAdminSettingsVcs(object):
|
|||
|
||||
def test_has_an_input_for_invalidation_of_inline_comments(self):
|
||||
response = self.app.get(route_path('admin_settings_vcs'))
|
||||
assert_response = AssertResponse(response)
|
||||
assert_response = response.assert_response()
|
||||
assert_response.one_element_exists(
|
||||
'[name=rhodecode_use_outdated_comments]')
|
||||
|
||||
|
|
@ -518,7 +518,7 @@ class TestOpenSourceLicenses(object):
|
|||
response = self.app.get(
|
||||
route_path('admin_settings_open_source'), status=200)
|
||||
|
||||
assert_response = AssertResponse(response)
|
||||
assert_response = response.assert_response()
|
||||
assert_response.element_contains(
|
||||
'.panel-heading', 'Licenses of Third Party Packages')
|
||||
for license_data in sample_licenses:
|
||||
|
|
@ -528,7 +528,7 @@ class TestOpenSourceLicenses(object):
|
|||
def test_records_can_be_read(self, autologin_user):
|
||||
response = self.app.get(
|
||||
route_path('admin_settings_open_source'), status=200)
|
||||
assert_response = AssertResponse(response)
|
||||
assert_response = response.assert_response()
|
||||
assert_response.element_contains(
|
||||
'.panel-heading', 'Licenses of Third Party Packages')
|
||||
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ class TestPasswordReset(TestController):
|
|||
|
||||
response = self.app.get(route_path('reset_password'))
|
||||
|
||||
assert_response = AssertResponse(response)
|
||||
assert_response = response.assert_response()
|
||||
if show_reset:
|
||||
response.mustcontain('Send password reset email')
|
||||
assert_response.one_element_exists('#email')
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ class TestRegisterCaptcha(object):
|
|||
|
||||
response = app.get(ADMIN_PREFIX + '/register')
|
||||
|
||||
assertr = AssertResponse(response)
|
||||
assertr = response.assert_response()
|
||||
if active:
|
||||
assertr.one_element_exists('#recaptcha_field')
|
||||
else:
|
||||
|
|
@ -128,6 +128,6 @@ class TestRegisterCaptcha(object):
|
|||
else:
|
||||
# If captche input is invalid we expect to stay on the registration
|
||||
# page with an error message displayed.
|
||||
assertr = AssertResponse(response)
|
||||
assertr = response.assert_response()
|
||||
assert response.status_int == 200
|
||||
assertr.one_element_exists('#recaptcha_field ~ span.error-message')
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ class TestFeedView(TestController):
|
|||
self, backend, user_util, feed_type):
|
||||
user = user_util.create_user()
|
||||
auth_token = AuthTokenModel().create(
|
||||
user.user_id, 'test-token', -1, AuthTokenModel.cls.ROLE_API)
|
||||
user.user_id, u'test-token', -1, AuthTokenModel.cls.ROLE_API)
|
||||
auth_token = auth_token.api_key
|
||||
|
||||
self.app.get(
|
||||
|
|
@ -127,7 +127,7 @@ class TestFeedView(TestController):
|
|||
status=302)
|
||||
|
||||
auth_token = AuthTokenModel().create(
|
||||
user.user_id, 'test-token', -1, AuthTokenModel.cls.ROLE_FEED)
|
||||
user.user_id, u'test-token', -1, AuthTokenModel.cls.ROLE_FEED)
|
||||
auth_token = auth_token.api_key
|
||||
self.app.get(
|
||||
route_path(
|
||||
|
|
|
|||
|
|
@ -236,7 +236,7 @@ class TestSummaryView(object):
|
|||
with scm_patcher:
|
||||
response = self.app.get(
|
||||
route_path('repo_summary', repo_name=repo_name))
|
||||
assert_response = AssertResponse(response)
|
||||
assert_response = response.assert_response()
|
||||
assert_response.element_contains(
|
||||
'.main .alert-warning strong', 'Missing requirements')
|
||||
assert_response.element_contains(
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ class TestVcsSettings(object):
|
|||
repo_name = backend.repo_name
|
||||
response = self.app.get(route_path('edit_repo_vcs', repo_name=repo_name))
|
||||
|
||||
assert_response = AssertResponse(response)
|
||||
assert_response = response.assert_response()
|
||||
element = assert_response.get_element('#inherit_global_settings')
|
||||
assert element.checked
|
||||
|
||||
|
|
@ -111,7 +111,7 @@ class TestVcsSettings(object):
|
|||
repo, 'inherit_vcs_settings', checked_value, 'bool')
|
||||
response = self.app.get(route_path('edit_repo_vcs', repo_name=repo_name))
|
||||
|
||||
assert_response = AssertResponse(response)
|
||||
assert_response = response.assert_response()
|
||||
element = assert_response.get_element('#inherit_global_settings')
|
||||
assert element.checked == checked_value
|
||||
|
||||
|
|
@ -491,7 +491,7 @@ class TestVcsSettings(object):
|
|||
|
||||
response = self.app.get(
|
||||
route_path('edit_repo_vcs', repo_name=repo_name), status=200)
|
||||
assert_response = AssertResponse(response)
|
||||
assert_response = response.assert_response()
|
||||
for branch in branches:
|
||||
css_selector = '[name=branch_value_{}]'.format(branch.ui_id)
|
||||
element = assert_response.get_element(css_selector)
|
||||
|
|
@ -668,7 +668,7 @@ class TestVcsSettings(object):
|
|||
Session().commit()
|
||||
|
||||
def assert_repo_value_equals_global_value(self, response, setting):
|
||||
assert_response = AssertResponse(response)
|
||||
assert_response = response.assert_response()
|
||||
global_css_selector = '[name={}_inherited]'.format(setting)
|
||||
repo_css_selector = '[name={}]'.format(setting)
|
||||
repo_element = assert_response.get_element(repo_css_selector)
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ class TestAdminRepoVcsSettings(object):
|
|||
rhodecode.CONFIG, {'labs_settings_active': 'true'}):
|
||||
response = self.app.get(vcs_settings_url)
|
||||
|
||||
assertr = AssertResponse(response)
|
||||
assertr = response.assert_response()
|
||||
assertr.one_element_exists('#rhodecode_{}'.format(setting_name))
|
||||
|
||||
@pytest.mark.parametrize('setting_name, setting_backends', [
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ class TestSearchController(TestController):
|
|||
def test_index(self):
|
||||
self.log_user()
|
||||
response = self.app.get(route_path('search'))
|
||||
assert_response = AssertResponse(response)
|
||||
assert_response = response.assert_response()
|
||||
assert_response.one_element_exists('input#q')
|
||||
|
||||
def test_search_files_empty_search(self):
|
||||
|
|
|
|||
|
|
@ -46,14 +46,14 @@ class TestUsersController(TestController):
|
|||
response = self.app.get(route_path('user_profile', username=username))
|
||||
response.mustcontain('testme')
|
||||
response.mustcontain('testme@rhodecode.org')
|
||||
assert_response = AssertResponse(response)
|
||||
assert_response = response.assert_response()
|
||||
assert_response.no_element_exists(edit_link_css)
|
||||
|
||||
# edit should be available to superadmin users
|
||||
self.logout_user()
|
||||
self.log_user(TEST_USER_ADMIN_LOGIN, TEST_USER_ADMIN_PASS)
|
||||
response = self.app.get(route_path('user_profile', username=username))
|
||||
assert_response = AssertResponse(response)
|
||||
assert_response = response.assert_response()
|
||||
assert_response.element_contains(edit_link_css, 'Edit')
|
||||
|
||||
def test_user_profile_not_available(self, user_util):
|
||||
|
|
|
|||
|
|
@ -584,7 +584,7 @@ class User(Base, BaseModel):
|
|||
_user_data = Column("user_data", LargeBinary(), nullable=True) # JSON data
|
||||
|
||||
user_log = relationship('UserLog')
|
||||
user_perms = relationship('UserToPerm', primaryjoin="User.user_id==UserToPerm.user_id", cascade='all')
|
||||
user_perms = relationship('UserToPerm', primaryjoin="User.user_id==UserToPerm.user_id", cascade='all, delete-orphan')
|
||||
|
||||
repositories = relationship('Repository')
|
||||
repository_groups = relationship('RepoGroup')
|
||||
|
|
@ -593,9 +593,9 @@ class User(Base, BaseModel):
|
|||
user_followers = relationship('UserFollowing', primaryjoin='UserFollowing.follows_user_id==User.user_id', cascade='all')
|
||||
followings = relationship('UserFollowing', primaryjoin='UserFollowing.user_id==User.user_id', cascade='all')
|
||||
|
||||
repo_to_perm = relationship('UserRepoToPerm', primaryjoin='UserRepoToPerm.user_id==User.user_id', cascade='all')
|
||||
repo_group_to_perm = relationship('UserRepoGroupToPerm', primaryjoin='UserRepoGroupToPerm.user_id==User.user_id', cascade='all')
|
||||
user_group_to_perm = relationship('UserUserGroupToPerm', primaryjoin='UserUserGroupToPerm.user_id==User.user_id', cascade='all')
|
||||
repo_to_perm = relationship('UserRepoToPerm', primaryjoin='UserRepoToPerm.user_id==User.user_id', cascade='all, delete-orphan')
|
||||
repo_group_to_perm = relationship('UserRepoGroupToPerm', primaryjoin='UserRepoGroupToPerm.user_id==User.user_id', cascade='all, delete-orphan')
|
||||
user_group_to_perm = relationship('UserUserGroupToPerm', primaryjoin='UserUserGroupToPerm.user_id==User.user_id', cascade='all, delete-orphan')
|
||||
|
||||
group_member = relationship('UserGroupMember', cascade='all')
|
||||
|
||||
|
|
@ -1328,7 +1328,7 @@ class UserGroup(Base, BaseModel):
|
|||
created_on = Column('created_on', DateTime(timezone=False), nullable=False, default=datetime.datetime.now)
|
||||
_group_data = Column("group_data", LargeBinary(), nullable=True) # JSON data
|
||||
|
||||
members = relationship('UserGroupMember', cascade="all, delete, delete-orphan", lazy="joined")
|
||||
members = relationship('UserGroupMember', cascade="all, delete-orphan", lazy="joined")
|
||||
users_group_to_perm = relationship('UserGroupToPerm', cascade='all')
|
||||
users_group_repo_to_perm = relationship('UserGroupRepoToPerm', cascade='all')
|
||||
users_group_repo_group_to_perm = relationship('UserGroupRepoGroupToPerm', cascade='all')
|
||||
|
|
@ -1665,21 +1665,21 @@ class Repository(Base, BaseModel):
|
|||
primaryjoin='UserFollowing.follows_repo_id==Repository.repo_id',
|
||||
cascade='all')
|
||||
extra_fields = relationship(
|
||||
'RepositoryField', cascade="all, delete, delete-orphan")
|
||||
'RepositoryField', cascade="all, delete-orphan")
|
||||
logs = relationship('UserLog')
|
||||
comments = relationship(
|
||||
'ChangesetComment', cascade="all, delete, delete-orphan")
|
||||
'ChangesetComment', cascade="all, delete-orphan")
|
||||
pull_requests_source = relationship(
|
||||
'PullRequest',
|
||||
primaryjoin='PullRequest.source_repo_id==Repository.repo_id',
|
||||
cascade="all, delete, delete-orphan")
|
||||
cascade="all, delete-orphan")
|
||||
pull_requests_target = relationship(
|
||||
'PullRequest',
|
||||
primaryjoin='PullRequest.target_repo_id==Repository.repo_id',
|
||||
cascade="all, delete, delete-orphan")
|
||||
cascade="all, delete-orphan")
|
||||
ui = relationship('RepoRhodeCodeUi', cascade="all")
|
||||
settings = relationship('RepoRhodeCodeSetting', cascade="all")
|
||||
integrations = relationship('Integration', cascade="all, delete, delete-orphan")
|
||||
integrations = relationship('Integration', cascade="all, delete-orphan")
|
||||
|
||||
scoped_tokens = relationship('UserApiKeys', cascade="all")
|
||||
|
||||
|
|
@ -2551,7 +2551,7 @@ class RepoGroup(Base, BaseModel):
|
|||
users_group_to_perm = relationship('UserGroupRepoGroupToPerm', cascade='all')
|
||||
parent_group = relationship('RepoGroup', remote_side=group_id)
|
||||
user = relationship('User')
|
||||
integrations = relationship('Integration', cascade="all, delete, delete-orphan")
|
||||
integrations = relationship('Integration', cascade="all, delete-orphan")
|
||||
|
||||
def __init__(self, group_name='', parent_group=None):
|
||||
self.group_name = group_name
|
||||
|
|
@ -3270,7 +3270,7 @@ class UserRepoToPerm(Base, BaseModel):
|
|||
repository = relationship('Repository')
|
||||
permission = relationship('Permission')
|
||||
|
||||
branch_perm_entry = relationship('UserToRepoBranchPermission', cascade="all, delete, delete-orphan", lazy='joined')
|
||||
branch_perm_entry = relationship('UserToRepoBranchPermission', cascade="all, delete-orphan", lazy='joined')
|
||||
|
||||
@classmethod
|
||||
def create(cls, user, repository, permission):
|
||||
|
|
@ -3646,7 +3646,7 @@ class ChangesetComment(Base, BaseModel):
|
|||
|
||||
author = relationship('User', lazy='joined')
|
||||
repo = relationship('Repository')
|
||||
status_change = relationship('ChangesetStatus', cascade="all, delete, delete-orphan", lazy='joined')
|
||||
status_change = relationship('ChangesetStatus', cascade="all, delete-orphan", lazy='joined')
|
||||
pull_request = relationship('PullRequest', lazy='joined')
|
||||
pull_request_version = relationship('PullRequestVersion')
|
||||
|
||||
|
|
@ -4120,13 +4120,13 @@ class PullRequest(Base, _PullRequestBase):
|
|||
return '<DB:PullRequest at %#x>' % id(self)
|
||||
|
||||
reviewers = relationship('PullRequestReviewers',
|
||||
cascade="all, delete, delete-orphan")
|
||||
cascade="all, delete-orphan")
|
||||
statuses = relationship('ChangesetStatus',
|
||||
cascade="all, delete, delete-orphan")
|
||||
cascade="all, delete-orphan")
|
||||
comments = relationship('ChangesetComment',
|
||||
cascade="all, delete, delete-orphan")
|
||||
cascade="all, delete-orphan")
|
||||
versions = relationship('PullRequestVersion',
|
||||
cascade="all, delete, delete-orphan",
|
||||
cascade="all, delete-orphan",
|
||||
lazy='dynamic')
|
||||
|
||||
@classmethod
|
||||
|
|
@ -4341,7 +4341,7 @@ class Notification(Base, BaseModel):
|
|||
|
||||
created_by_user = relationship('User')
|
||||
notifications_to_users = relationship('UserNotification', lazy='joined',
|
||||
cascade="all, delete, delete-orphan")
|
||||
cascade="all, delete-orphan")
|
||||
|
||||
@property
|
||||
def recipients(self):
|
||||
|
|
|
|||
|
|
@ -510,8 +510,7 @@ class UserModel(BaseModel):
|
|||
from rhodecode.lib.hooks_base import log_delete_user
|
||||
|
||||
if not cur_user:
|
||||
cur_user = getattr(
|
||||
get_current_rhodecode_user(), 'username', None)
|
||||
cur_user = getattr(get_current_rhodecode_user(), 'username', None)
|
||||
user = self._get_user(user)
|
||||
|
||||
try:
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ from mock import patch
|
|||
from rhodecode.lib import auth
|
||||
from rhodecode.lib.utils2 import md5
|
||||
from rhodecode.model.auth_token import AuthTokenModel
|
||||
from rhodecode.model.db import User
|
||||
from rhodecode.model.db import Session, User
|
||||
from rhodecode.model.repo import RepoModel
|
||||
from rhodecode.model.user import UserModel
|
||||
from rhodecode.model.user_group import UserGroupModel
|
||||
|
|
@ -93,6 +93,7 @@ def test_cached_perms_data_user_group_global_permissions(user_util):
|
|||
|
||||
granted_permission = 'repository.write'
|
||||
UserGroupModel().grant_perm(user_group, granted_permission)
|
||||
Session().commit()
|
||||
|
||||
permissions = get_permissions(user)
|
||||
assert granted_permission in permissions['global']
|
||||
|
|
@ -104,6 +105,7 @@ def test_cached_perms_data_user_group_global_permissions_(user_util):
|
|||
|
||||
granted_permission = 'repository.write'
|
||||
UserGroupModel().grant_perm(user_group, granted_permission)
|
||||
Session().commit()
|
||||
|
||||
permissions = get_permissions(user)
|
||||
assert granted_permission in permissions['global']
|
||||
|
|
@ -112,6 +114,7 @@ def test_cached_perms_data_user_group_global_permissions_(user_util):
|
|||
def test_cached_perms_data_user_global_permissions(user_util):
|
||||
user = user_util.create_user()
|
||||
UserModel().grant_perm(user, 'repository.none')
|
||||
Session().commit()
|
||||
|
||||
permissions = get_permissions(user, user_inherit_default_permissions=True)
|
||||
assert 'repository.read' in permissions['global']
|
||||
|
|
@ -127,6 +130,7 @@ def test_cached_perms_data_repository_permissions_on_private_repository(
|
|||
granted_permission = 'repository.write'
|
||||
RepoModel().grant_user_group_permission(
|
||||
repo, user_group.users_group_name, granted_permission)
|
||||
Session().commit()
|
||||
|
||||
permissions = get_permissions(user)
|
||||
assert permissions['repositories'][repo.repo_name] == granted_permission
|
||||
|
|
@ -153,6 +157,7 @@ def test_cached_perms_data_repository_permissions_not_inheriting_defaults(
|
|||
|
||||
# Don't inherit default object permissions
|
||||
UserModel().grant_perm(user, 'hg.inherit_default_perms.false')
|
||||
Session().commit()
|
||||
|
||||
permissions = get_permissions(user)
|
||||
assert permissions['repositories'][repo.repo_name] == 'repository.none'
|
||||
|
|
@ -203,6 +208,7 @@ def test_cached_perms_data_default_permissions_on_repository_group_no_inherit(
|
|||
# Don't inherit default object permissions
|
||||
user = user_util.create_user()
|
||||
UserModel().grant_perm(user, 'hg.inherit_default_perms.false')
|
||||
Session().commit()
|
||||
|
||||
permissions = get_permissions(user)
|
||||
assert permissions['repositories_groups'][repo_group.group_name] == \
|
||||
|
|
@ -224,6 +230,7 @@ def test_cached_perms_data_repository_permissions_from_user_group(
|
|||
repo, user_group.users_group_name, 'repository.read')
|
||||
RepoModel().grant_user_group_permission(
|
||||
repo, user_group2.users_group_name, 'repository.write')
|
||||
Session().commit()
|
||||
|
||||
permissions = get_permissions(user)
|
||||
assert permissions['repositories'][repo.repo_name] == 'repository.write'
|
||||
|
|
@ -238,6 +245,7 @@ def test_cached_perms_data_repository_permissions_from_user_group_owner(
|
|||
|
||||
RepoModel().grant_user_group_permission(
|
||||
repo, user_group.users_group_name, 'repository.write')
|
||||
Session().commit()
|
||||
|
||||
permissions = get_permissions(user)
|
||||
assert permissions['repositories'][repo.repo_name] == 'repository.admin'
|
||||
|
|
@ -249,6 +257,7 @@ def test_cached_perms_data_user_repository_permissions(
|
|||
repo = backend_random.create_repo()
|
||||
granted_permission = 'repository.write'
|
||||
RepoModel().grant_user_permission(repo, user, granted_permission)
|
||||
Session().commit()
|
||||
|
||||
permissions = get_permissions(user)
|
||||
assert permissions['repositories'][repo.repo_name] == granted_permission
|
||||
|
|
@ -260,6 +269,7 @@ def test_cached_perms_data_user_repository_permissions_explicit(
|
|||
repo = backend_random.create_repo()
|
||||
granted_permission = 'repository.none'
|
||||
RepoModel().grant_user_permission(repo, user, granted_permission)
|
||||
Session().commit()
|
||||
|
||||
permissions = get_permissions(user, explicit=True)
|
||||
assert permissions['repositories'][repo.repo_name] == granted_permission
|
||||
|
|
@ -271,6 +281,7 @@ def test_cached_perms_data_user_repository_permissions_owner(
|
|||
repo = backend_random.create_repo()
|
||||
repo.user_id = user.user_id
|
||||
RepoModel().grant_user_permission(repo, user, 'repository.write')
|
||||
Session().commit()
|
||||
|
||||
permissions = get_permissions(user)
|
||||
assert permissions['repositories'][repo.repo_name] == 'repository.admin'
|
||||
|
|
@ -380,6 +391,7 @@ def test_cached_perms_data_user_group_permissions(
|
|||
user = user_util.create_user()
|
||||
user_group = user_util.create_user_group()
|
||||
UserGroupModel().grant_user_permission(user_group, user, 'usergroup.write')
|
||||
Session().commit()
|
||||
|
||||
permissions = get_permissions(user)
|
||||
assert permissions['user_groups'][user_group.users_group_name] == \
|
||||
|
|
@ -391,6 +403,7 @@ def test_cached_perms_data_user_group_permissions_explicit(
|
|||
user = user_util.create_user()
|
||||
user_group = user_util.create_user_group()
|
||||
UserGroupModel().grant_user_permission(user_group, user, 'usergroup.none')
|
||||
Session().commit()
|
||||
|
||||
permissions = get_permissions(user, explicit=True)
|
||||
assert permissions['user_groups'][user_group.users_group_name] == \
|
||||
|
|
@ -404,6 +417,7 @@ def test_cached_perms_data_user_group_permissions_not_inheriting_defaults(
|
|||
|
||||
# Don't inherit default object permissions
|
||||
UserModel().grant_perm(user, 'hg.inherit_default_perms.false')
|
||||
Session().commit()
|
||||
|
||||
permissions = get_permissions(user)
|
||||
assert permissions['user_groups'][user_group.users_group_name] == \
|
||||
|
|
@ -447,6 +461,7 @@ def test_permission_calculator_repository_permissions_robustness_from_user(
|
|||
|
||||
RepoModel().grant_user_permission(
|
||||
backend_random.repo, user, 'repository.write')
|
||||
Session().commit()
|
||||
|
||||
calculator = auth.PermissionCalculator(
|
||||
user.user_id, {}, False, False, False, 'higherwin')
|
||||
|
|
@ -610,7 +625,7 @@ def test_auth_by_token(test_token, test_roles, auth_result, expected_tokens,
|
|||
user = user_util.create_user()
|
||||
user_id = user.user_id
|
||||
for token, role, expires in expected_tokens:
|
||||
new_token = AuthTokenModel().create(user_id, 'test-token', expires, role)
|
||||
new_token = AuthTokenModel().create(user_id, u'test-token', expires, role)
|
||||
new_token.api_key = token # inject known name for testing...
|
||||
|
||||
assert auth_result == user.authenticate_by_token(
|
||||
|
|
|
|||
|
|
@ -277,6 +277,8 @@ class TestCreateOrUpdateRepoHookSettings(object):
|
|||
|
||||
with pytest.raises(ValueError) as exc_info:
|
||||
model.create_or_update_repo_hook_settings(data)
|
||||
Session().commit()
|
||||
|
||||
msg = 'The given data does not contain {} key'.format(deleted_key)
|
||||
assert str(exc_info.value) == msg
|
||||
|
||||
|
|
@ -286,6 +288,8 @@ class TestCreateOrUpdateRepoHookSettings(object):
|
|||
settings_util.create_repo_rhodecode_ui(
|
||||
repo_stub, section, None, key=key, active=False)
|
||||
model.create_or_update_repo_hook_settings(HOOKS_FORM_DATA)
|
||||
Session().commit()
|
||||
|
||||
for section, key in model.HOOKS_SETTINGS:
|
||||
ui = model.repo_settings.get_ui_by_section_and_key(section, key)
|
||||
assert ui.ui_active is True
|
||||
|
|
@ -297,6 +301,7 @@ class TestCreateOrUpdateRepoHookSettings(object):
|
|||
with global_patch as global_mock:
|
||||
global_mock.get_ui_by_section_and_key.return_value = global_setting
|
||||
model.create_or_update_repo_hook_settings(HOOKS_FORM_DATA)
|
||||
Session().commit()
|
||||
|
||||
|
||||
class TestUpdateGlobalHookSettings(object):
|
||||
|
|
@ -309,6 +314,8 @@ class TestUpdateGlobalHookSettings(object):
|
|||
|
||||
with pytest.raises(ValueError) as exc_info:
|
||||
model.update_global_hook_settings(data)
|
||||
Session().commit()
|
||||
|
||||
msg = 'The given data does not contain {} key'.format(deleted_key)
|
||||
assert str(exc_info.value) == msg
|
||||
|
||||
|
|
@ -322,6 +329,8 @@ class TestUpdateGlobalHookSettings(object):
|
|||
session_patcher = mock.patch('rhodecode.model.settings.Session')
|
||||
with get_settings_patcher as get_settings_mock, session_patcher:
|
||||
model.update_global_hook_settings(HOOKS_FORM_DATA)
|
||||
Session().commit()
|
||||
|
||||
assert setting_mock.ui_active is True
|
||||
assert get_settings_mock.call_count == 3
|
||||
|
||||
|
|
@ -333,6 +342,8 @@ class TestCreateOrUpdateRepoGeneralSettings(object):
|
|||
model, '_create_or_update_general_settings')
|
||||
with create_patch as create_mock:
|
||||
model.create_or_update_repo_pr_settings(GENERAL_FORM_DATA)
|
||||
Session().commit()
|
||||
|
||||
create_mock.assert_called_once_with(
|
||||
model.repo_settings, GENERAL_FORM_DATA)
|
||||
|
||||
|
|
@ -380,6 +391,7 @@ class TestCreateOrUpdateGeneralSettings(object):
|
|||
|
||||
with pytest.raises(ValueError) as exc_info:
|
||||
model._create_or_update_general_settings(model.repo_settings, data)
|
||||
Session().commit()
|
||||
|
||||
msg = 'The given data does not contain {} key'.format(deleted_key)
|
||||
assert str(exc_info.value) == msg
|
||||
|
|
@ -392,6 +404,7 @@ class TestCreateOrUpdateGeneralSettings(object):
|
|||
|
||||
model._create_or_update_general_settings(
|
||||
model.repo_settings, GENERAL_FORM_DATA)
|
||||
Session().commit()
|
||||
|
||||
for name in model.GENERAL_SETTINGS:
|
||||
setting = model.repo_settings.get_setting_by_name(name)
|
||||
|
|
@ -403,12 +416,16 @@ class TestCreateRepoSvnSettings(object):
|
|||
model = VcsSettingsModel(repo=repo_stub.repo_name)
|
||||
with mock.patch.object(model, '_create_svn_settings') as create_mock:
|
||||
model.create_repo_svn_settings(SVN_FORM_DATA)
|
||||
Session().commit()
|
||||
|
||||
create_mock.assert_called_once_with(model.repo_settings, SVN_FORM_DATA)
|
||||
|
||||
def test_raises_exception_when_repository_is_not_specified(self):
|
||||
model = VcsSettingsModel()
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
model.create_repo_svn_settings(SVN_FORM_DATA)
|
||||
Session().commit()
|
||||
|
||||
assert str(exc_info.value) == 'Repository is not specified'
|
||||
|
||||
|
||||
|
|
@ -547,6 +564,8 @@ class TestCreateOrUpdateRepoHgSettings(object):
|
|||
data.pop(field_to_remove)
|
||||
with pytest.raises(ValueError) as exc_info:
|
||||
model.create_or_update_repo_hg_settings(data)
|
||||
Session().commit()
|
||||
|
||||
expected_message = 'The given data does not contain {} key'.format(
|
||||
field_to_remove)
|
||||
assert str(exc_info.value) == expected_message
|
||||
|
|
@ -555,6 +574,8 @@ class TestCreateOrUpdateRepoHgSettings(object):
|
|||
model = VcsSettingsModel()
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
model.create_or_update_repo_hg_settings(self.FORM_DATA)
|
||||
Session().commit()
|
||||
|
||||
assert str(exc_info.value) == 'Repository is not specified'
|
||||
|
||||
|
||||
|
|
@ -563,6 +584,8 @@ class TestUpdateGlobalSslSetting(object):
|
|||
model = VcsSettingsModel()
|
||||
with mock.patch.object(model, '_create_or_update_ui') as create_mock:
|
||||
model.update_global_ssl_setting('False')
|
||||
Session().commit()
|
||||
|
||||
create_mock.assert_called_once_with(
|
||||
model.global_settings, 'web', 'push_ssl', value='False')
|
||||
|
||||
|
|
@ -572,6 +595,8 @@ class TestUpdateGlobalPathSetting(object):
|
|||
model = VcsSettingsModel()
|
||||
with mock.patch.object(model, '_create_or_update_ui') as create_mock:
|
||||
model.update_global_path_setting('False')
|
||||
Session().commit()
|
||||
|
||||
create_mock.assert_called_once_with(
|
||||
model.global_settings, 'paths', '/', value='False')
|
||||
|
||||
|
|
@ -589,6 +614,8 @@ class TestCreateOrUpdateGlobalHgSettings(object):
|
|||
model = VcsSettingsModel()
|
||||
with mock.patch.object(model, '_create_or_update_ui') as create_mock:
|
||||
model.create_or_update_global_hg_settings(self.FORM_DATA)
|
||||
Session().commit()
|
||||
|
||||
expected_calls = [
|
||||
mock.call(model.global_settings, 'extensions', 'largefiles', active=False, value=''),
|
||||
mock.call(model.global_settings, 'largefiles', 'usercache', value='/example/largefiles-store'),
|
||||
|
|
@ -609,6 +636,8 @@ class TestCreateOrUpdateGlobalHgSettings(object):
|
|||
data.pop(field_to_remove)
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
model.create_or_update_global_hg_settings(data)
|
||||
Session().commit()
|
||||
|
||||
expected_message = 'The given data does not contain {} key'.format(
|
||||
field_to_remove)
|
||||
assert str(exc_info.value) == expected_message
|
||||
|
|
@ -624,6 +653,8 @@ class TestCreateOrUpdateGlobalGitSettings(object):
|
|||
model = VcsSettingsModel()
|
||||
with mock.patch.object(model, '_create_or_update_ui') as create_mock:
|
||||
model.create_or_update_global_git_settings(self.FORM_DATA)
|
||||
Session().commit()
|
||||
|
||||
expected_calls = [
|
||||
mock.call(model.global_settings, 'vcs_git_lfs', 'enabled', active=False, value=False),
|
||||
mock.call(model.global_settings, 'vcs_git_lfs', 'store_location', value='/example/lfs-store'),
|
||||
|
|
@ -649,6 +680,8 @@ class TestDeleteRepoSvnPattern(object):
|
|||
delete_ui_patch = mock.patch.object(model.repo_settings, 'delete_ui')
|
||||
with delete_ui_patch as delete_ui_mock:
|
||||
model.delete_repo_svn_pattern(123)
|
||||
Session().commit()
|
||||
|
||||
delete_ui_mock.assert_called_once_with(-1)
|
||||
|
||||
def test_raises_exception_when_repository_is_not_specified(self):
|
||||
|
|
@ -748,6 +781,8 @@ class TestGetRepoUiSettings(object):
|
|||
for section in svn_sections:
|
||||
settings_util.create_rhodecode_ui(
|
||||
section, 'repo', key='deadbeef' + section, active=False)
|
||||
Session().commit()
|
||||
|
||||
model = VcsSettingsModel(repo=repo_stub.repo_name)
|
||||
result = model.get_repo_ui_settings()
|
||||
for setting in result:
|
||||
|
|
@ -795,6 +830,8 @@ class TestGetRepoGeneralSettings(object):
|
|||
for key in VcsSettingsModel.GENERAL_SETTINGS:
|
||||
settings_util.create_repo_rhodecode_setting(
|
||||
repo_stub, key, 'abcde', type_='unicode')
|
||||
Session().commit()
|
||||
|
||||
model = VcsSettingsModel(repo=repo_stub.repo_name)
|
||||
result = model.get_repo_ui_settings()
|
||||
for key in result:
|
||||
|
|
@ -820,6 +857,8 @@ class TestGetGlobalGeneralSettings(object):
|
|||
for key in VcsSettingsModel.GENERAL_SETTINGS:
|
||||
settings_util.create_repo_rhodecode_setting(
|
||||
repo_stub, key, 'abcde', type_='unicode')
|
||||
Session().commit()
|
||||
|
||||
model = VcsSettingsModel(repo=repo_stub.repo_name)
|
||||
result = model.get_global_general_settings()
|
||||
expected_result = model.global_settings.get_all_settings()
|
||||
|
|
@ -838,6 +877,8 @@ class TestGetGlobalUiSettings(object):
|
|||
for section, key in VcsSettingsModel.HOOKS_SETTINGS:
|
||||
settings_util.create_repo_rhodecode_ui(
|
||||
repo_stub, section, 'repo', key=key, active=False)
|
||||
Session().commit()
|
||||
|
||||
model = VcsSettingsModel(repo=repo_stub.repo_name)
|
||||
result = model.get_global_ui_settings()
|
||||
expected_result = model.global_settings.get_ui()
|
||||
|
|
@ -868,6 +909,8 @@ class TestGetGeneralSettings(object):
|
|||
for key in VcsSettingsModel.GENERAL_SETTINGS:
|
||||
settings_util.create_repo_rhodecode_setting(
|
||||
repo_stub, key, 'abcde', type_='unicode')
|
||||
Session().commit()
|
||||
|
||||
result = model.get_general_settings()
|
||||
expected_result = model.get_global_general_settings()
|
||||
assert sorted(result) == sorted(expected_result)
|
||||
|
|
@ -879,6 +922,8 @@ class TestGetGeneralSettings(object):
|
|||
for key in VcsSettingsModel.GENERAL_SETTINGS:
|
||||
settings_util.create_repo_rhodecode_setting(
|
||||
repo_stub, key, 'abcde', type_='unicode')
|
||||
Session().commit()
|
||||
|
||||
result = model.get_general_settings()
|
||||
expected_result = model.get_repo_general_settings()
|
||||
assert sorted(result) == sorted(expected_result)
|
||||
|
|
@ -898,6 +943,8 @@ class TestGetUiSettings(object):
|
|||
for section, key in VcsSettingsModel.HOOKS_SETTINGS:
|
||||
settings_util.create_repo_rhodecode_ui(
|
||||
repo_stub, section, 'repo', key=key, active=True)
|
||||
Session().commit()
|
||||
|
||||
result = model.get_ui_settings()
|
||||
expected_result = model.get_global_ui_settings()
|
||||
assert sorted(result) == sorted(expected_result)
|
||||
|
|
@ -909,6 +956,8 @@ class TestGetUiSettings(object):
|
|||
for section, key in VcsSettingsModel.HOOKS_SETTINGS:
|
||||
settings_util.create_repo_rhodecode_ui(
|
||||
repo_stub, section, 'repo', key=key, active=True)
|
||||
Session().commit()
|
||||
|
||||
result = model.get_ui_settings()
|
||||
expected_result = model.get_repo_ui_settings()
|
||||
assert sorted(result) == sorted(expected_result)
|
||||
|
|
@ -916,9 +965,12 @@ class TestGetUiSettings(object):
|
|||
def test_repo_settings_filtered_by_section_and_key(self, repo_stub):
|
||||
model = VcsSettingsModel(repo=repo_stub.repo_name)
|
||||
model.inherit_global_settings = False
|
||||
|
||||
args = ('section', 'key')
|
||||
with mock.patch.object(model, 'get_repo_ui_settings') as settings_mock:
|
||||
model.get_ui_settings(*args)
|
||||
Session().commit()
|
||||
|
||||
settings_mock.assert_called_once_with(*args)
|
||||
|
||||
def test_global_settings_filtered_by_section_and_key(self):
|
||||
|
|
@ -942,6 +994,8 @@ class TestGetSvnPatterns(object):
|
|||
args = ('section', )
|
||||
with mock.patch.object(model, 'get_repo_ui_settings') as settings_mock:
|
||||
model.get_svn_patterns(*args)
|
||||
|
||||
Session().commit()
|
||||
settings_mock.assert_called_once_with(*args)
|
||||
|
||||
def test_global_settings_filtered_by_section_and_key(self):
|
||||
|
|
@ -990,6 +1044,8 @@ class TestCreateOrUpdateRepoSettings(object):
|
|||
model = VcsSettingsModel()
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
model.create_or_update_repo_settings(data=self.FORM_DATA)
|
||||
Session().commit()
|
||||
|
||||
assert str(exc_info.value) == 'Repository is not specified'
|
||||
|
||||
def test_only_svn_settings_are_updated_when_type_is_svn(self, backend_svn):
|
||||
|
|
@ -998,6 +1054,8 @@ class TestCreateOrUpdateRepoSettings(object):
|
|||
with self._patch_model(model) as mocks:
|
||||
model.create_or_update_repo_settings(
|
||||
data=self.FORM_DATA, inherit_global_settings=False)
|
||||
Session().commit()
|
||||
|
||||
mocks['create_repo_svn_settings'].assert_called_once_with(
|
||||
self.FORM_DATA)
|
||||
non_called_methods = (
|
||||
|
|
@ -1013,6 +1071,7 @@ class TestCreateOrUpdateRepoSettings(object):
|
|||
with self._patch_model(model) as mocks:
|
||||
model.create_or_update_repo_settings(
|
||||
data=self.FORM_DATA, inherit_global_settings=False)
|
||||
Session().commit()
|
||||
|
||||
assert mocks['create_repo_svn_settings'].call_count == 0
|
||||
called_methods = (
|
||||
|
|
@ -1060,6 +1119,8 @@ class TestCreateOrUpdateRepoSettings(object):
|
|||
with invalidation_patcher as invalidation_mock:
|
||||
model.create_or_update_repo_settings(
|
||||
data=self.FORM_DATA, inherit_global_settings=True)
|
||||
Session().commit()
|
||||
|
||||
invalidation_mock.assert_called_once_with(
|
||||
repo_stub.repo_name, delete=True)
|
||||
|
||||
|
|
@ -1069,6 +1130,8 @@ class TestCreateOrUpdateRepoSettings(object):
|
|||
with self._patch_model(model):
|
||||
model.create_or_update_repo_settings(
|
||||
data=self.FORM_DATA, inherit_global_settings=False)
|
||||
Session().commit()
|
||||
|
||||
assert model.inherit_global_settings is False
|
||||
|
||||
def _patch_model(self, model):
|
||||
|
|
|
|||
|
|
@ -79,21 +79,23 @@ class TestPermissions(object):
|
|||
def cleanup(self):
|
||||
if hasattr(self, 'test_repo'):
|
||||
RepoModel().delete(repo=self.test_repo)
|
||||
Session().commit()
|
||||
|
||||
if hasattr(self, 'g1'):
|
||||
RepoGroupModel().delete(self.g1.group_id)
|
||||
if hasattr(self, 'g2'):
|
||||
RepoGroupModel().delete(self.g2.group_id)
|
||||
Session().commit()
|
||||
|
||||
UserModel().delete(self.u1)
|
||||
UserModel().delete(self.u2)
|
||||
UserModel().delete(self.u3)
|
||||
UserModel().delete(self.a1)
|
||||
UserModel().delete(self.u1, handle_repos='delete', handle_repo_groups='delete')
|
||||
UserModel().delete(self.u2, handle_repos='delete', handle_repo_groups='delete')
|
||||
UserModel().delete(self.u3, handle_repos='delete', handle_repo_groups='delete')
|
||||
UserModel().delete(self.a1, handle_repos='delete', handle_repo_groups='delete')
|
||||
Session().commit()
|
||||
|
||||
if hasattr(self, 'ug1'):
|
||||
UserGroupModel().delete(self.ug1, force=True)
|
||||
|
||||
Session().commit()
|
||||
Session().commit()
|
||||
|
||||
def test_default_perms_set(self, repo_name):
|
||||
assert repo_perms(self.u1)[repo_name] == 'repository.read'
|
||||
|
|
@ -183,6 +185,7 @@ class TestPermissions(object):
|
|||
new_perm_gr = 'repository.write'
|
||||
RepoModel().grant_user_group_permission(
|
||||
repo=repo_name, group_name=self.ug1, perm=new_perm_gr)
|
||||
Session().commit()
|
||||
|
||||
assert repo_perms(self.u1)[repo_name] == new_perm
|
||||
assert group_perms(self.u1) == {}
|
||||
|
|
@ -197,6 +200,7 @@ class TestPermissions(object):
|
|||
new_perm_gr = 'repository.write'
|
||||
RepoModel().grant_user_group_permission(
|
||||
repo=repo_name, group_name=self.ug1, perm=new_perm_gr)
|
||||
Session().commit()
|
||||
|
||||
assert repo_perms(self.u3)[repo_name] == new_perm_gr
|
||||
assert group_perms(self.u3) == {}
|
||||
|
|
@ -220,6 +224,7 @@ class TestPermissions(object):
|
|||
new_perm_l = 'repository.read'
|
||||
RepoModel().grant_user_group_permission(
|
||||
repo=repo_name, group_name=self.ug1, perm=new_perm_l)
|
||||
Session().commit()
|
||||
|
||||
assert repo_perms(self.u1)[repo_name] == new_perm_h
|
||||
assert group_perms(self.u1) == {}
|
||||
|
|
@ -281,6 +286,8 @@ class TestPermissions(object):
|
|||
# set default permission to none
|
||||
RepoGroupModel().grant_user_permission(
|
||||
repo_group=self.g1, user=self.anon, perm='group.none')
|
||||
Session().commit()
|
||||
|
||||
# make group
|
||||
self.ug1 = fixture.create_user_group('G1')
|
||||
# add user to group
|
||||
|
|
@ -501,6 +508,7 @@ class TestPermissions(object):
|
|||
UserGroupModel().add_user_to_group(self.ug1, self.u1)
|
||||
RepoGroupModel().grant_user_group_permission(
|
||||
repo_group=self.g1, group_name=self.ug1, perm='group.write')
|
||||
Session().commit()
|
||||
|
||||
# Verify that user does not get any special permission if he is not
|
||||
# owner
|
||||
|
|
@ -515,6 +523,7 @@ class TestPermissions(object):
|
|||
self.g1 = fixture.create_repo_group('test1')
|
||||
RepoGroupModel().grant_user_permission(
|
||||
repo_group=self.g1, user=self.u1, perm='group.write')
|
||||
Session().commit()
|
||||
|
||||
# Verify that user does not get any special permission if he is not
|
||||
# owner
|
||||
|
|
@ -524,7 +533,7 @@ class TestPermissions(object):
|
|||
self.g1.user = self.u1
|
||||
assert group_perms(self.u1) == {u'test1': 'group.admin'}
|
||||
|
||||
def _test_def_user_perm_equal(
|
||||
def assert_user_perm_equal(
|
||||
self, user, change_factor=0, compare_keys=None):
|
||||
perms = UserToPerm.query().filter(UserToPerm.user == user).all()
|
||||
assert len(perms) == \
|
||||
|
|
@ -533,7 +542,7 @@ class TestPermissions(object):
|
|||
assert set(
|
||||
x.permissions.permission_name for x in perms) == compare_keys
|
||||
|
||||
def _test_def_user_group_perm_equal(
|
||||
def assert_def_user_group_perm_equal(
|
||||
self, user_group, change_factor=0, compare_keys=None):
|
||||
perms = UserGroupToPerm.query().filter(
|
||||
UserGroupToPerm.users_group == user_group).all()
|
||||
|
|
@ -545,21 +554,21 @@ class TestPermissions(object):
|
|||
|
||||
def test_set_default_permissions(self):
|
||||
PermissionModel().create_default_user_permissions(user=self.u1)
|
||||
self._test_def_user_perm_equal(user=self.u1)
|
||||
self.assert_user_perm_equal(user=self.u1)
|
||||
|
||||
def test_set_default_permissions_after_one_is_missing(self):
|
||||
PermissionModel().create_default_user_permissions(user=self.u1)
|
||||
self._test_def_user_perm_equal(user=self.u1)
|
||||
self.assert_user_perm_equal(user=self.u1)
|
||||
# now we delete one, it should be re-created after another call
|
||||
perms = UserToPerm.query().filter(UserToPerm.user == self.u1).all()
|
||||
Session().delete(perms[0])
|
||||
Session().commit()
|
||||
|
||||
self._test_def_user_perm_equal(user=self.u1, change_factor=-1)
|
||||
self.assert_user_perm_equal(user=self.u1, change_factor=-1)
|
||||
|
||||
# create missing one !
|
||||
PermissionModel().create_default_user_permissions(user=self.u1)
|
||||
self._test_def_user_perm_equal(user=self.u1)
|
||||
self.assert_user_perm_equal(user=self.u1)
|
||||
|
||||
@pytest.mark.parametrize("perm, modify_to", [
|
||||
('repository.read', 'repository.none'),
|
||||
|
|
@ -571,7 +580,7 @@ class TestPermissions(object):
|
|||
])
|
||||
def test_set_default_permissions_after_modification(self, perm, modify_to):
|
||||
PermissionModel().create_default_user_permissions(user=self.u1)
|
||||
self._test_def_user_perm_equal(user=self.u1)
|
||||
self.assert_user_perm_equal(user=self.u1)
|
||||
|
||||
old = Permission.get_by_key(perm)
|
||||
new = Permission.get_by_key(modify_to)
|
||||
|
|
@ -587,28 +596,28 @@ class TestPermissions(object):
|
|||
Session().commit()
|
||||
|
||||
PermissionModel().create_default_user_permissions(user=self.u1)
|
||||
self._test_def_user_perm_equal(user=self.u1)
|
||||
self.assert_user_perm_equal(user=self.u1)
|
||||
|
||||
def test_clear_user_perms(self):
|
||||
PermissionModel().create_default_user_permissions(user=self.u1)
|
||||
self._test_def_user_perm_equal(user=self.u1)
|
||||
self.assert_user_perm_equal(user=self.u1)
|
||||
|
||||
# now clear permissions
|
||||
cleared = PermissionModel()._clear_user_perms(self.u1.user_id)
|
||||
self._test_def_user_perm_equal(user=self.u1,
|
||||
change_factor=len(cleared)*-1)
|
||||
self.assert_user_perm_equal(user=self.u1,
|
||||
change_factor=len(cleared)*-1)
|
||||
|
||||
def test_clear_user_group_perms(self):
|
||||
self.ug1 = fixture.create_user_group('G1')
|
||||
PermissionModel().create_default_user_group_permissions(
|
||||
user_group=self.ug1)
|
||||
self._test_def_user_group_perm_equal(user_group=self.ug1)
|
||||
self.assert_def_user_group_perm_equal(user_group=self.ug1)
|
||||
|
||||
# now clear permissions
|
||||
cleared = PermissionModel()._clear_user_group_perms(
|
||||
self.ug1.users_group_id)
|
||||
self._test_def_user_group_perm_equal(user_group=self.ug1,
|
||||
change_factor=len(cleared)*-1)
|
||||
self.assert_def_user_group_perm_equal(user_group=self.ug1,
|
||||
change_factor=len(cleared)*-1)
|
||||
|
||||
@pytest.mark.parametrize("form_result", [
|
||||
{},
|
||||
|
|
@ -626,7 +635,7 @@ class TestPermissions(object):
|
|||
Session().commit()
|
||||
change_factor = -1 * (len(Permission.DEFAULT_USER_PERMISSIONS)
|
||||
- len(form_result.keys()))
|
||||
self._test_def_user_perm_equal(
|
||||
self.assert_user_perm_equal(
|
||||
self.u1, change_factor=change_factor)
|
||||
|
||||
@pytest.mark.parametrize("form_result", [
|
||||
|
|
@ -646,7 +655,7 @@ class TestPermissions(object):
|
|||
Session().commit()
|
||||
change_factor = -1 * (len(Permission.DEFAULT_USER_PERMISSIONS)
|
||||
- len(form_result.keys()))
|
||||
self._test_def_user_group_perm_equal(
|
||||
self.assert_def_user_group_perm_equal(
|
||||
self.ug1, change_factor=change_factor)
|
||||
|
||||
@pytest.mark.parametrize("group_active, expected_perm", [
|
||||
|
|
|
|||
|
|
@ -124,6 +124,8 @@ class TestPullRequestModel(object):
|
|||
PullRequestModel().update_reviewers(
|
||||
pull_request, [(pull_request.author, ['author'], False, [])],
|
||||
pull_request.author)
|
||||
Session().commit()
|
||||
|
||||
prs = PullRequestModel().get_awaiting_my_review(
|
||||
pull_request.target_repo, user_id=pull_request.author.user_id)
|
||||
assert isinstance(prs, list)
|
||||
|
|
@ -133,6 +135,8 @@ class TestPullRequestModel(object):
|
|||
PullRequestModel().update_reviewers(
|
||||
pull_request, [(pull_request.author, ['author'], False, [])],
|
||||
pull_request.author)
|
||||
Session().commit()
|
||||
|
||||
pr_count = PullRequestModel().count_awaiting_my_review(
|
||||
pull_request.target_repo, user_id=pull_request.author.user_id)
|
||||
assert pr_count == 1
|
||||
|
|
@ -140,6 +144,7 @@ class TestPullRequestModel(object):
|
|||
def test_delete_calls_cleanup_merge(self, pull_request):
|
||||
repo_id = pull_request.target_repo.repo_id
|
||||
PullRequestModel().delete(pull_request, pull_request.author)
|
||||
Session().commit()
|
||||
|
||||
self.workspace_remove_mock.assert_called_once_with(
|
||||
repo_id, self.workspace_id)
|
||||
|
|
@ -147,6 +152,8 @@ class TestPullRequestModel(object):
|
|||
def test_close_calls_cleanup_and_hook(self, pull_request):
|
||||
PullRequestModel().close_pull_request(
|
||||
pull_request, pull_request.author)
|
||||
Session().commit()
|
||||
|
||||
repo_id = pull_request.target_repo.repo_id
|
||||
|
||||
self.workspace_remove_mock.assert_called_once_with(
|
||||
|
|
@ -286,6 +293,7 @@ class TestPullRequestModel(object):
|
|||
merge_extras['repository'] = pull_request.target_repo.repo_name
|
||||
PullRequestModel().merge_repo(
|
||||
pull_request, pull_request.author, extras=merge_extras)
|
||||
Session().commit()
|
||||
|
||||
message = (
|
||||
u'Merge pull request #{pr_id} from {source_repo} {source_ref_name}'
|
||||
|
|
@ -327,6 +335,7 @@ class TestPullRequestModel(object):
|
|||
assert pull_request.pull_request_state == PullRequest.STATE_UPDATING
|
||||
PullRequestModel().merge_repo(
|
||||
pull_request, pull_request.author, extras=merge_extras)
|
||||
Session().commit()
|
||||
|
||||
assert pull_request.pull_request_state == PullRequest.STATE_CREATED
|
||||
|
||||
|
|
@ -367,6 +376,7 @@ class TestPullRequestModel(object):
|
|||
merge_extras['repository'] = pull_request.target_repo.repo_name
|
||||
PullRequestModel().merge_repo(
|
||||
pull_request, pull_request.author, extras=merge_extras)
|
||||
Session().commit()
|
||||
|
||||
message = (
|
||||
u'Merge pull request #{pr_id} from {source_repo} {source_ref_name}'
|
||||
|
|
@ -442,6 +452,7 @@ class TestIntegrationMerge(object):
|
|||
with mock.patch.dict(rhodecode.CONFIG, extra_config, clear=False):
|
||||
merge_state = PullRequestModel().merge_repo(
|
||||
pull_request, user_admin, extras=merge_extras)
|
||||
Session().commit()
|
||||
|
||||
assert merge_state.executed
|
||||
assert '_pre_push_hook' in capture_rcextensions
|
||||
|
|
@ -459,6 +470,7 @@ class TestIntegrationMerge(object):
|
|||
pre_pull.side_effect = RepositoryError("Disallow push!")
|
||||
merge_status = PullRequestModel().merge_repo(
|
||||
pull_request, user_admin, extras=merge_extras)
|
||||
Session().commit()
|
||||
|
||||
assert not merge_status.executed
|
||||
assert 'pre_push' not in capture_rcextensions
|
||||
|
|
@ -479,6 +491,8 @@ class TestIntegrationMerge(object):
|
|||
Session().commit()
|
||||
merge_status = PullRequestModel().merge_repo(
|
||||
pull_request, user_regular, extras=merge_extras)
|
||||
Session().commit()
|
||||
|
||||
assert not merge_status.executed
|
||||
|
||||
|
||||
|
|
@ -889,6 +903,7 @@ def test_link_comments_to_version_only_updates_unlinked_comments(pr_util, config
|
|||
version2 = pr_util.create_version_of_pull_request()
|
||||
|
||||
PullRequestModel()._link_comments_to_version(version2)
|
||||
Session().commit()
|
||||
|
||||
# Expect that only the new comment is linked to version2
|
||||
assert (
|
||||
|
|
|
|||
|
|
@ -395,7 +395,7 @@ class TestVCSOperations(object):
|
|||
|
||||
user = user_util.create_user()
|
||||
auth_token = AuthTokenModel().create(
|
||||
user.user_id, 'test-token', -10, AuthTokenModel.cls.ROLE_VCS)
|
||||
user.user_id, u'test-token', -10, AuthTokenModel.cls.ROLE_VCS)
|
||||
token = auth_token.api_key
|
||||
|
||||
clone_url = rc_web_server.repo_clone_url(
|
||||
|
|
@ -412,7 +412,7 @@ class TestVCSOperations(object):
|
|||
|
||||
user = user_util.create_user()
|
||||
auth_token = AuthTokenModel().create(
|
||||
user.user_id, 'test-token', -1, AuthTokenModel.cls.ROLE_API)
|
||||
user.user_id, u'test-token', -1, AuthTokenModel.cls.ROLE_API)
|
||||
token = auth_token.api_key
|
||||
|
||||
clone_url = rc_web_server.repo_clone_url(
|
||||
|
|
@ -445,7 +445,7 @@ class TestVCSOperations(object):
|
|||
'egg:rhodecode-enterprise-ce#rhodecode'])
|
||||
user = user_util.create_user()
|
||||
auth_token = AuthTokenModel().create(
|
||||
user.user_id, 'test-token', -1, AuthTokenModel.cls.ROLE_VCS)
|
||||
user.user_id, u'test-token', -1, AuthTokenModel.cls.ROLE_VCS)
|
||||
token = auth_token.api_key
|
||||
|
||||
# manually set scope
|
||||
|
|
@ -466,7 +466,7 @@ class TestVCSOperations(object):
|
|||
'egg:rhodecode-enterprise-ce#rhodecode'])
|
||||
user = user_util.create_user()
|
||||
auth_token = AuthTokenModel().create(
|
||||
user.user_id, 'test-token', -1, AuthTokenModel.cls.ROLE_VCS)
|
||||
user.user_id, u'test-token', -1, AuthTokenModel.cls.ROLE_VCS)
|
||||
token = auth_token.api_key
|
||||
|
||||
# manually set scope
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue