コード例 #1
0
 def test_post_list(self):
     request = factory.post('/api/teams/',
                            data={
                                'name': 'Frogz',
                                'username': '******'
                            })
     force_authenticate(request, user=self.admin_user)
     view = TeamViewSet.as_view({'post': 'create'})
     response = view(request)
     response.render()
     team = Team.objects.filter(name='Frogz')
     self.assertEqual(team.count(), 1, 'Expected team to be created')
     member = Member.objects.filter(player=self.admin_user,
                                    team=team,
                                    username='******')
     self.assertEqual(member.count(), 1, 'Expected member to be created')
     expected_data = {
         'id': team[0].id,
         'name': team[0].name,
         'member_id': member[0].id
     }
     self.assertEqual(response.status_code, status.HTTP_201_CREATED,
                      'expected HTTP 201 - Created')
     self.assertTrue(expected_data.items() <= response.data.items(),
                     'Expected appropriate data scheme to be in response')
コード例 #2
0
 def test_request_with_missing_email(self):
     request = factory.post(self.url)
     force_authenticate(request, user=self.member_player)
     view = TeamViewSet.as_view({'post': 'invite'})
     response = view(request, pk=self.dev_team.pk)
     response.render()
     self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST,
                      'expected HTTP 400 on no email')
コード例 #3
0
ファイル: views.py プロジェクト: boykait/Donation-Platform
def view_group3(request):
    '''
    爱心团体
    '''
    if request.method == 'POST':
        return redirect(reverse('registration:page_index'))
    obj = TeamViewSet.as_view({'get': 'list'}, app_name='api')(request)
    context = get_context(obj)
    return render(request, 'pages/group3.html', context)
コード例 #4
0
 def test_request_by_non_member(self):
     # TODO Enable the test - migrate to APIClient from APIRequestFactory
     # permission_classes are ignored for @detail_route when using APIRequestFactory
     request = factory.post(self.url)
     force_authenticate(request, user=self.non_member_player)
     view = TeamViewSet.as_view({'post': 'invite'})
     response = view(request, pk=self.dev_team.pk)
     response.render()
     self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN,
                      'expected HTTP 403 when non member sends invitation')
コード例 #5
0
 def test_join_team(self):
     is_member_before = self.dummy_user.member_set.filter(id=self.dev_team.id).count()
     self.assertEqual(is_member_before, 0)
     request = factory.post('/api/teams/join/', data={'username': '******', 'team': self.dev_team.name})
     force_authenticate(request, user=self.dummy_user)
     view = TeamViewSet.as_view({'post': 'join'})
     response = view(request)
     response.render()
     self.assertEqual(response.status_code, status.HTTP_201_CREATED, 'expected HTTP 201 - Created')
     is_member_after = Member.objects.filter(player=self.dummy_user, team=self.dev_team).count()
     self.assertEqual(is_member_after, 1, 'expected correct number of teams')
コード例 #6
0
 def test_get_item(self):
     request = factory.get('/api/teams/{0}/'.format(self.dev_team.id))
     force_authenticate(request, user=self.admin_user)
     view = TeamViewSet.as_view({'get': 'retrieve'})
     response = view(request, pk=str(self.dev_team.id))
     response.render()
     expected_data = model_to_dict(self.dev_team, fields=self.fields)
     self.assertEqual(response.status_code, status.HTTP_200_OK,
                      'expected HTTP 200')
     self.assertDictEqual(response.data, expected_data,
                          'expected dev team data')
コード例 #7
0
 def test_get_list(self):
     request = factory.get('/api/teams/')
     force_authenticate(request, user=self.admin_user)
     view = TeamViewSet.as_view({'get': 'list'})
     response = view(request)
     response.render()
     response_data = json.loads(str(response.content, encoding='utf8'))
     self.assertEqual(response.status_code, status.HTTP_200_OK,
                      'expected HTTP 200')
     self.assertEqual(len(response_data), Team.objects.count(),
                      'expected correct number of teams')
