예제 #1
0
 def test_finish_activity(self):
     client = Client()
     client.post('/wx/',
                 data=make_message('哈哈哈'),
                 content_type='text/plain')
     client.post('/wx/',
                 data=make_message('才124'),
                 content_type='text/plain')
     client.post('/wx/',
                 data=make_message(id_to_invite_code(1)),
                 content_type='text/plain')
     activity = models.Activity.objects.get(id=1)
     activity.start_time = datetime.datetime.now() + datetime.timedelta(
         hours=-2)
     activity.end_time = datetime.datetime.now() + datetime.timedelta(
         hours=-1)
     activity.save()
     r = client.post('/wx/',
                     data=make_message('弹幕'),
                     content_type='text/plain')
     self.assertEqual(get_content(r.content.decode()),
                      text.activity_finished)
     self.assertEqual(
         models.Participant.objects.get(
             openid=fake_participant_id).activate_in, None)
     r = client.post('/wx/',
                     data=make_message(id_to_invite_code(1)),
                     content_type='text/plain')
     self.assertEqual(get_content(r.content.decode()),
                      text.activity_finished)
예제 #2
0
 async def test_modify_activity(self):
     communicator = WebsocketCommunicator(MicroProgram.consumers.Console,
                                          "/ws?activity_id=1", self.headers)
     connected, subprotocol = await communicator.connect()
     self.assertEqual(connected, True)
     message = await communicator.receive_from(10)
     self.assertEqual(message, 'BLXDNZ')
     await communicator.send_json_to({
         "action": "modify-activity",
         "content": {
             "start_time": "2019-07-01 13:05:40"
         }
     })
     message = await communicator.receive_from(10)
     self.assertEqual(message, '{"result": "success"}')
     await communicator.send_json_to({"action": "get-activity-info"})
     message = await communicator.receive_json_from(10)
     self.assertEqual(
         json.dumps(message, sort_keys=True),
         json.dumps(
             {
                 "action": "activity-info",
                 "content": {
                     "name": "才明洋",
                     "start_time": "2019-07-01 13:05:40",
                     "end_time": "未结束",
                     "invite_code": id_to_invite_code(1)
                 }
             },
             sort_keys=True))
     await communicator.disconnect()
예제 #3
0
 def test_invalid_invite_code(self):
     client = Client()
     client.post('/wx/',
                 data=make_message('哈哈哈'),
                 content_type='text/plain')
     client.post('/wx/',
                 data=make_message('才124'),
                 content_type='text/plain')
     # client.post('/wx/', data=make_message('退出活动'), content_type='text/plain')
     r = client.post('/wx/',
                     data=make_message(id_to_invite_code(2)),
                     content_type='text/plain')
     self.assertEqual(get_content(r.content.decode()),
                      text.wrong_invite_code)
     r = client.post('/wx/',
                     data=make_message(id_to_invite_code(1)),
                     content_type='text/plain')
     r = client.post('/wx/',
                     data=make_message(id_to_invite_code(2)),
                     content_type='text/plain')
     self.assertEqual(get_content(r.content.decode()),
                      text.already_in.format("才明洋"))
예제 #4
0
def activity_manage(request):
    activity = _get_activity(request, True)
    if isinstance(activity, HttpResponse):
        return activity

    activities = _get_activities(request)
    awards = models.Award.objects.filter(activity=activity)

    return render(
        request, 'pages/usercenter/activity_page.html', {
            'activity': activity,
            'activities': activities,
            'awards': awards,
            'invite_code': id_to_invite_code(activity.id)
        })
예제 #5
0
 def test_danmu(self):
     client = Client()
     client.post('/wx/',
                 data=make_message('哈哈哈'),
                 content_type='text/plain')
     client.post('/wx/',
                 data=make_message('才124'),
                 content_type='text/plain')
     client.post('/wx/',
                 data=make_message(id_to_invite_code(1)),
                 content_type='text/plain')
     r = client.post('/wx/',
                     data=make_message('弹幕'),
                     content_type='text/plain')
     self.assertEqual(r.content.decode(), 'success')
예제 #6
0
    def test_join_and_quit(self):
        client = Client()
        client.post('/wx/',
                    data=make_message('哈哈哈'),
                    content_type='text/plain')
        client.post('/wx/',
                    data=make_message('才124'),
                    content_type='text/plain')
        client.post('/wx/',
                    data=make_message(id_to_invite_code(1)),
                    content_type='text/plain')
        participant = models.Participant.objects.get(
            openid=fake_participant_id)
        self.assertEqual(participant.activate_in, 1)
        self.assertTrue(participant in models.Activity.objects.get(
            id=1).participants.all())

        client.post('/wx/',
                    data=make_message('退出活动'),
                    content_type='text/plain')
        participant = models.Participant.objects.get(
            openid=fake_participant_id)
        self.assertEqual(participant.activate_in, None)