##// END OF EJS Templates
packaging: switched to nix 20.03 packages and latest pip2nix code...
packaging: switched to nix 20.03 packages and latest pip2nix code - dependencies changed: atomicwrites==1.4.0 ipython==5.10.0 pytest==4.6.9 py==1.8.1 pytest-cov==2.8.1 pytest-sugar==0.9.3 pytest-runner==5.2.0 rhodecode-tools==2.0.0 ipython==5.10.0 mysqlclient==1.4.6 (change from mysql-python, which is deprecated) mako==1.1.2 lxml==4.5.0 click==7.1.2

File last commit:

r4306:09801de9 default
r4756:2a5b3f8a python3
Show More
test_db.py
62 lines | 2.2 KiB | text/x-python | PythonLexer
# -*- coding: utf-8 -*-
# Copyright (C) 2010-2020 RhodeCode GmbH
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License, version 3
# (only), as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This program is dual-licensed. If you wish to learn more about the
# RhodeCode Enterprise Edition, including its added features, Support services,
# and proprietary license terms, please see https://rhodecode.com/licenses/
import pytest
import random
from rhodecode.model import db
@pytest.mark.parametrize("DBModel, klass, id_attr", [
(db.ChangesetComment, 'Comment', 'comment_id'),
(db.PullRequest, db.PullRequest.__name__, 'pull_request_id'),
(db.PullRequestVersion, db.PullRequestVersion.__name__, 'pull_request_version_id'),
])
class TestModelReprImplementation(object):
def test_repr_without_id(self, DBModel, klass, id_attr):
instance = DBModel()
expected_repr = '<DB:%s at %#x>' % (klass, id(instance))
assert repr(instance) == expected_repr
def test_repr_with_id(self, DBModel, klass, id_attr):
test_id = random.randint(1, 10)
instance = DBModel()
setattr(instance, id_attr, test_id)
expected_repr = (
'<DB:%s #%d>' % (klass, test_id))
assert repr(instance) == expected_repr
def test_get_locking_state_invalid_action(user_regular):
repo = db.Repository()
action = 'not_push_neither_pull'
with pytest.raises(ValueError):
repo.get_locking_state(action, user_id=user_regular.user_id)
def test_get_locking_state_valid_action(user_regular):
repo = db.Repository()
action = 'push'
make_lock, locked, lock_info = repo.get_locking_state(
action, user_id=user_regular.user_id)
assert not make_lock
assert not locked
assert lock_info == [None, None, None]