コード例 #8
0
 def test_invite_already_existing_member(self):
     email = '*****@*****.**'
     request = factory.post(self.url,
                            data={
                                'email': email,
                                'username': '******'
                            })
     force_authenticate(request, user=self.member_player)
     view = TeamViewSet.as_view({'post': 'invite'})
     response = view(request, pk=self.dev_team.pk)
     response.render()
     self.assertEqual(response.status_code, status.HTTP_409_CONFLICT,
                      'expected HTTP 409 when inviting existing member')
コード例 #9
0
 def test_teams_get(self):
     self._team_create()
     view = TeamViewSet.as_view({'get': 'retrieve'})
     request = self.factory.get('/', **self.extra)
     response = view(request)
     self.assertEqual(response.status_code, 400)
     self.assertEqual(
         response.data,
         {'detail': 'Expected URL keyword argument `owner` and `pk`.'})
     request = self.factory.get('/', **self.extra)
     response = view(request, owner='denoinc', pk=self.team.pk)
     self.assertEqual(response.status_code, 200)
     self.assertEqual(response.data, self.team_data)
コード例 #10
0
ファイル: test_teams_api.py プロジェクト: GOMOGI/formhub
 def test_teams_get(self):
     self._team_create()
     view = TeamViewSet.as_view({
         'get': 'retrieve'
     })
     request = self.factory.get('/', **self.extra)
     response = view(request)
     self.assertEqual(response.status_code, 400)
     self.assertEqual(response.data,
                      {'detail':
                       'Expected URL keyword argument `owner` and `pk`.'})
     request = self.factory.get('/', **self.extra)
     response = view(request, owner='denoinc', pk=self.team.pk)
     self.assertEqual(response.status_code, 200)
     self.assertEqual(response.data, self.team_data)
コード例 #11
0
 def test_get_joined_teams(self):
     teams = Team.objects.filter(member__player__id=self.admin_user.id, member__is_accepted=True)
     pending = Team.objects.filter(member__player__id=self.admin_user.id, member__is_accepted=False).count()
     teams = teams.annotate(username=F('member__username'), member_id=F('member__id'))
     expected_data = [
         {'id': team.id, 'name': team.name, 'username': team.username, 'member_id': team.member_id}
         for team in teams
     ]
     request = factory.get('/api/teams/joined/')
     force_authenticate(request, user=self.admin_user)
     view = TeamViewSet.as_view({'get': 'joined'})
     response = view(request)
     response.render()
     response_data = json.loads(str(response.content, encoding='utf8'))
     self.assertEqual(response.status_code, status.HTTP_200_OK, 'expected HTTP 200')
     self.assertEqual(response_data['teams'], expected_data, 'expected list of joined teams')
     self.assertEqual(response_data['pending'], pending, 'expected correct number of pending teams')
コード例 #12
0
 def test_invite_existing_player(self):
     email = self.non_member_player.email
     username = '******'
     request = factory.post(self.url,
                            data={
                                'email': email,
                                'username': username
                            })
     force_authenticate(request, user=self.member_player)
     view = TeamViewSet.as_view({'post': 'invite'})
     response = view(request, pk=self.dev_team.pk)
     response.render()
     member = Member.objects.filter(team=self.dev_team, username=username)
     self.assertEqual(member.count(), 1, 'Member should have been created')
     self.assertEqual(member[0].player.id, self.non_member_player.id,
                      'Member should have player assigned')
     self.assertNotEqual(member[0].activation_code, '',
                         'Activation code should be set')
     self.assertEqual(response.status_code, status.HTTP_201_CREATED,
                      'expected HTTP 201 - Created')
