#!/usr/share/ucs-test/runner python
## -*- coding: utf-8 -*-
## desc: Users(schools) module
## roles: [domaincontroller_master]
## tags: [apptest, ucsschool]
## exposure: dangerous
## packages: [ucs-school-umc-wizards]

from essential.klasse import Klasse
from essential.user import User
import univention.testing.strings as uts
import univention.testing.ucr as ucr_test
import univention.testing.ucsschool as utu


def main():
	with utu.UCSTestSchool() as schoolenv:
		with ucr_test.UCSTestConfigRegistry() as ucr:
			ou, oudn = schoolenv.create_ou(name_edudc=ucr.get('hostname'))
			class_01 = Klasse(school=ou)
			class_01.create()
			class_02 = Klasse(school=ou)
			class_02.create()
			users = []

			# creating students and teachers
			for role in ['student', 'teacher']:
				user = User(school=ou, role=role, school_classes={ou: ['%s-%s' % (ou, class_01.name)]})
				user.create()
				user.verify()
				user.check_get()
				users.append(user)

			# creating staff and teacher and staff members
			for role in ['staff', 'teacher_staff']:
				user = User(school=ou, role=role, school_classes={})
				user.create()
				user.verify()
				user.check_get()
				users.append(user)

			users[0].check_query([users[0].dn, users[1].dn])

			new_attrs = {'email': '%s@%s' % (uts.random_name(), ucr.get('domainname')), 'firstname': 'first_name1', 'lastname': 'last_name1', }
			users[0].edit(new_attrs)
			users[0].check_get(expected_attrs=new_attrs)

			new_attrs = {'email': '%s@%s' % (uts.random_name(), ucr.get('domainname')), 'firstname': 'first_name2', 'lastname': 'last_name2', }
			users[1].edit(new_attrs)
			users[1].check_get(expected_attrs=new_attrs)

			for user in users:
				user.verify()
				user.remove()
				user.verify()


if __name__ == '__main__':
	main()
