def setUpClass(cls): # 打开浏览器 cls.driver = Utils.get_driver() # 打开登录页面 cls.driver.get("http://demo.zentao.net/user-login.html") # 测试登录 cls.ulp = PageUserLogin(cls.driver) cls.kt = PageMY(cls.driver) cls.bug = PageQa(cls.driver) cls.ti_bug = PageBugBrowse(cls.driver) cls.skt = PageBugCreate(cls.driver) cls.ulp.page_user_yewu()
import page from base.base_page import Base from page.page_user_login import PageUserLogin from tool.utils import Utils class PageMY(Base): def page_my(self): self.click_base(page.page_ceshi) if __name__ == '__main__': # 打开浏览器 driver = Utils.get_driver() # 打开登录页面 driver.get("http://demo.zentao.net/user-login.html") # 测试登录 ulp = PageUserLogin(driver) ulp.page_user_yewu() kt = PageMY(driver) kt.page_my() # 退出浏览器 time.sleep(2) Utils.quit_driver()
def get_django_template_format_date(date): # return date in format to mimic django's template format e.g. "Jan. 1, 2018" return Utils.get_template_formatted_date(date)
def tearDownClass(cls): Utils.quit_driver()
def index(request): # Get an error message attached to the request if it exists error_msg = request.session.pop('error_message', '') is_valid_user = False # Get user type while grabbing entities related to that user type # Try staff first try: lecturer = Staff.objects.get(user=request.user) # Get modules and courses linked to this staff member modules = lecturer.modules.all() courses = lecturer.courses.all() lecturers = Staff.objects.all() students = [] for module in modules: for student in module.students.all(): students.append(student) students = list(OrderedDict.fromkeys(students)) lectures = Lecture.objects.filter(module__in=modules) is_valid_user = True user_type = UserType.STAFF_TYPE.value except Staff.DoesNotExist: pass if not is_valid_user: # Try student next try: student = Student.objects.get(user=request.user) attendances = StudentAttendance.objects.filter(student=student) lectures = [] for attendance in attendances: lectures.append(attendance.lecture) modules = [] for lecture in lectures: if lecture.module not in modules: modules.append(lecture.module) courses = [] lecturers = [] students = [] is_valid_user = True user_type = UserType.STUDENT_TYPE.value except Student.DoesNotExist: pass if not is_valid_user: return logout_and_redirect_login(request) # Get example download resource path upload_example_filepath = os.path.join(os.path.dirname(__file__), '..', 'download_resources', 'upload_example.xlsx') # Representing the objects as lists that can be serialised to JSON for JS usage # Passed to client-side for pagination use in JS modulesjs = [{ 'url': reverse('tool:module', kwargs={'module_id': m.id}), 'code': m.module_code, 'crn': m.module_crn } for m in modules] coursesjs = [{ 'url': reverse('tool:course', kwargs={'course_id': c.id}), 'name': c.course_code } for c in courses] lecturersjs = [{ 'url': reverse('tool:lecturer', kwargs={'lecturer_id': l.id}), 'name': l.user.username } for l in lecturers] studentsjs = [{ 'url': reverse('tool:student', kwargs={'student_id': s.id}), 'name': s.user.username } for s in students] lecturesjs = [{ 'url': reverse('tool:lecture', kwargs={'lecture_id': l.id}), 'module_code': l.module.module_code, 'session_id': l.session_id, 'date': Utils.get_template_formatted_date(l.date) } for l in lectures] return render( request, 'tool/index.html', { 'error_message': error_msg, 'modules': modules, 'modulesjs': modulesjs, 'courses': courses, 'coursesjs': coursesjs, 'lecturers': lecturers, 'lecturersjs': lecturersjs, 'students': students, 'studentsjs': studentsjs, 'lectures': lectures, 'lecturesjs': lecturesjs, 'user_type': user_type, 'upload_example_filepath': upload_example_filepath })