Beispiel #1
0
def make_request(params={},
                 user=None,
                 instance=None,
                 method='GET',
                 body=None,
                 file=None,
                 path='hello/world'):
    if user is None:
        user = AnonymousUser()

    extra = {}
    if body:
        body_stream = StringIO(body)
        extra['wsgi.input'] = body_stream
        extra['CONTENT_LENGTH'] = len(body)

    if file:
        post_data = {'file': file}
        req = RequestFactory().post(path, post_data, **extra)
    else:
        req = RequestFactory().get(path, params, **extra)
        req.method = method

    setattr(req, 'user', user)

    if instance:
        setattr(req, 'instance', instance)

    return req
Beispiel #2
0
def make_request(params={}, user=None, instance=None,
                 method='GET', body=None, file=None,
                 path='hello/world'):
    if user is None:
        user = AnonymousUser()

    extra = {}
    if body:
        body_stream = StringIO(body)
        extra['wsgi.input'] = body_stream
        extra['CONTENT_LENGTH'] = len(body)

    if file:
        post_data = {'file': file}
        req = RequestFactory().post(path, post_data, **extra)
    else:
        req = RequestFactory().get(path, params, **extra)
        req.method = method

    setattr(req, 'user', user)

    if instance:
        setattr(req, 'instance', instance)

    return req
Beispiel #3
0
    def test_verify_endpoint(self):
        endpoint = models.Endpoint.objects.create(name="Example", url="example", description="Example endpoint",
                                                       example="title=something", response="[]")
        # Include additional methods to test various authentication options
        endpoint_get = models.Method.objects.create(endpoint=endpoint, method="GET", auth="token")

        # Try with endpoint that is not yet configured
        with self.assertRaises(APIException, detail="Configuration error. Please contact the webmaster.", code=500):
            views.verify_endpoint("Example2", None)

        # Try with endpoint that requires authentication
        for method in endpoint.methods.all():
            if method.auth != "none":
                request = RequestFactory()
                request.user = self.user
                request.data = {'APIKey': 'ABCDEFG'}
                request.method = 'GET'
                with self.assertRaises(PermissionDenied,
                                       detail="You are not allowed to access this resource.", code=403):
                    views.verify_endpoint("Example", request)

        # Try with properly configured endpoint
        endpoint_get.auth = "none"
        endpoint_get.save()
        self.assertEqual(views.verify_endpoint("Example", None), None)
Beispiel #4
0
 def _make_put_request(self, params):
     request = RequestFactory().put('does/not/matter/',
                                    json.dumps(params),
                                    content_type=u'application/json')
     request.method = 'PUT'
     setattr(request, 'user', self.user)
     setattr(request, 'instance', self.instance)
     return request
Beispiel #5
0
 def _make_put_request(self, params):
     request = RequestFactory().put(
         'does/not/matter/', json.dumps(params),
         content_type=u'application/json')
     request.method = 'PUT'
     setattr(request, 'user',  self.user)
     setattr(request, 'instance', self.instance)
     return request
Beispiel #6
0
def get_request_for_user(user):
    """Create a request object for user."""
    request = RequestFactory()
    request.user = user
    request.COOKIES = {}
    request.META = {}
    request.is_secure = lambda: True
    request.get_host = lambda: "edx.org"
    request.method = 'GET'
    return request
Beispiel #7
0
def get_request_for_user(user):
    """Create a request object for user."""
    request = RequestFactory()
    request.user = user
    request.COOKIES = {}
    request.META = {}
    request.is_secure = lambda: True
    request.get_host = lambda: "edx.org"
    request.method = 'GET'
    return request
 def test_regenerate_certificate_allowed_user(
         self, mock_open, mock_make_dirs, mock_exists):
     mock_open.return_value = MagicMock()
     mock_exists.return_value = False
     request = RequestFactory(HTTP_HOST='testserver')
     request.user = self.user
     request.method = 'POST'
     request.META = {'HTTP_HOST': 'testserver'}
     response = regenerate_certificate(
         request,
         project_slug=self.project.slug,
         organisation_slug=self.certifying_organisation.slug,
         course_slug=self.course.slug,
         pk=self.attendee.pk
     )
     self.assertEqual(response.status_code, 200)
Beispiel #9
0
        def fail_login():
            request = RequestFactory().post(self.url, {})
            request.user = account
            request.session = {}
            request.method = 'POST'
            view = TwoFactorView.as_view()

            def mocked(*args, **kwargs):
                import time
                time.sleep(0.1)

            # block for some time to ensure requests are concurrent
            mock_auth_device = mock.patch(
                'webui.views.ui.authenticate_device', mocked)
            with mock_auth_device:
                response = view(request)
            self.assertEqual(response.status_code, 200)
Beispiel #10
0
    def test_decision_last_status_set_on_update(self):
        status = Decision.DECISION_STATUS
        user = UserFactory()
        decision = DecisionFactory(author = user,
                                   editor = user,
                                   description = 'Lorem',
                                   status = status)
        self.assertEquals(decision.last_status, 'new')

        request = RequestFactory().get('/')
        assign_perm('edit_decisions_feedback', user, decision.organization)
        request.user = user
        request.method = 'POST'
        request.POST = {'status': decision.status, 'description': decision.description}
        kwargs = {'pk': decision.id}
        DecisionUpdate.as_view()(request, **kwargs)

        decision = Decision.objects.get(id=decision.id)
        self.assertEqual(decision.last_status, status)
Beispiel #11
0
    def test_decision_last_status_set_on_update(self):
        status = Decision.DECISION_STATUS
        user = UserFactory()
        decision = DecisionFactory(author = user,
                                   editor = user,
                                   description = 'Lorem',
                                   status = status)
        self.assertEquals(decision.last_status, 'new')

        request = RequestFactory().get('/')
        assign_perm('edit_decisions_feedback', user, decision.organization)
        request.user = user
        request.method = 'POST'
        request.POST = {'status': decision.status, 'description': decision.description}
        kwargs = {'pk': decision.id}
        DecisionUpdate.as_view()(request, **kwargs)

        decision = Decision.objects.get(id=decision.id)
        self.assertEqual(decision.last_status, status)