Esempio n. 1
0
def reverse(name, *args, **kwargs):
    """Shorter Reverse function for the very lazy tester"""
    full_url = kwargs.pop("full", False)
    uri = rf_reverse(name, args=args, kwargs=kwargs)
    if "request" not in kwargs and full_url:
        return f"http://testserver{uri}"
    return uri
Esempio n. 2
0
    def test_create(self):
        url = rf_reverse('v1:math:fractions-list')

        data = {
            "name": "Fill-in-the-Blank Multiplication Fraction",
            "qtype": 0,
            "stem": {"statement": "{{numerator1}}/{{denominator1}} * {{numerator2}}/{{denominator2}}"},
            "keys": {
                "numerator1": [8, 4],
                "denominator1": [5, 5],
                "numerator2": [9, 2],
                "denominator2": [6, 10],
                "answer": ["72/30", "4/50"]
            },
            "editors": [
                1
            ]
        }

        self.client.force_login(user=self.u1)

        response = self.client.post(url, data=data, format='json')

        self.assertEqual(response.status_code, status.HTTP_201_CREATED)

        response = self.client.get(url, format='json')
        print(response.content)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
Esempio n. 3
0
 def to_response(self, request):
     """method will return dict which can be passed to response
     """
     author = "{} {}".format(self.author.first_name, self.author.last_name)
     data = {
         "id": self.id,
         "author": author,
         "title": self.title,
         "description": self.description,
         "target_audience": dict(ProposalTargetAudience.CHOICES)[
             self.target_audience
         ],
         "status": dict(ProposalStatus.CHOICES)[self.status],
         "review_status": dict(ProposalReviewStatus.CHOICES)[self.review_status],
         "proposal_type": self.proposal_type.name,
         "proposal_section": self.proposal_section.name,
         "votes_count": self.get_votes_count(),
         "speaker_info": self.speaker_info,
         "speaker_links": self.speaker_links,
         "content_urls": self.content_urls,
         "conference": rf_reverse(
             "conference-detail", kwargs={"pk": self.conference_id}, request=request
         ),
     }
     return data
Esempio n. 4
0
    def test_can_mark_as_seen(self):
        notifs = [
            Notification.objects.create(
                id=i,
                content=str(i),
                link="https://lafranceinsoumise.fr",
                person=self.person,
            ) for i in range(3)
        ]

        client = APIClient()
        client.force_authenticate(self.person.role)

        request = Mock()
        request.user = self.person.role

        res = client.post(rf_reverse("notifications_seen"),
                          data={"notifications": [0, 2]})
        self.assertEqual(res.status_code, 200)

        for n in notifs:
            n.refresh_from_db()

        self.assertEqual(
            [n.status for n in notifs],
            [
                Notification.STATUS_SEEN,
                Notification.STATUS_UNSEEN,
                Notification.STATUS_SEEN,
            ],
        )
Esempio n. 5
0
    def test_add_power(self):
        url = rf_reverse('v1:editor:power-sensei-list')
        self.client.force_login(self.u1)

        response = self.client.post(url,
                                    data=dict(),
                                    secure=True,
                                    format='json')
        print(response.status_text)
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
Esempio n. 6
0
    def test_create_no_user_pk(self):
        url = rf_reverse('v1:editor:editors-list')
        self.client.login(username='******', password='******')

        response = self.client.post(url,
                                    data=dict(pen_name='Big L', ),
                                    secure=True,
                                    format='json')
        print(response.status_text)
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
Esempio n. 7
0
def reverse(*args, **kwargs):
    """Allows use of the hyperlinked fields, without passing a request.

    This is very useful for situations where you don't have a request to pass,
    for instance, when using the shell or during testing.

    """
    request = kwargs.pop('request')
    if request:
        return rf_reverse(*args, request=request, **kwargs)
    else:
        return dj_reverse(*args, **kwargs)
Esempio n. 8
0
def reverse(*args, **kwargs):
    """Allows use of the hyperlinked fields, without passing a request.

    This is very useful for situations where you don't have a request to pass,
    for instance, when using the shell or during testing.

    """
    request = kwargs.pop('request')
    if request:
        return rf_reverse(*args, request=request, **kwargs)
    else:
        return dj_reverse(*args, **kwargs)
Esempio n. 9
0
 def to_response(self, request):
     """method will return dict which can be passed to response
     """
     author = u"{} {}".format(self.author.first_name,
                              self.author.last_name)
     data = {'id': self.id,
             'author': author,
             'title': self.title,
             'description': self.description,
             'target_audience': dict(ProposalTargetAudience.CHOICES)[self.target_audience],
             'status': dict(ProposalStatus.CHOICES)[self.status],
             'review_status': dict(ProposalReviewStatus.CHOICES)[self.review_status],
             'proposal_type': self.proposal_type.name,
             'proposal_section': self.proposal_section.name,
             'votes_count': self.get_votes_count(),
             'speaker_info': self.speaker_info,
             'speaker_links': self.speaker_links,
             'content_urls': self.content_urls,
             'conference': rf_reverse("conference-detail",
                                      kwargs={'pk': self.conference_id},
                                      request=request)}
     return data
Esempio n. 10
0
 def to_response(self, request):
     """method will return dict which can be passed to response
     """
     author = u"{} {}".format(self.author.first_name, self.author.last_name)
     data = {
         'id':
         self.id,
         'author':
         author,
         'title':
         self.title,
         'description':
         self.description,
         'target_audience':
         dict(ProposalTargetAudience.CHOICES)[self.target_audience],
         'status':
         dict(ProposalStatus.CHOICES)[self.status],
         'review_status':
         dict(ProposalReviewStatus.CHOICES)[self.review_status],
         'proposal_type':
         self.proposal_type.name,
         'proposal_section':
         self.proposal_section.name,
         'votes_count':
         self.get_votes_count(),
         'speaker_info':
         self.speaker_info,
         'speaker_links':
         self.speaker_links,
         'content_urls':
         self.content_urls,
         'conference':
         rf_reverse("conference-detail",
                    kwargs={'pk': self.conference_id},
                    request=request)
     }
     return data
Esempio n. 11
0
 def test_list(self):
     url = rf_reverse('v1:classroom:exam-problems-list')
     response = self.client.get(url, format='json')
     self.assertEqual(response.status_code, status.HTTP_200_OK)
     self.assertEqual(response.data[0]['problems'], [1, 2, 3])
Esempio n. 12
0
 def test_list(self):
     url = rf_reverse('v1:math:fractions-list')
     response = self.client.get(url, format='json')
     self.assertEqual(response.status_code, status.HTTP_200_OK)
Esempio n. 13
0
 def test_list(self):
     url = rf_reverse('v1:editor:editors-list')
     self.client.login(username='******', password='******')
     response = self.client.get(url, format='json')
     print(response.status_text)
     self.assertEqual(response.status_code, status.HTTP_200_OK)
Esempio n. 14
0
def api_root(request, format=None):
    return Response({
        'hosts':
        rf_reverse('host_list', request=request, format=format),
    })