79 lines
2.0 KiB
Python
79 lines
2.0 KiB
Python
from quixote import get_publisher
|
|
|
|
from wcs import sql
|
|
from wcs.roles import get_user_roles
|
|
|
|
from .utilities import clean_temporary_pub, create_temporary_pub
|
|
|
|
|
|
def setup_module(module):
|
|
pub = create_temporary_pub()
|
|
pub.cfg['language'] = {'language': 'en'}
|
|
pub.cfg['misc'] = {'charset': 'utf-8'}
|
|
|
|
|
|
def teardown_module(module):
|
|
clean_temporary_pub()
|
|
|
|
|
|
def test_slug():
|
|
get_publisher().role_class.wipe()
|
|
role = get_publisher().role_class(name='Hello world')
|
|
role.store()
|
|
assert role.slug == 'hello-world'
|
|
|
|
|
|
def test_duplicated_name():
|
|
get_publisher().role_class.wipe()
|
|
role = get_publisher().role_class(name='Hello world')
|
|
role.store()
|
|
assert role.slug == 'hello-world'
|
|
role = get_publisher().role_class(name='Hello world')
|
|
role.store()
|
|
assert role.slug == 'hello-world-1'
|
|
|
|
|
|
def test_migrate():
|
|
get_publisher().role_class.wipe()
|
|
role = get_publisher().role_class(name='Hello world')
|
|
role.store()
|
|
|
|
conn, cur = sql.get_connection_and_cursor()
|
|
sql_statement = 'UPDATE roles SET slug = NULL'
|
|
cur.execute(sql_statement)
|
|
conn.commit()
|
|
cur.close()
|
|
|
|
assert get_publisher().role_class.get(role.id).slug == 'hello-world'
|
|
|
|
|
|
def test_get_user_roles():
|
|
get_publisher().role_class.wipe()
|
|
get_publisher().role_class(name='f1').store()
|
|
get_publisher().role_class(name='é1').store()
|
|
get_publisher().role_class(name='a1').store()
|
|
assert [x[1] for x in get_user_roles()] == ['a1', 'é1', 'f1']
|
|
|
|
|
|
def test_get_emails():
|
|
User = get_publisher().user_class
|
|
User.wipe()
|
|
get_publisher().role_class.wipe()
|
|
|
|
role = get_publisher().role_class(name='role')
|
|
role.emails_to_members = True
|
|
role.store()
|
|
|
|
users = []
|
|
for i in range(2):
|
|
user = User(name='John Doe %s' % i)
|
|
user.email = 'john.doe.%s@example.com' % i
|
|
user.add_roles([role.id])
|
|
user.store()
|
|
users.append(user)
|
|
|
|
assert len(set(role.get_emails())) == 2
|
|
users[-1].is_active = False
|
|
users[-1].store()
|
|
assert len(set(role.get_emails())) == 1
|