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)
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()
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("才明洋"))
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) })
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')
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)