コード例 #13
0
 def test_invite_not_existing_player(self):
     email = '*****@*****.**'
     username = '******'
     request = factory.post(self.url,
                            data={
                                'email': email,
                                'username': username
                            })
     force_authenticate(request, user=self.member_player)
     view = TeamViewSet.as_view({'post': 'invite'})
     response = view(request, pk=self.dev_team.pk)
     response.render()
     member = Member.objects.filter(team=self.dev_team, username=username)
     placeholder = PlayerPlaceholder.objects.filter(member=member,
                                                    email=email)
     self.assertEqual(member.count(), 1, 'Member should have been created')
     self.assertTrue(placeholder.exists(),
                     'Player placeholder should have been created')
     self.assertNotEqual(member[0].activation_code, '',
                         'Activation code should be set')
     self.assertEqual(response.status_code, status.HTTP_201_CREATED,
                      'expected HTTP 201 - Created')
コード例 #14
0
ファイル: urls.py プロジェクト: digi0ps/wolfbeacon-core-api
    # MENTORS
    url(r'^hackathons/(?P<fk>\d+)/mentors/$',
        MentorViewSet.as_view({'post': 'create'})),
    url(
        r'^mentors/(?P<pk>\d+)/$',
        MentorViewSet.as_view({
            'get': 'retrieve',
            'put': 'update',
            'patch': 'partial_update',
            'delete': 'destroy'
        })),
    url(r'^mentors/$', MentorViewSet.as_view({'get': 'list'})),

    # TEAMS
    url(r'^hackathons/(?P<fk>\d+)/teams/$',
        TeamViewSet.as_view({'post': 'create'})),
    url(
        r'^teams/(?P<pk>\d+)/$',
        TeamViewSet.as_view({
            'get': 'retrieve',
            'put': 'update',
            'patch': 'partial_update',
            'delete': 'destroy'
        })),
    url(r'^teams/$', TeamViewSet.as_view({'get': 'list'})),
    # Add Hackers to Teams
    url(r'^hackathons/(?P<fk2>\d+)/teams/(?P<fk>\d+)/hackers/(?P<pk>\d+)/$',
        TeamHackerAddRemove.as_view()),

    # EVENTS
    url(r'^hackathons/(?P<fk>\d+)/events/$',
コード例 #15
0
ファイル: test_teams_api.py プロジェクト: GOMOGI/formhub
 def setUp(self):
     super(TestTeamsAPI, self).setUp()
     self.view = TeamViewSet.as_view({
         'get': 'list',
         'post': 'create'
     })
コード例 #16
0
user_detail = UserViewSet.as_view({'get': 'retrieve'})

organization_list = OrganizationViewSet.as_view({
    'get': 'list',
    'post': 'create'
})

organization_detail = OrganizationViewSet.as_view({
    'get': 'retrieve',
    'put': 'update',
    'patch': 'partial_update',
    'delete': 'destroy'
})

team_list = TeamViewSet.as_view({'get': 'list', 'post': 'create'})

team_detail = TeamViewSet.as_view({
    'get': 'retrieve',
    'put': 'update',
    'patch': 'partial_update',
    'delete': 'destroy'
})

router = DefaultRouter()
router.register(r'users', UserViewSet)
router.register(r'organizations', OrganizationViewSet)
router.register(r'teams', TeamViewSet)

urlpatterns = patterns(
    '',
コード例 #17
0
 def setUp(self):
     super(TestTeamsAPI, self).setUp()
     self.view = TeamViewSet.as_view({'get': 'list', 'post': 'create'})
コード例 #18
0
ファイル: urls.py プロジェクト: jcfausto/agile-teams-kpis-api
})

organization_list = OrganizationViewSet.as_view({
    'get': 'list',
    'post': 'create'
})

organization_detail = OrganizationViewSet.as_view({
	'get': 'retrieve',
	'put': 'update',
	'patch': 'partial_update',
	'delete': 'destroy'
})

team_list = TeamViewSet.as_view({
    'get': 'list',
    'post': 'create'
})

team_detail = TeamViewSet.as_view({
	'get': 'retrieve',
	'put': 'update',
	'patch': 'partial_update',
	'delete': 'destroy'
})

router = DefaultRouter()
router.register(r'users', UserViewSet)
router.register(r'organizations', OrganizationViewSet)
router.register(r'teams', TeamViewSet)

urlpatterns = patterns('',