Ejemplo n.º 1
0
    def setUpTestData(cls):
        cls.user: User = User.objects.create_user("test", "*****@*****.**",
                                                  "password")
        cls.user.is_staff = True
        cls.user.save()
        user_profile: UserProfile = UserProfile(user=cls.user)
        user_profile.save()
        teacher: Teacher = Teacher.objects.create(user=user_profile,
                                                  new_user=cls.user,
                                                  title="Mx")
        teacher.save()
        cls.klass, _, _ = create_class_directly(cls.user.email)
        cls.klass.save()
        cls.worksheet = Worksheet.objects.create(name="test worksheet",
                                                 starter_code="test code")
        cls.game = models.Game(id=1,
                               name="test",
                               game_class=cls.klass,
                               worksheet=cls.worksheet)
        cls.game.save()

        cls.EXPECTED_GAME_DETAIL = {
            "era": "1",
            "name": "test",
            "status": "r",
            "settings":
            '{"GENERATOR": "Main", "OBSTACLE_RATIO": 0.1, "PICKUP_SPAWN_CHANCE": 0.1, "SCORE_DESPAWN_CHANCE": 0.05, "START_HEIGHT": 31, "START_WIDTH": 31, "TARGET_NUM_CELLS_PER_AVATAR": 16.0, "TARGET_NUM_PICKUPS_PER_AVATAR": 1.2, "TARGET_NUM_SCORE_LOCATIONS_PER_AVATAR": 0.5}',
            "worksheet_id": str(cls.worksheet.id),
        }
        cls.EXPECTED_GAME_LIST = {
            "1": cls.EXPECTED_GAME_DETAIL,
            "2": cls.EXPECTED_GAME_DETAIL
        }
Ejemplo n.º 2
0
    def test_delete_games(self):
        # Create a new teacher with a game to make sure it's not affected
        new_user: User = User.objects.create_user("test2", "*****@*****.**",
                                                  "password")
        new_user.is_staff = True
        new_user.save()
        new_user_profile: UserProfile = UserProfile(user=new_user)
        new_user_profile.save()
        new_teacher: Teacher = Teacher.objects.create(user=new_user_profile,
                                                      new_user=new_user)
        new_teacher.save()
        new_klass, _, _ = create_class_directly(new_user.email)
        new_user.save()
        new_game = models.Game(name="test2",
                               game_class=new_klass,
                               worksheet=self.worksheet)
        new_game.save()

        # Create a game for the second class
        game2 = models.Game(name="test",
                            game_class=self.klass2,
                            worksheet=self.worksheet)
        game2.save()

        data = {"game_ids": [self.game.id, game2.id, new_game.id]}

        # Try to login as a student and delete games - they shouldn't have access
        _, student_password, student = create_school_student_directly(
            self.klass.access_code)
        client = self.login(username=student.new_user.username,
                            password=student_password)
        response = client.post(reverse("game-delete-games"), data)
        assert response.status_code == 403
        assert Game.objects.count() == 3

        # Login as initial teacher and delete games - only his games should be deleted
        client = self.login()
        response = client.post(reverse("game-delete-games"), data)
        assert response.status_code == 204
        assert Game.objects.count() == 1
        assert Game.objects.get(pk=new_game.id)
Ejemplo n.º 3
0
 def setUpTestData(cls):
     cls.user: User = User.objects.create_user("test", "*****@*****.**",
                                               "password")
     cls.user.is_staff = True
     cls.user.save()
     user_profile: UserProfile = UserProfile(user=cls.user)
     user_profile.save()
     teacher: Teacher = Teacher.objects.create(user=user_profile,
                                               new_user=cls.user)
     teacher.save()
     cls.klass, _, _ = create_class_directly(cls.user.email)
     cls.klass.save()
     cls.klass2, _, _ = create_class_directly(cls.user.email)
     cls.klass2.save()
     cls.worksheet: Worksheet = Worksheet.objects.create(
         name="test worksheet", starter_code="test code 1")
     cls.worksheet2: Worksheet = Worksheet.objects.create(
         name="test worksheet 2", starter_code="test code 2")
     cls.game = models.Game(id=1,
                            name="test",
                            game_class=cls.klass,
                            worksheet=cls.worksheet)
     cls.game.save()
Ejemplo n.º 4
0
    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            user_name = request.POST.get("email", "")
            if UserProfile.objects.filter(email=user_name):
                return render(request, "users/register.html", {
                    "register_form": register_form,
                    "msg": "该账户已被注册"
                })
            pass_word = request.POST.get("password", "")
            user_profile = UserProfile()
            user_profile.username = user_name
            user_profile.email = user_name
            user_profile.is_active = False
            user_profile.password = make_password(pass_word)
            user_profile.save()

            # send_register_email(user_name, 'register')
            send_register_email(email=user_name, send_type=0)
            return render(request, "users/login.html")
            # return  redirect('/')
        else:
            return render(request, "users/register.html",
                          {"register_form": register_form})
Ejemplo n.º 5
0
        register_password = body[u'registerPassword'].encode('utf-8')
        register_code = body[u'registerCode'].encode('utf-8')
    except Exception, e:
        return render(request, 'user/ErrorUrl.html', {'error': '此地址异常'})
    try:
        mail_activate_info = {
            'email': code_encrypt(register_email),
            'verify_code': code_encrypt(random_str(4))
        }
        url = url_covenrt(request=request,
                          dict=mail_activate_info,
                          path='users/email_activate')
        password = make_password(register_password, None, 'pbkdf2_sha256')
        user = UserProfile(email=register_email,
                           password=password,
                           username=register_username,
                           is_active=False,
                           is_staff=False)
        user.email_user('激活你的用户', '请点击链接:' + url, '*****@*****.**')
        request.session['email_activate'] = mail_activate_info['email']
        request.session['verify_code_activate'] = mail_activate_info[
            'verify_code']
        user.save()
        msg['isSuccess'] = True
    except Exception, e:
        msg['isSuccess'] = False
    return HttpResponse(json.dumps(msg), content_type="application/json")


#注册成功或注册邮箱发送后回执
def registerorretrieve_sucess(request, param):