def setUp(self): self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_datastore_v3_stub() # should all return None, because this is simply creating data and is all meant to be correct self.assertIsNone(User.register(None, '*****@*****.**', 'pwd', 'pwd', 'teacher', 't')) self.assertIsNone(User.register(None, '*****@*****.**', 'pwd', 'pwd', 'teachertwo', 'ttwo')) self.assertIsNone(User.register(None, '*****@*****.**', 'pwd', 'pwd', 'student', 's')) self.teacher = User.all().filter('email =', '*****@*****.**').get() self.teacher2 = User.all().filter('email =', '*****@*****.**').get() self.student = User.all().filter('email =', '*****@*****.**' ).get() self.assertIsNotNone(self.teacher) self.assertIsNone(self.teacher.make_teacher()) self.assertIsNotNone(self.teacher2) self.assertIsNone(self.teacher2.make_teacher()) self.assertIsNone(Course.create(self.teacher, 'public', '')) self.public = Course.all().filter('name =', 'Public').get() self.assertIsNotNone(self.public) self.assertIsNone(Course.create(self.teacher, 'private', 'on')) self.private = Course.all().filter('name =', 'Private').get() self.assertIsNotNone(self.private)
def test_creation(self): self.assertIsNotNone( Course.create(self.teacher, '', ''), 'Empty course name' ) self.assertIsNone( Course.create(self.teacher, 'pub', ''), 'Create public course' ) self.assertIsNotNone( Course.create(self.teacher, 'Pub', ''), 'Recreate public course (bad)' ) self.assertIsNone( Course.create(self.teacher, 'Pub2', None), 'Create public course' ) self.assertIsNone( Course.create(self.teacher, 'pvt', 'on'), 'Create private course' ) for name, private in [('Pvt', True), ('Pub', False), ('Pub2', False)]: course = Course.all().filter('name =', name).get() self.assertIsNotNone(course) if private: self.assertIsNotNone(course.code) else: self.assertIsNone(course.code) self.assertEqual(course.teacher.email, self.teacher.email)
def mypost(self): course = self.adderr(Course.create( self.user, self.request.get('name'), self.request.get('mode'), )) if not self.err: self.redirect(OPEN_COURSE_URL + str(course.key().id()))
def edit_profile(profile=None): """Edit profile to create, change, or delete courses""" if not profile: profile = get_or_create_profile("Profile to edit: ") first = True while True: list_courses_for(profile) print('n - Add new course') print('s - Show summary') print('d - Delete course') print('q - Quit to menu') next_action = input("> ").lower().strip() if next_action == 's': clear() show_profile(profile) return if next_action == 'd': clear() delete_course(profile) return if next_action == 'q': return title = input('Title of course: ').strip() hours = int(input('How many credit hours? ')) print('Possible letter grades for UTK: ') print(', '.join(letter_grades).upper()) grade = input('Letter grade for course: ').upper().strip() if grade in letter_grades: Course.create(name=title, grade=grade, hours=hours, profile=profile) first = False calculate_gpa(profile) clear()
def add_course(): # Start with no errors and no fields errors = None fields = None # Grab user id. Associates course with user. user_id = session['user_id'] # Get all categories and schools to populate dropdowns categories = Category.get_all() schools = School.get_all() if request.method == 'POST': # Grab all form data fields = { 'name': request.form['name'], 'url': request.form['url'], 'school': request.form.get('school', ''), 'category': request.form.get('category', '') } # Form validation that makes sure no fields are blank errors = check_no_blanks(fields=fields) if not errors: # Check if school already has course by same name school_courses = School.get_by_id(fields['school']).courses for school_course in school_courses: if school_course.name == fields['name']: errors['name_exists'] = True # If there are no errors, then create course if not errors: course = Course.create(name=fields['name'], url=fields['url'], school_id=fields['school'], category_id=fields['category'], user_id=user_id) flash('Course created') return redirect(url_for('view_course', id=course.id)) # If this is a GET request, or there are errors, show form return render_template('add_course.html', fields=fields, categories=categories, schools=schools, errors=errors)