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
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)
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
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
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)
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)
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)