def test_no_sandbox(self):
        call = self.app.get(reverse('testsession:session_create'),
                            user=self.user)
        form = call.forms[1]
        form['session_type'].select(form['session_type'].options[-1][0])
        form['sandbox'] = False
        form.submit()
        session = Session.objects.all().order_by('-pk')[0]
        eu = ExposedUrl.objects.get(session=session)

        all_rep = Report.objects.all()
        url = reverse_sub('run_test',
                          eu.subdomain,
                          kwargs={'relative_url': 'status/404'})
        call = self.app.get(
            url,
            extra_environ={'HTTP_HOST': '{}-example.com'.format(eu.subdomain)},
            user=session.user,
            status=[404])
        report = Report.objects.get(scenario_case=self.sc)

        self.assertEqual(choices.HTTPCallChoices.failed, report.result)
        url = reverse_sub('run_test',
                          eu.subdomain,
                          kwargs={'relative_url': 'status/200'})
        call = self.app.get(
            url,
            extra_environ={'HTTP_HOST': '{}-example.com'.format(eu.subdomain)},
            user=session.user)
        report = Report.objects.get(scenario_case=self.sc)
        self.assertEqual(choices.HTTPCallChoices.failed, report.result)
Exemple #2
0
 def parse_response_text(self, text, endpoints):
     for ep in endpoints:
         host = reverse_sub('run_test',
                            ep.subdomain,
                            kwargs={'relative_url': ''})
         parsed = self.sub_url_response(text, host, ep)
     return parsed
    def to_representation(self, value):
        v = super().to_representation(value)
        request = self.context['request']
        if settings.DEBUG:
            host = 'http://{}'.format(request.get_host())
        else:
            host = 'https://{}'.format(request.get_host())

        v['subdomain'] = reverse_sub('run_test',
                                     subdomain=value.subdomain,
                                     kwargs={'relative_url': ''})

        return v
 def test_hard_matching(self):
     url = reverse_sub('run_test',
                       self.exp_url.subdomain,
                       kwargs={'relative_url': 'test/xxx/t'})
     call = self.app.get(url,
                         extra_environ={
                             'HTTP_HOST':
                             '{}-example.com'.format(self.exp_url.subdomain)
                         },
                         user=self.session.user,
                         status=[404])
     rp = Report.objects.filter(scenario_case=self.scenarioCase_hard)
     self.assertTrue(len(rp) != 0)
 def test_retrieve_no_entry(self):
     url = reverse_sub('run_test',
                       self.exp_url.subdomain,
                       kwargs={'relative_url': ''})
     call = self.app.get(url,
                         extra_environ={
                             'HTTP_HOST':
                             '{}-example.com'.format(self.exp_url.subdomain)
                         },
                         user=self.session.user)
     call2 = self.app.get(reverse('testsession:session_log',
                                  kwargs={'uuid': self.session.uuid}),
                          user=self.session.user)
     self.assertTrue(url in call2.text)
Exemple #6
0
 def rewrite_request_body(self, request, exposed):
     """
     Rewrites the request body's to replace the ATV URL endpoints to the VNG Reference endpoints
     https://testplatform/runtest/XXXX/api/v1/zaken/123
     ->
     https://ref.tst.vng.cloud/zrc/api/v1/zaken/123
     """
     parsed = request.body.decode('utf-8')
     for eu in exposed:
         host = reverse_sub('run_test',
                            eu.subdomain,
                            kwargs={'relative_url': ''})
         parsed = self.sub_url_request(parsed, host, eu)
     logger.info("Rewriting request body:{}".format(parsed))
     return parsed
Exemple #7
0
 def parse_response(self, response, request, base_url, endpoints):
     """
     Rewrites the VNG Reference responses to make use of ATV URL endpoints:
     https://ref.tst.vng.cloud/zrc/api/v1/zaken/123
     ->
     https://testplatform/runtest/XXXX/api/v1/zaken/123
     """
     parsed = response.text
     for ep in endpoints:
         host = reverse_sub('run_test',
                            ep.subdomain,
                            kwargs={'relative_url': ''})
         parsed = self.sub_url_response(parsed, host, ep)
         logger.info("Rewriting response body: {}".format(parsed))
     return parsed
 def test_no_rewrite_header(self):
     url = reverse_sub('run_test',
                       self.endpoint_echo_h.subdomain,
                       kwargs={'relative_url': ''})
     headers = {'authorization': 'dummy'}
     call = self.app.get(url,
                         extra_environ={
                             'HTTP_HOST':
                             '{}-example.com'.format(
                                 self.endpoint_echo_h.subdomain)
                         },
                         headers=headers,
                         user=self.endpoint_echo_h.session.user)
     self.assertEqual(call.json['headers']['authorization'],
                      headers['authorization'])
 def test_rewrite_body(self, mock_logger):
     url = reverse_sub('run_test',
                       self.endpoint_echo_e.subdomain,
                       kwargs={'relative_url': 'post/'})
     call = self.app.post(url,
                          url,
                          extra_environ={
                              'HTTP_HOST':
                              '{}-example.com'.format(
                                  self.endpoint_echo_e.subdomain)
                          },
                          user=self.endpoint_echo_e.session.user)
     self.assertIn('Rewriting request body:',
                   mock_logger.info.call_args_list[-7][0][0])
     self.assertIn(url, call.text)
 def test_query_params_put(self):
     report = len(Report.objects.filter(scenario_case=self.scenario_case_p))
     url = reverse_sub('run_test',
                       self.exposed_url_p.subdomain,
                       kwargs={'relative_url': self.scenario_case_p.url})
     call = self.app.put(url + '?{}=dummy'.format(self.qp_p.name),
                         extra_environ={
                             'HTTP_HOST':
                             '{}-example.com'.format(
                                 self.exposed_url_p.subdomain)
                         },
                         user=self.session_p.user,
                         status=[404])
     self.assertEqual(
         report + 1,
         len(Report.objects.filter(scenario_case=self.scenario_case_p)))
 def test_query_params_no_match(self):
     report = len(Report.objects.filter(scenario_case=self.scenario_case))
     url = reverse_sub('run_test',
                       self.exposed_url.subdomain,
                       kwargs={'relative_url': self.scenario_case.url})
     call = self.app.get(url,
                         extra_environ={
                             'HTTP_HOST':
                             '{}-example.com'.format(
                                 self.exposed_url.subdomain)
                         },
                         user=self.session.user,
                         status=[404])
     self.assertEqual(
         report,
         len(Report.objects.filter(scenario_case=self.scenario_case)))
 def test_query_params_match(self):
     qp = QueryParamsScenarioFactory(scenario_case=self.scenario_case,
                                     expected_value='dummy',
                                     name='strict')
     report = len(Report.objects.filter(scenario_case=self.scenario_case))
     url = reverse_sub('run_test',
                       self.exposed_url.subdomain,
                       kwargs={'relative_url': self.scenario_case.url})
     call = self.app.get(url, {
         'strict': 'dummy',
         self.qp.name: 'dummy'
     },
                         extra_environ={
                             'HTTP_HOST':
                             '{}-example.com'.format(
                                 self.exposed_url.subdomain)
                         },
                         user=self.session.user,
                         status=[404])
     self.assertEqual(
         report + 1,
         len(Report.objects.filter(scenario_case=self.scenario_case)))