示例#1
0
 def post() -> Response:
     owner_name = request.json['owner']
     room_name = request.json['name']
     categories = request.json.get('categories', [])
     rounds_amount = request.json.get('rounds_amount', 4)
     round_time = request.json.get('round_time', 10)
     try:
         player = Player.objects.get(nick=owner_name)
     except DoesNotExist:
         raise abort(404)
     post_room = Room(name=room_name,
                      owner=player,
                      rounds_amount=rounds_amount,
                      round_time=round_time)
     try:
         post_room.save()
     except ValidationError as e:
         raise abort(400, message=e.message)
     for c in categories:
         try:
             category = Category(name=c)
             post_room.update(add_to_set__categories=category)
             post_room.reload()
         except DoesNotExist:
             raise abort(404)
     rounds = Room.objects.getRoundsFor(post_room.name)
     for round_obj in rounds:
         post_room.update(add_to_set__rounds=round_obj)
         post_room.reload()
     return jsonify({'result': post_room})
 def test_get_points_for_a_player_no_answers(self):
     a_player = Player(nick="a player")
     a_player.save()
     a_room = Room(name="a room name", owner=a_player, rounds_amount=1)
     a_room.save()
     self.assertEqual(0, Room.objects.getPointsFor("a room name",
                                                   "a player"))
 def test_get_rounds_with_a_room_name(self):
     a_player = Player(nick="a player")
     a_player.save()
     a_room = Room(name="a room name", owner=a_player, rounds_amount=1)
     a_room.save()
     self.assertEqual(a_room.rounds,
                      Room.objects.getRoundsFor("a room name"))
 def test_03_get_one_room_1_found(self):
     player = Player(nick="Juan")
     room = Room(name="sala del test 3", owner=player)
     room.save()
     response = self.test_client.get(f"/rooms/{room.name}/")
     self.assertEqual(200, response.status_code)
     self.assertEqual(room.name, response.json['result']['_id'])
     self.assertEqual(player.nick, response.json['result']['owner'])
 def test_search_owner_nick_and_room_name_1_found(self):
     player = Player(nick="Juan").save()
     player_2 = Player(nick="Milagros").save()
     room = Room(name="Sala de Juan", owner=player, participants=[player_2])
     room.save()
     response = self.test_client.get("/rooms/search/?q=juan")
     self.assertEqual(200, response.status_code)
     self.assertEqual(1, len(response.json['result']))
     self.assertEqual(room.name, response.json['result'][0]['_id'])
     self.assertEqual(player.nick, response.json['result'][0]['owner'])
     self.assertEqual(player_2.nick,
                      response.json['result'][0]['participants'][0])
 def test_02_get_all_rooms_1_found(self):
     player = Player(nick="Juan")
     player_2 = Player(nick="Milagros")
     room = Room(name="sala del test 2",
                 owner=player,
                 participants=[player_2])
     room.save()
     response = self.test_client.get("/rooms/")
     self.assertEqual(200, response.status_code)
     self.assertEqual(room.name, response.json['result'][0]['_id'])
     self.assertEqual(player.nick, response.json['result'][0]['owner'])
     self.assertEqual(player_2.nick,
                      response.json['result'][0]['participants'][0])