Beispiel #1
0
    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)
Beispiel #2
0
 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)
Beispiel #3
0
 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()))
Beispiel #4
0
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()
Beispiel #5
0
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)